Pull to refresh
114
0.3
Send message

Некоторый потенцал, возможно, кроется в NUMA:

Попробуйте запустить с ключом --numa distribute. Еще попробуйте добавить -nkvo
И можете перейти на Q4_K_S, сэкономит почти в 2 раза памяти, а качество при этом просядет незаметно.

Как минимум на идентичной с вашей конфигурацией получают ~2t/s. Эпики с 16 канальной ddr4 3200 на 2x EPYC 7543 с 403 гб/с - 4 t/s. На эпиках с 12-канальной ddr5 4800 выходит на малом контексте до 9 t/s на Q4_K_S.

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

Динамические UD кванты запускают даже просто с nvme на скоростях от 0.5 t/s до 1 t/s. Но правда такие скорости только под линуксом.

Еще сейчас идет работа по добавлению в ktransformers возможности для архитектуры V3 выгружать активные веса на GPU, и так как активных весов всего 37B из 671B, то это в теории может ускорить вывод с помощью одной GPU сильнее, чем как сейчас это работает в llama.cpp. Следить за этим можно тут.

росту на 5 процентных пунктов Qwen2.5-Coder-7B-Ins, сравняв ее по качеству с гораздо более крупной DeepSeek-V2.5 (236B параметров).
Ещё раз: модель в 7 миллиардов параметров стала выдавать качество модели в 236 миллиардов, в 33 раза большей

Звучит так, словно она и без этих 5 процентов выдавала качество на том же уровне.

Там если нажать на стрелочку рядом, то будет расписано какие веса bf16, а какие в fp8.

BF16/FP32 там немного, они нужны для динамической активации и масштабирования (документация из V3 совпадает с R1).

Веса модели в fp8, немного bf16 это веса нормализации, а в fp32 веса weight_scale_inv, которые нужны для деквантования из fp8 по формуле
(128x128 weight block) * weight_scale_inv.

Судя по тому, что они запустили 70b это их максимум и там примерно 300-400Гб памяти

Официальный релиз ~150гб в bf16.

С учетом что для R1 (без квантования) нужно примерно 2,3 Тб оперативки

R1 обучалась сразу в fp8, а не fp16/fp32, поэтому ей нужно ~700Гб + память на контекст.

По сути это первая крупная модель обученная сразу в fp8, интересно на сколько рабочими будут модели обученные в новый fp4.

И в низкий квант не верю. Поэтому запускать R1 не буду.

В обычный низкий квант да, но есть динамический низкий квант.

Обычный низкий квант, вроде IQ1_M, это почти все веса, включая веса Внимания и Feed-Forward Network, часть необходимая для работы Внимания, почти все они в очень низком кванте. Именно это снижает возможности модели "мыслить" и рассуждать, в итоге в ответ получается очень не качественные ответы, так как затронута главная часть трансформера. Вот так выглядят веса обычного экстремально низкого кванта:

пример очень низкого кванта DeepSeek-R1-Distill-Llama-70B-IQ1_M
пример очень низкого кванта DeepSeek-R1-Distill-Llama-70B-IQ1_M

В динамическом очень низком кванте UD, который собрал unsloth, все важные веса оставлены на уровне Q4 или Q6, поэтому главная часть модели по сути на уровне Q4_K_M.

пример динамического квантования DeepSeek-R1-UD-IQ1_S
пример динамического квантования DeepSeek-R1-UD-IQ1_S

Остальные веса в экстремально низком кванте IQ1 и IQ2, но это в основном только нисходящие и восходящие веса ffn не главных экспертов, а также веса переходов между экспертами, что не так фатально сказывается на возможности модели рассуждать и "мыслить". При этом эти же веса главного эксперта (в MoE множество экспертов, но в моменте активны только часть из них) оставлены на Q4 и Q6, что тоже видно на скриншоте выше.

Но даже так, у не основных экспертов, главные веса Внимания оставлены на Q4 и Q6:

Пример не основных экспертов
Пример не основных экспертов

Так что динамический низкий квант не тоже самое, что просто низкий квант, и его вполне можно попробовать. Особенно в ваше случае, когда в 192гб можно попробовать уместить UD-IQ2_XXS (только тут главное не перепутать с обычным Q2).

