Pull to refresh
3
0,1
Rating
1
Subscribers
Send message

По-моему вы путаете префилл и генерацию. Ваш сетап даже при хорошем попадании MTP (кодинг, например) не даст больше 20-25 ток/с.

нет инфляции по remat + помогает mtp, которая на обратном проходе (forward) не вычисляет все токены

What?

Уж простите, но это сказки какие-то.

Я почему спросил. У Asus GX10 скорость памяти до 273ГБ/с (по официальным источникам). С таким ТТХ скорость генерации 250-300 ток/с на плотном Квене выгладит очень неправдоподобно. У RTX 5090 memory bandwith в 6 раз больше, а скорость генерации в районе 90-100 ток/с.

Что-то посерьёзней - это уже совсем не домашний сетап. О том и речь.

А на счёт маленьких моделей - Qwen3.6 27B при умелом использовании закрывает 80-90% потребностей в кодинге. Просто он требует контроля, но не обязательно со стороны человека.

Бенчмарки говорят, что генерация на одной A6000 всего на 30% быстрее, чем на двух 3090. Что не удивительно, учитывая то, что скорость памяти у A6000 ниже. При этом цена в 5 раз больше, чем двух 3090. Такие профессиональные карты лучше только тем, что у них охлаждение хорошее, и работать они могут круглосуточно без ущерба для себя, но не перформансом. Если конечно не брать 4-8 штук для запуска больших моделей. Но вряд ли кто-то в здравом уме потратит столько денег на домашний сетап.

На Эпплах крайне низкая скорость, особенно префилл, который очень сильно влияет на комфорт в кодинге. Про Ryzen AI бенчмарки говорят то же самое. Единственный их плюс - возможность гонять более-менее большие модели, но без комфорта.

Я пробовал майнерские CMP50HX, это обрезанные по портам и PCIe RTX2080. На трёх штуках можно чего-то изобразить, но медленновато.

На V100 да, люди работают. Но опять же, по цене/скорости они уступают 3090, да ещё и более древние.

На счёт потребления согласен, там не пиковые 350Вт на карту, но на префилле по 300 потребляют стабильно. На генерации по 250-280.

Для домашнего локального инферинга сейчас только один приемлемый вариант - пара-тройка БУ RTX3090. И это весьма печально. Печально не в смысле производительности, а в том, что нормальных доступных сетапов теперь не будет очень долго.

С парой 3090 расчёты нужно скорректировать.

  1. На них запустятся модели гораздо умнее тех, которые потянет 5080 (например, Qwen3.6-27B).

  2. Скорость генерации с включенным MTP - 50-60 т/с на плотной модели, и до 180 т/с на MoE. Если не использовать MTP, а запускать несколько сессий, то суммарная скорость будет ещё выше.

  3. Две 3090 потребляют до 700Вт - это в минус.

Кстати, дорогой компьютер под это дело не нужен, достаточно китайского Зиона с двумя слотами PCIe x16. Выйдет недорого.

Ну сравнивать Brainfuck и машину Тьюринга с языком, по которому 40 лет преподавался курс CS в MIT-е - такое себе.

Как по мне, так на математику это совсем не похоже

for batch in dataloader:
    logits = classifier(batch.features)
    loss = cross_entropy(logits, batch.labels)
    loss.backward()
    optimizer.step()

Особенно последние две строчки. Мутабельный loss? Optimizer на каких-то скрытых сайд-эффектах и глобальных переменных? Совершенно непрозрачно.

А по поводу простоты синтаксиса и количества ключевых слов можно вспомнить Scheme. Там нет ни синтаксиса ни ключевых слов, и выглядит он гораздо понятней и математичней.

Так в итоге Дима Пшенников к вам вернулся?

Автор, расшифруйте, пожалуйста, аббревиатуру SOC.

Не более трёх мегатюрингов!

Такое было, но не из-за MTP. Лечится опцией --chat-template-kwargs '{"preserve_thinking": "True"}'. В новой версии llama.cpp появилась опция --reasoning-preserve, но я ещё не проверял.

Таких цифр не видел на таком количестве слоёв

Вчера обновил llama.cpp до версии 9837, стало ещё быстрее. Вот параметры запуска модели:

CUDA_VISIBLE_DEVICES=0,1 llama-server --host 0.0.0.0 --port 8081 -m Qwen3.6-35B-A3B-UD-Q6_K_XL.gguf -fitt 1024 -c 262144 -ngl 999 --temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.00 --no-mmap --spec-type draft-mtp --spec-draft-n-max 4

Вот лог со скоростью вывода (в основном это генерация кода, она на MTP немного быстрее, чем просто текст):

0.57.525.739 I slot print_timing: id  3 | task 0 | n_decoded =    464, tg = 154.33 t/s, tg_3s = 154.31 t/s
1.00.547.542 I slot print_timing: id  3 | task 0 | n_decoded =    945, tg = 156.76 t/s, tg_3s = 159.18 t/s
1.03.564.859 I slot print_timing: id  3 | task 0 | n_decoded =   1469, tg = 162.40 t/s, tg_3s = 173.66 t/s
1.06.568.765 I slot print_timing: id  3 | task 0 | n_decoded =   2013, tg = 167.06 t/s, tg_3s = 181.10 t/s
1.09.573.904 I slot print_timing: id  3 | task 0 | n_decoded =   2425, tg = 161.08 t/s, tg_3s = 137.10 t/s
1.12.586.396 I slot print_timing: id  3 | task 0 | n_decoded =   2817, tg = 155.92 t/s, tg_3s = 130.12 t/s
1.15.589.639 I slot print_timing: id  3 | task 0 | n_decoded =   3262, tg = 154.81 t/s, tg_3s = 148.17 t/s
1.18.591.986 I slot print_timing: id  3 | task 0 | n_decoded =   3639, tg = 151.17 t/s, tg_3s = 125.57 t/s

Карты - обычные 3090 с максимальной мощностью 350Вт, включены в плату MACHINIST X99 MR9S с процессором Xeon E5-2697 v4 и 64Г оперативы.

Qwen3.6-35B-A3B - это MoE модель (3B активных параметра), а Qwen3.6-27b - плотная (27B активных), потому разница в скорости. Но плотная заметно умнее. Автору рекомендую обновить llama.cpp до самой свежей версии, не исключено что скорость генерации повысится. У меня на 2х3090 плотный Квен (Q6) даёт до 60 ток/с, а MoE - до 140.

Грубо - среда, в которой выполняется программа, имеет REPL. Заходите в него, и на ходу правите код. Или, например, крутится у вас web-сервер. Вдруг один из потоков выбрасывает исключение. Вы можете зайти в REPL, поправить код и продолжить выполнение с того места, где возникла ошибка. В других потоках код тоже исправится. Как-то так (грубо).

но получается не принципиально лучше REPL в других языках.

Таки репл в коммонлиспе - это совсем не репл в питоне (и в других языках). Это совершенно разные реплы. Репл в питоне - это интерактивный интерпретатор. Репл в лиспе - это переписывание работающей программы.

Интерполяция строк, блоки, метки, декораторы - всё это позволяет увеличить ёмкость информации и упрощает оперирование.

Скобки лиспа находятся у другой крайности - слишком мало ёмкости.

Категорически нет! Всё ровно противоположно. Лисповые скобки дают бесконечную ёмкость, поскольку позволяют выразить любую глубину абстракции единым и понятным способом. Как раз те костыли, в виде декораторов, меток и пр. - это попытка поднять уровень абстракции средствами, которые для этого не годятся.

Кроме того, в лиспе свободно и нативно реализуются все эти декораторы и строковые интерполяции. Но большинство этих вещей там не нужно, потому что есть способы лучше, и выражаются они через скобки.

А как насчёт обилия скобок

Скобки - это наверное лучшее, что есть в лиспе. Трудночитаемость - это миф, да и избыточное количество скобок - тоже (достаточно посмотреть на синтаксис современных языков, типа Rust и C++ - там кроме скобок разного вида ещё и куча закорючек). Этот миф распространяют те, кто никогда на лиспе не писал.

У меня самое дешманское открытое шасси с Али, мать Machinist X99 и три видеокарты, одна из которых стоит над другими на напечатанном креплении, и подключается к PCIe удлиннителем 20см. Отлично работает. Я бы мог подключить ещё одну, но смысла в этом не очень много.

1
23 ...

Information

Rating
3,872-nd
Registered
Activity