Недавно вышел ролик, как раз про тестирование LLM на локальном железе:
https://www.youtube.com/watch?v=mwNMjmICa04
Я написал развёрнутый комментарий и хочу поделиться так же с вами. Хочу узнать у кого какой ценный практический опыт и, может быть, подобрать лучшие модели для себя. Я запускал .gguf модели на RTX 3060 на офтопике, в llama.cpp
12:00 Да, могу подтвердить, llama-server.exe -m ../model/google_gemma-3-12b-it-Q4_K_M.gguf –context-shift –threads 16 -ngl 999 выдаёт на RTX 3060 12 GB 32 токена в секунду. Это воспринимается очень комфортно. Но проку от этой модели мало, только как переводчик. Если подключить проектор, mmproj, скорость упадёт до 14.. 20 токенов, что уже напрягает. llama-server.exe -m ../model/google_gemma-3-12b-it-Q5_K_M.gguf –mmproj ../model/mmproj-google_gemma-3-12b-it-f16.gguf –ctx-size 32768 –threads 16 -ngl 999 Гораздо лучше будет использовать аналогичную модель, с меньшим количеством слоёв: llama-server.exe -m ../model/google_gemma-3-4b-it-Q4_K_M.gguf –mmproj ../model/mmproj-google_gemma-3-4b-it-f16.gguf –context-shift –threads 12 –gpu-layers 999 Она будет прекрасно летать и даже на GTX 1650. Там будет неплохая скорость, порядка 20 токенов. Но распознавание будет не быстрым. Да, простой текст и даже от руки она будет хорошо распознавать. Но страницу A4 с двухколоночной вёрсткой нормально не распознает, начнёт глючить и перевирать текст.
14:20, для меня удивительно что CPU 9800X3D выдаёт «рабочие» 14 токенов в секунду с моделью 30B. С моделью 12B мой да, старый, да холодный, зеон на CPU выдаёт 3.3 токена в секунду. Если учесть DDR5, высокие частоты и современную топологию, современный CPU в тех же условиях выдал бы до 7 токенов. Но если повысить модель с 12B до 30B, я думаю производительность упала бы катастрофически даже у современного CPU, т. к. x86-64 архитектура плохо пригодна для запуска модели на llama.cpp. Ваш тест говорить что стоит присматриваться к современным CPU x86-64 и они могут что то выдать с довольно тяжёлыми моделями 32B. Я правда не знаю какая от них практическая польза и как они себя поведут с mmproj. Думаю производительность сильно упадёт и опять не будет проку от этого. Добавлю что Qwen 7B сильно проигрывает аналогичной и даже худшей gemma-3-4b-it-Q4_K_M, в задачах работы с языком, переводами. gemma-3-4b-it-Q4_K_M 0 - выдаёт хорошее качество и может даже решать школьные задачи. Может работать с распознаванием текста. Может помочь в системном администрировании. qwen2.5-coder-14b-instruct-q4_k_m.gguf, на моей RTX 3060 12 GB показала себя как достаточно адекватный помошник в кодинге. Конечно она проигрывает онлайн-решениям но выдавала адекватные результаты в приемлимые скроки. Если её подключить к IDE она будет толкова, на мой взгляд, в режиме copilot. Но у меня мало опыта в кодинге и онлайн решения дают быстрый и качественный результат, так что утверждать не моогу.
Добавлю что видел, модель 32B запускается на Mac M4 и выдаёт довольно приличные скорости, порядка 60 токенов, за счёт оптимизаций Metal, в LLM Studio.
Так же я пробовал собирать llama.cpp с Vulkan и там вижу падение производительности с Nvidia порядка 5.. 10%, к сожалению. Сборка, которую я использую - llama-b6341-bin-win-cuda-12.4-x64
codellama-7b.Q4_0.gguf, DeepSeek-R1-Distill-Llama-8B-Q5_K_L.gguf показали себя неудовлетворительно. Последний показал себя неожиданно, при запросе он какое то время думает и потом запускает стриминг. Это выглядит впечатлающе но результаты он выдавал малопригодные.
Теперь по сути. Вот тесты, которые я задавал:
Плоскость задана тремя точками: (0, 0, 2), (0, 2, 0) и (2, 0, 0). Найди z, соответствующие точкам (1, 1, z) и (0.35, 0.45, z), лежащим на данной плоскости. Ответы должны быть 0 и 1.2 для точек. google_gemma-3-4b-it-Q4_K_M.gguf уверенно проходит этот тест. Qwen2-VL-7B-Instruct-Q6_K_L.gguf и даже к сожалению qwen2.5-coder-14b-instruct-q4_k_m.gguf - не проходят.codellama-7b.Q4_0.gguf, DeepSeek-R1-Distill-Llama-8B-Q5_K_L.gguf - не проходят. Важно отметить так же вес модели на диске. google_gemma-3-4b-it-Q4_K_M.gguf - весит 4.5 гб и проходит уверенно данный тест. И я кстати не заметил особого улучшения качества ответов при повышении квантовки. Важно брать модели Q4_K_M и стараться подобрать наибольшее количество параметров, при котором, на вашем железе, модель всё ещё будет выдвать комфортные 20 токенов в секунду. Желательно что бы у этой модели был mmproj, что сильно расширяет ваш функционал, в части работы с изображениями.
Ещё раз, связка, которую могу рекомендовать к рассмотрению:
llama-server.exe -m ../model/google_gemma-3-4b-it-Q4_K_M.gguf –mmproj ../model/mmproj-google_gemma-3-4b-it-f16.gguf –context-shift –threads 12 –gpu-layers 999
Опишите, у кого какой опыт?
Мне бы хотелось подключить к модели:
- поиск в интернет;
- возможность работы в агентном режиме (был хороший опыт с warp, но он платный);
- работу с офисными и прочими форматами (был хороший опыт с ollama WebUI, но я перешёл на llama.cpp, надо всё заново);
- поиграть с LLoRa, RAG, JSON, что бы запоминать контекст и дообучать;
- использовать улучшенный фронтэнд+бэкэнд, вместо llama-server.exe, с которым мало что можно сделать
- может быть улучшить технологию сборки и перекатиться на сборку из github+vulkan
- попытаться как то проработать ограничение с глубиной контекста, может быть разбивать данные на блоки, делать промежуточное резюме;
- интегрироваться с AHK, прикладным софтом (приделать ручки);
- добавить возможность работы со звуком, распознаванием речи (есть опыт с wisper, но пока костыли).
- перейти на .safetensors модели, вместо .gguf, но самому делать квантовку
В общем хотелось бы эту технологию сделать практичнее для себя, для своих повседневных задач