Вот я запускал DeepSeek-R1-UD-IQ1_S на обычном ПК ryzen 5600g + 64gb ddr4 3600 + nvme на скорости 0.82 t/s. То что не влезло в память, загружалось с ssd.
Пример простой, но не каждая модель может правильно решить эту простую головоломку. И обычно на таком низком кванте язык превращается в кашу, а мысли путаются, тут же рассуждения остаются на приемлемом уровне. И это на самом низком динамическом кванте, если чуть повыше, то будет еще лучше.

Не из-за памяти. Магия hyper-threading, которая из 12 ядер делает 24 потока, работает только на разнородных задачах, отсюда и загрузка в 50% от настоящих ядер + 10% на фоновую работу винды, браузера и т.д.

Смысл HT в том, что если одна задача занимает avx блоки, то остальные блоки остаются свободными для других задач, и можно в теории немного выиграть в производительности, если заранее эти блоки заполнить информацией, а потом ядро быстренько это посчитает. В такой схеме не растет теплопакет, так как тактов у ядра больше не становится, такты всё равно будут делится между этими блоками.

При этом загрузка может показываться в 100%, но выигрыш будет лишь небольшой, не в 2 раза, в реальности это от силы 18% если повезет с задачами. Поэтому только реальные ядра могут дать кратный буст.

Инференс это задача для avx блоков, выполнением занимаются только настоящие ядра, поэтому добавление сюда фейковых логических ядер обычно замедляет работу, а не ускоряет. Частым советом и в llm среде и в гейминг среде отключить HT/SMT и посмотреть, выросла ли производительность.

Правильно ли я понял, что речь о чисто CPU, вообще без GPU?

Да, это только CPU на типичной домашней сборке. Сейчас перепроверил на нормальном pcie 3.0 nvme 970 evo plus. Скорости выросли до 0.82 t/s под линуксом, под виндой на нем же 0.11 t/s из-за свопа на медленный sata ssd, хотя с mmap этого не должно происходить.

На 0.82 t/s уже даже не лень дождаться ответа на главный вопрос человечества, сколько же сестер у брата Марии:

В llama.cpp, в llama-server, добавили поддержку мыслей, которые можно скрыть или раскрыть в отдельном блоке. Видно, что несмотря на экстремальное квантование, мысли и сам язык не разваливаются.

А что, если туда добавить 4090 c 24GB VRAM? Пусть себе из ОЗУ (RAM диск с файлом модели) подгружает нужное в VRAM. Это может ускорить до приемлемых результатов?

Эта концепция не реализована в llama.cpp, но было бы не плохо. Такое есть в ktransformers, но там пока нет поддержки V3 и R1, только V2.

Если просто выгрузить часть слоев на 24гб VRAM, выгрузив 9 слоев из 62, скорость возрастает до 1.07 t/s на той же задаче.

Если использовать 40гб VRAM (24гб + 16гб), выгрузив 15 слоев, то скорость 1.23 t/s.

Если бы кто-то проверил на 192гб DDR5, куда модель целиком влезает, то зависимость скоростей была бы еще понятнее. Например, на M2 Studio с 192гб, где очень быстрая память 800гб/с, у людей выходит 13-14 t/s, при пороге комфортного использования в 5 t/s это очень хороший результат.

Там, кстати, только что Mistral Small 3 вышла размером 24B, обещают качество на уровне LLama 3.3 70B. Для запуска Q4_K_M нужно 16гб памяти.

Сейчас unsloth выпустил динамический квант для R1, так что для запуска нужно всего 131гб + сколько гб на контекст.

Так как тут 37B активных параметров, то скорость будет выше чем 0.01 t/s если избавится от всяких тормозящих факторов, вроде сжатия ntfs, свопа, и windows почему-то плохо работает с mmap, из-за чего свопит на медленный ssd, даже если модель запускается с быстрого.

