Pull to refresh
114
0.2
Send message

Не из-за памяти. Магия 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/

Если вам нужно не просто привычно выглядевшее, но еще и точно также работающее по всяким хоткеям (например, кнопки win + стрелочки для окон) и прочему поведению - то только 2 варианта: KDE и Cinnamon. KDE более близкий аналог.

https://github.com/doublecmd/doublecmd

Доступен во всех репозиториях, пытается полностью повторить логику, идею, хоткеи totalcmd, и на 95% справляется с этим.

Если бы кто-то легко и задороно объяснил, что же такое то самое "обучение", то может и не было бы столько удивления вокруг того, что модель не училась как какой-то мета-ии-разум читающий учебники за 1-9 класс, и поэтому она не может знать, кто она такая, и почему её нельзя этому обучить, по крайней мере на текущих трансформерах из-за проблемы переобучения.

Обучение происходит в 3 этапа:

  1. pre-train

  2. Выравнивание

  3. Файнтюн на следования инструкциям

Во время pre-train модель получает сырые данные из интернета, просто терабайты всего текста до которого удалось дотянуться, никак не отсортированного и никак не фильтрованного (даже если кто-то привирает, что они всё фильтруют и у них отборный датасет, то чем больше разнообразие для pre-train, тем лучше калибруется модель).
На этом этапе происходит калибровка весов модели по схеме "полная фраза" минусу "последнее слово", и веса калибруются так, чтобы во фразе "однажды в студеную зимнюю" продолжением было "пору" или "ночь", а не "грелку" или "миску". Это учит модель строить правильные связи между словами, предложениями.

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

Вот именно тут уже используется очень качественный датасет, он и синтезируется и составляется вручную, но он обычно на порядки меньше датасета для pre-train, так как создать такой датасет очень сложно, и чем он будет качественнее, тем умнее будет модель. На выходе получится base модель.

И последний этап, это дообучение на следование инструкциям. Сейчас модель умеет только продолжать фразу, а не инициализировать всю цепочку внутри себя, и, например, написав ей "Сейчас я напишу функцию фибоначчи" она продолжит ответ, и ответ даже может быть очень сложным и умным, с кучей рассуждений, но при этом модель не будет понимать простые "Напиши функцию фибоначчи" или "Сколько будет 2 + 2?".
Тут модели показывают, что если пользователь задал вопрос, написал какое-то требование к виду ответа и так далее, то ей нужно начать отвечать на этот вопрос с учетом всех пожеланий.
Это будет instruct модель, которая уже может работать в режиме чатика.

Вот из-за 1 pre-train этапа модель будет отвечать, что она кто угодно. Самый релевантный ответ по её мнению, что она ChatGPT - самая популярная модель в мире, потому что упоминания про chatgpt в неотсортированном датасете будет на порядки выше, чем любые другие модели (при чем на разных языках ответ может манятся, в зависимости от наполнения сырого pre-train датасета).

И вот тут, даже если на 2 этапе скормить ей огромный датасет о том, что она deepseek, то произойдет переобучение, и всё что будет знать модель, что она deepseek, а всё остальное позабудет и станет на любой вопрос отвечать, что вот ваш рецепт свиных крылышек, а она, между прочим, deepseek. Из-за проблемы переобучения так делать не будут, поэтому модель будет периодически всё равно путаться, кто же она такая.

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

Не уверен, что смогу запустить это же на своём маке

Для запуска на домашнем ПК используется движок llama.cpp и gguf модели с квантованием. Возможен запуск как на CPU, так и CPU плюс частично GPU.
Дома можно запускать как легкую версию, так и pro, если есть хотя бы 24гб ОЗУ.

T-lite Q4_K_M для запуска требует всего 5гб памяти, поэтому легко влезет в 8гб видеокарту.
На CPU же скорость работы 7 t/s, это быстрее скорости чтения. И в коллабе можете запускать квантованную версию, будет в разы быстрее.

Квантование Q4_K_M - это 4.9-битное квантование, типичное хорошее квантование, которое сохраняет качество плюс-минус близкое к оригиналу. Чем младше модель, тем хуже она переносить квантование, но даже для запуска кванта Q8_0, требуется всего 9гб памяти.

Для начала проще всего взять LM Studio или Jan - это gui-клиенты для windows/linux/mac.
Как запускать, включая AMD-видеокарты: https://habr.com/ru/articles/831272/

Чтобы это работало автоматически, кванты должны называться официально как в llama.cpp, в вашем примере только Q8_0 назван правильно, поэтому он и должен скачиваться. Если бы остальные кванты были названы правильно, то был бы выпадающий список.

А так любой gguf можно добавить и вручную, в ollama через создание конфига, а в oobabooga/text-generation-webui просто закинуть файл в папку models и т.д.

Information

Rating
2,701-st
Registered
Activity