Я запустил DeepSeek-R1-UD-IQ1_S на nvme + ddr4 под windows, скорость 0.11 t/s, запустил тоже самое под Linux, скорость выросла до 0.33 t/s. В Windows всё уперлось в своп, хотя при mmap не должно такого быть. nvme подключен к сокету, поэтому скорость 1.3 гб/c, если взять более быстрый, то скорости вырастут, но не прям сильно. Если всё влезет в память, то скорости уже будут получше, а на ddr5 можно сейчас набить 192гб.

Сейчас доступно 2 модели: DeepSeek R1 Distill (Qwen 7B) DeepSeek R1 Distill (Llama 8B)

R1 Distill - это взяли 800к ответов от настоящей R1 и зафайнтюнили на этих ответах Qwen2.5 и Llama3.1, и эти Distill модели будут вести себя не так как R1, а намного хуже.
Настоящая R1 весит 700гб, в квантованном виде без особых потерь весит 400гб, в экстремально квантованном виде будет 131гб, и даже в таком виде она будет лучше чем любая R1-Distill.

Запуск настоящей R1 локально возможен, так как там активных параметров всего 37B из 671B. Достаточно типичного объема памяти и быстрого nvme, чтобы подгружать активные параметры в память, но это скорее не для использования, а для теоретической возможности, так как модель много размышляет, и это всё очень медленно.

В llama.cpp по умолчанию используется mmap, это значит файл модели мапится с диска на ram без реальной загрузки в память, и в момент когда нужны конкретные 37B из модели они будут загружены в память с диска - поэтому чем быстрее ssd, тем быстрее это будет работать. По сути запуск возможен просто с ssd, если у вас есть хотя бы 32гб памяти, чтобы вместить 37B активных параметров, которые в квантованном виде займут 20-25гб.

Вот, запуск квантованной оригинальной DeepSeek-R1-UD-IQ1_S весом 131гб (динамическое квантование в 1.58 бит о котором уже написали выше, основные веса квантованы в 1.5 бита, а важные веса внимания оставлены в 4/6 бит).
На 64гб ddr4 3600 на скорости 50гб/с и nvme на 1гб/с, скорость будет 0.3-0.25 t/s, дождаться пока модель закончит размышлять на простой вопрос в таком случае занимает 10 минут.

Поэтому, если у вас быстрый nvme на 5гб/с и 64гб DDR5 работающей на 100гб/с, вы сможете добиться скоростей около 1 t/s, но только на очень маленьком контексте, и так как это размышляющая модель, то контекст очень быстро дойдет до тысяч токенов, и скорость будет в лучшем случае 0.5 t/s.

Тут кто-то запускает на 96Gb DDR5 6800, 5 слоев выгружено на 3090 и быстрый nvme 990 pro
Тут кто-то запускает на 96Gb DDR5 6800, 5 слоев выгружено на 3090 и быстрый nvme 990 pro

Если у вас б/у эпик с 16 канальным DDR4, работающий на 400 гб/с, то вы получите 4 t/s на большом контексте, так как в такие эпики можно вместить до 1тб памяти. Сейчас такой эпик собрать дешевле чем купить одну 4090.

Так что локальный запуск настоящей R1 это возможно, но не практично.

Вот мне и стало интересно сколько же будет это стоить.

Ну чисто технически, запуск квантованных моделей это всё еще запуск настоящей R1, а не её дистиллированных версий, и, например, Q6_K уже не отличима от оригинала по качеству (оригинал обучался в fp8).

Собрать б/у эпик 1-2 поколения работающий на ddr4 в 16-канале на скоростях 400гб/с обойдется где-то в 150-200к, или дешевле, если заказывать на таобао. Туда можно набить 1тб памяти, этого хватит чтобы запустить Q8_0/Q6_K модель, а для Q4_K_M, которая теряет несколько процентов качества, хватит и 512гб.
Скорость инференса будет 4t/s, для сравнения скорость небыстрого чтения где-то 5t/s. Б/у эпики есть и на ddr5, но ощутимо дороже.

Тут unsloth сделал динамическое квантование gguf для R1, запихнув модель в 131 ГБ в 1.58 бита. Квантовал в 1.5 бита только MoE веса, а слои внимания оставлял как 4/6 бит, в итоге получилось добиться не плохого качества экстремально снижая требования к железу.

Да, это супер квантованная версия, но тем не менее, автор показал, что такой версией можно пользоваться, и можно написать Flappy Bird:

И уже для запуска такой версии на хорошей скорости достаточно 6x 7900xtx по 100к каждая (суммарный объем 144гб vram), скорость работы будет намного быстрее скорости чтения.

Mac с 192гб унифицированной быстрой памятью может запускать такую модель на приличной скорости.

Так как это MoE модель, то можно активные веса, которых всего 37B из 671B, вынести в момент инференса на GPU из памяти, и это, даже с учетом перекидывания туда-сюда весов, даст неплохое ускорение. Эту идею реализует ktransformers, но пока не для V3 и R1.

Потому что это не R1, версии на 70B или 32B и ниже ошибочно называют R1, хотя это R1 Distill. R1 Distill - это файнтюн на выходных данных R1 для qwen или llama, они не обучались как оригинальная R1 и их качество не соответствует R1.

Кликните на нее и перейдите в раздел Models (Модели), где вы увидите несколько размеров моделей - от 5 миллиардов до 671 миллиарда параметров

Моделей несколько, и только одна из них R1.

На реддите есть длинный тред, про то как ollama обманул неподкованных пользователей, заставив думать, что бывает R1 на 70B или 32B и многие ошибочно делают вывод, что R1 это полная фигня, пробуя не настоящий R1.

Размеры от 5B до 70B - это файнтюн qwen или llama, они называются R1 Distill, и они должны быть вынесены в отельную категорию, потому что это дообученные qwen или llama на выходных данных из оригинальной R1, их качество не соответствует R1, они не обучались как R1 и делать выводы по ним ошибка.

Единственный способ запустить настоящую R1 (как и deepseek V3) локально, это иметь ПК с хотя бы 256гб памяти, если это 16 канальная ddr4 3200 система на б/у эпиках (1-2 поколения, такие можно собрать где-то за 150к), то вы получите скорость 4 t/s в Q2_K кванте, для размышлений это слишком медленно, так как их обычно много, но это более менее терпимо, если учесть, что скорость небыстро чтения 5 t/s.
На обычном ПК тоже можно запустить, ssd будет как виртуальная память, в llama.cpp поддерживается такой режим по умолчанию, скорость будет около 0.01 t/s.

Если вы взяли ту, что в статье, то вы взяли старшую обычную модель V3 размером 671B, просто квантованную Q2_K_XS.
Для запуска такой модели не хватит 64гб памяти, нужно 210гб, это даже с учетом MoE, фактически модель работала со скоростью вашего диска, откуда вы загружали её, так как памяти не хватило и модель постоянно считывалась с диска.
Для нормальной скорости вам нужна быстрая память, например, минимально 6-8 канальная на б/у эпиках, и то получится 3-4 токена в секунду.

Вам, видимо, нужна дистиллированная версия R1, которая будет размером 70b, 32b или 14b, для такого размера уже хватит скоростей двухканальной ddr5 6000+ с частичной выгрузкой на gpu - https://huggingface.co/collections/unsloth/deepseek-r1-all-versions-678e1c48f5d2fce87892ace5

Но, возможно, вам больше подойдет Qwen 2.5 Coder, так как размышляющая модель R1 требует много генераций - https://huggingface.co/collections/unsloth/qwen-25-coder-6732bc833ed65dd1964994d4

Речь не про просто запуск, стандартные трансформеры можно сразу запускать на чем угодно. Речь про квантованные модели gguf, которые снижают требования к железу в несколько раз, позволяя запускать такие тяжелые модели на обычном ПК.

Например, модель DeepSeek-R1-Distill-Qwen-32B:

  • в оригинальных трансформерах модель требует 67гб памяти.

  • если взять gguf с квантованием Q4_K_M, то модель требует всего 20гб памяти.

Потеря качества между Q4_K_M и оригинальной моделью будет несколько процентов, что вполне приемлемо.

gguf версии для локального запуска все варианты: https://huggingface.co/collections/unsloth/deepseek-r1-all-versions-678e1c48f5d2fce87892ace5

В llama.cpp поддержка была добавлена вчера, поэтому все проекты построенные на нем, вроде ollama, lm studio или oobabooga/text-generation-webui получат обновление позже. Пока можно запустить используя веб-сервер от самой llama.cpp:

.\llama-server.exe -m "DeepSeek-R1-Distill-Qwen-32B-Q4_K_M.gguf" -ngl 99

-ngl 99 - это количество слоев, которые будут выгружены на видеокарту, нужно установить в зависимости от количества видеопамяти.
Для windows, если у вас не новые amd или любой intel, то качайте vulkan версию, если новые amd, то hip, если nvidia, то cuda версию.

По идее, чтобы заработало нормально, лучше следовать рекомендациям от создателей:

  1. Задать системный промпт:
    A conversation between User and Assistant. The user asks a question, and the Assistant solves it. The assistant first thinks about the reasoning process in the mind and then provides the user with the answer. The reasoning process and answer are enclosed within <think> </think> and <answer> </answer> tags, respectively, i.e., <think> reasoning process here </think> <answer> answer here </answer>.

  2. Установить температуру в диапазоне от 0.5 до 0.7, иначе может быть бесконечный вывод и непоследовательное рассуждение.

После этого модель будет работать нормально и вести диалог в чате самостоятельно фильтруя теги размышления.

Не знаю, это из-за квантования пишет водород как гидрород, или просто так удобнее размышлять. 极高 - "очень велико"
Не знаю, это из-за квантования пишет водород как гидрород, или просто так удобнее размышлять. 极高 - "очень велико"
Не довел ответ до гелия-4, но и вопрос был про другое
Не довел ответ до гелия-4, но и вопрос был про другое

И просто баловство, подвоха он не заметил

Тут нужен мем "а вы?". В крабовых палочках 0 палочек и 0 крабов. Не все вещи называются так, как ожидается. Свиными крылышками в сообществе барбекю называют свиные голяшки.

Напомню, o1 не модель, а агентная система поверх одной или нескольких

Бывший сотрудник из OpenAI опровергает эту информацию. Его слова подтверждает текущий сотрудник из OpenAI. По их словам o1 это одна модель и она работает просто как CoT (цепочка рассуждений).
Ну что-то вроде открытых альтернатив QwQ или QvQ, или DeepThink, которые попытались повторить этот подход, обучив модель сразу с CoT.

Генерация субтитров из аудиодорожки уже есть, её и будут использоваться в VLC.

Изначально это whisper, но куда удобнее на домашнем ПК использовать whisper.cpp + ggml-large-v3-turbo-q5_0.bin или ggml-large-v3-turbo-q8_0.bin.
Можно создавать как субтитры, так и просто текст, работает на многих языках, включая русский.

Возможно есть готовые GUI для этого, чтобы не возиться с конвертацией и консолью, как минимум в Kdenlive есть встроенная поддержка.

Они представили еще кое-что интересное для ML - Project DIGITS.

Маленькая коробка с 128гб ddr5x и чипом GB10 с cuda ядрами. Обеспечивают ядра 1 PFLOPS (1 петафлопс) fp4 - если сравнивать с int4, то это где-то на уровне 4080 Super.
Память ddr5x, и если битность будет хотя бы 256, то скорость будет как на gtx1080 - 320гб/с, что быстрее чем 4060 ti. Но может и 384 бит не пожалеют.

Коробка обещано, что поддерживает не только инференс, но и обучение, при том, что в fp4 влезают модели размером 200B, и коробки можно объединять, в две коробки влезет LLama 3.1 405B. Где-то в мае за 3к $.

Если на битности не сэкономят, то такая коробка будет быстрее чем собирать сервер на эпиках, что выйдет тоже не дешево, и учитывая в разы меньшие размеры, отсутствие проблем с двухпроцессорной NUMA, возможность обучения с нормальной скоростью - то это компенсирует цену. Так что пока это самое интересное из предложений для ML.

Ну, всмысле, нужно вручную в настройка выбрать оформление окон в стиле Windows 9x. И, возможно, до установить классическую тему, как тут: https://www.reddit.com/r/unixporn/comments/11britw/kde_went_full_on_classic_windows_style/

Information

Rating
2,462-nd
Registered
Activity