Всем привет.
В свободное время и под настроение я ваяю маленькие, замысловатые игры на основе d10-кубов механик, похожие на PvP или PvE настолки, которые нередко проходят в автоматическом режиме (ИИ vs ИИ), а иногда получается что-то чуть серьезнее: вроде игры “Жизнь”, но на стероидах с экономикой, сражениями и в масштабах солнечной системы (вдохновлялся у Shadow Empire).
Не являясь настоящим программистом и написав за всю жизнь, в лучшем случае, около тысячи строк кода – мне для воплощения своих причудливых идей, естественно, потребовалась помощь психиатров нейросетей, которые, как уже говорят – научились писать вполне рабочий, годный код.
И вот, думаю, а почему бы и да? Вот бы ещё локально всё это запускать, чтоб без ограничений, сюрпризов, да и просто удобней – хороша идея!
А вот тут я быстро осознал, что если советов из разряда “Q4-K-M – это “золотой стандарт“, используйте его или лучше” – более-менее в достатке, то каких-то более реальных, практичных сравнений, тестов – очень даже в дефиците. Усугубляется это все экстраполяцией результатов, которые были получены в разных тестах, на разных моделях, в разное время – на другие модели. Ещё хуже, если пытаются наложить инфу по моделям одного поколения на другое поколение (например, предполагаемый KLD (далее подробнее) при сжатии). Но даже если что-то и находится, то можно встретить новый тупик – непонятна достоверность сказанного. И?
Короче, кое-что я таки узнал и посему в течение статьи решил поделиться с читателями опытом своих практических задачек, а не замерами “в попугаях”, прогонах в каких-то “условно-практических” тестах или чистой синтетике. Быть может, это кому-то поможет сэкономить время и впечатления.
Лично мне было важно ответить на пару вопросов:
-
Есть ли смысл использовать квант ниже “джентльменского минимума” в виде Q4?
-
Если смысл есть, то какой именно квант использовать и насколько будет заметна разница между ними, особенно внутри одного уровня сжатия?
-
Какая длина контекста вообще нужна для реальных задач?
-
Всегда ли новые модели – лучше старых?
В сети ответы на такие вещи – конечно есть, отчасти. Но мне попадалась либо фрагментарная/устаревшая информация или основанная, преимущественно, на тестах вроде WikiText-2 для замеров PPL (качество предсказания и понимания языка) или с опорой на какой-нибудь KLD (насколько ответ сжатой модели отличается от ответа эталонной FP16 версии) как демонстрация “лучшести” той или иной версии/кванта LLM.
В конце концов, цифры – это цифры, а практика – это практика, и тот же Open AI почему-то тестирует любителей списывать модели в реальных песочницах и на реальных задачах, а не только через MMLU, GPQA и прочие TAU2. Возможно, что они что-то знают, да?
Собственно задачка зародилась из того, что одна из моих игрушек (HTML для запуска + js) имела баг – экран карты планеты обрезался сверху и снизу, а с обоих краёв всё было ок. В самом прототипе игрушки имелось ~6 тыс. строк кода, раскиданных по ~20 файлам. Хороший повод!
Ну и пора было определиться – кого оставлять, а кого отправлять в утиль. Ведь к тому моменту у меня скопился целый зоопарк: базовые и fine-tune модели, большие и малые, да ещё и от разных поставщиков. И чем они на самом деле отличаются друг от друга, если оставить за скобками красивые описания авторов – неизвестно.
Задание для всех моделей было строго одинаковым, при одинаковых настройках, с параметрами LM Studio/LM Studio Bionic “из коробки”, кроме размера контекста, KV Cache – q8 (типовой компромисс, но расходует в 2 раза меньше VRAM), фиксированный seed и temperature – 0.6, системный промт – пустой (для хардкора). Тест состоял из 2-х частей: сначала исправить баг с обрезкой краёв карты и затем, в том же диалоге – почистить генераторы планет и карт от мусора, бесполезного кода и файлов. Если задача выполнена – это успех.
Деталей сохранилось больше по 27b моделям и их квантам, результат для них получился несколько неожиданным, а 9-12b затрону чуть менее подробно.
Большинство, кстати, вообще утверждает, что запускать модели в квантах Q4 – пустая трата времени. А кто-то считает модель “лоботомированной” уже на сжатии Q8 (богатые люди!).
Ну, посмотрим, что можно получить на Q3 и правда ли, что лучше брать менее сжатую модель с меньшим количеством параметров или всё-таки можно рискнуть, если железо поджимает?
Конфиг: Ryzen 5 5600G, 32Gb DDR4, RTX 5060Ti 16Gb.
Что по цифрам (1/2 – это значит, что выполнено только 1 из 2-х заданий):
|
Модель |
Время, мин. |
Исп. токенов, тыс. |
Инфа с Hugging Face, поставщик |
Краткий итог |
|
Qwen3.5 27b, ud-iq3xxs |
6,5 |
31,2 |
Unsloth, заявлено более “умное” сжатие |
Успех |
|
Qwen3.5 27b, q3ks |
12 |
39,4 |
Unsloth, заявлено более “умное” сжатие |
Успех + единственный, кто ещё и переписал алгоритмы генерации на более быстрые |
|
Qwen3.5 27b, iq3s |
10 |
40,6 |
mradermacher |
Успех |
|
Qwen3.6 27b, ud-iq3xxs |
15 |
45,8 |
Unsloth, заявлено более “умное” сжатие |
Задача не решена + сломал игру (не запустилась) |
|
Qwen3.6 27b, q3ks |
19 |
46,5 |
mradermacher |
Задача не решена + сломал игру (не запустилась) |
|
Qwen3.6 27b, iq3xs |
21 |
44,4 |
mradermacher |
Успех |
|
Qwen3.6 27b, iq3s |
11,5 |
41,4 |
mradermacher |
Успех |
|
Qwen3.6 27b, iq3m |
1/2: 5,5 |
25,6 |
mradermacher |
Задача не решена + сломал игру еще на 1-м этапе (не запустилась) |
|
Qwen3.6 27b, iq3m, finetune “Fable-Fus-711” |
1/2: 29+ |
~50+ |
Заявлена как первая файнтюн модель, которая “вошла в закрытый клуб интеллектуалов, где находятся Open AI, Claude, Gemini” |
На одну только 1-ю часть задания потратила 9 мин. (успешно), досрочная остановка на 20-й минуте 2-й части задания |
|
Qwen3.6 27b, 4bpw, finetune от ggufbench |
1/2: 6,5 |
28,2+ |
Заявлено фантастически умное сжатие с KLD как у IQ4XS |
Задача не решена + сломал игру еще на 1-м этапе (не запустилась) |
|
Qwen3.5 9b, q6 |
10,5 (средне) |
64,7 |
Условный референс |
Успех |
|
Qwen3.5 9b – q6, finetune “qwythos” |
Медленно |
~65-70 |
Заявлено +30% к общим знаниям и математике + до 1 млн. контекста с качеством Claude Mythos/Fable |
Успех |
|
Qwen3.5 9b – q6, finetune “deep-Seek-V4-Flash” |
Медленно |
~75-80 |
Заявлено размышления по структуре и логике в стиле DeepSeek V4 |
Условно-успешно: задача решена не с первого раза (сначала сломал игру, не запустилась) |
|
Qwen3.5 9b – q6, finetune “defiant fable” |
Быстро |
48,5 |
“…в 7 из 7 бенчмарков превосходит оригинальный Qwen 3.5 9/27b, а кое-где и Qwen 3.6 27b…” |
Успех |
|
Gemma-4 12b QAT, UD-q4kxl |
Средне |
~50-60 |
Unsloth, заявлено более “умное” сжатие |
Успех |
|
Gemma-4 12b, q5ks |
Медленно |
~50-60+ |
Условный референс |
Задача не решена + сломал игру (не запустилась) |
Отдельно упомяну MTP (speculative decoding). В теории эта технология должна повышать скорость генерации токенов в 1,5-2 раза, но видимо только в режиме “болталки”, т.к. в моём случае модель была примерно на 15% медленнее, чем таже самая, но без MTP.
Что можно добавить к результатам в таблице выше?
Гемма-4 12b – боль.
Я искренне болел за Гемму-4, которая нравилась мне как-то сразу, заочно, но результат сильно разочаровал. При большем количестве параметров (требует больше VRAM изначально) и более щадящем сжатии – модель не справилась с тестом и требовала ощутимо больше контекстной памяти (ещё больше VRAM!).
Контекстное окно.
А что значит больше контекста? Это более частые его “перезагрузки”, когда он переполняется и потом немилосердно кастрируется, а модели приходится вспоминать оригинальную задачку и “думать” почти что с нуля. Справедливости ради, обычно – это никак не влияет на результат, но сильно замедляет процесс, т.к. “на всё про всё” уходит минут 5 на 1 запрос, хотя qwen3.6 научился исцеляться от этого недуга сильно шустрее, чем 3.5.
Вообще, уровень потребления контекста – вполне похож на косвенный признак интеллекта модели. Например, можно же знать таблицу умножения наизусть и ответить сразу, а можно складывать в столбик или вообще суммировать каждую цифру в уме, что потребует больше рассуждений (thinking mode). Модель знает, а не угадывает.
Fine-tune.
Большая часть fine-tune моделей – это откровенный хлам: 2-е из 3-х моделей оказались ничуть не умнее базовой (при том, что популярность и количество загрузок – приличное), а их усиленный мыслительный процесс только зря сжигал запас VRAM. Исключением стал “defiant fable” – он действительно быстрее и эффективнее, чем референс. Хотя я гонял его позднее на создании “змейки” в один проход и в кодинге: у него был стабильно впечатляющий визуал с горсткой свистелок-перделок, но чуть хуже сама структура кода и комменты к нему + почти любой fine-tune очень часто сам по себе слегка нестабильный, непостоянный.
Единственное, на мой взгляд, разумное использование fine-tune в LLM – это какая-то очень специфическая задача: когда очень нужно, чтобы модель заговорила на каком-то конкретном языке или если вам до дрожи в коленях нравятся жёсткие хорроры, написанные умопомрачительным литературным английским (такие есть) или требуется автономный RP-персонаж с характером садиста или убийцы, где базовая модель просто откажется с вами разговаривать.
А вот для чисто картиночных моделей (вроде Stable Diffusion XL) fine-tune – это вообще желательный маст-хэв, хотя это уже совсем другая песня.
Кванты.
Тут всё получилось максимально нестабильно и даже немного неожиданно. До тестов у меня была простая, популярная логика: больше цифра = выше качество – q8 > q6 > q4 > q3 > q2, ну и внутри +/- тоже самое, но с буквенным обозначением – q4kl > q4km > q4ks | iq4m > iq4s > iq4xs > iq4xxs, где приставка i (i-matrix) – почти гарантированно означает, что iq4s окажется лучше любого “классического” кванта при меньшем размере (больше токенов и свободной VRAM). И это, вероятно, корректно, но лишь если использовать модели хотя бы в сжатии до того самого q4, включительно – особой разницы тогда и правда не будет, кроме мелких различий. Но если имеются суровые ограничения по железу и приходится залезать в мир экстрима, который начинается от q3, то тут всё становится о-о-очень индивидуально.
Например, передовые “умные алгоритмы” UD от Unsloth для qwen3.5 27b и Gemma-4 12b – оказались великолепны, что видно при сравнении их с квантами от mradermacher, который, вероятно, всегда использует некий стандартный алгоритм сжатия. Так, его iq3s оказался хуже, чем версия от Unsloth iq3xxs, хотя номинально она должна быть на 2 ступеньки качественнее! Оказалось, что недостаточно просто скачать первые попавшиеся веса в желаемом сжатии – нужно еще и поглядывать на автора и число скачиваний и даже это не будет панацеей.
Но вместе с этим для qwen3.6 те же чудесные алгоритмы Unsloth дали сбой – магия закончилась и модель оказалась наглухо лоботомированной, а середнячковый mradermacher выдал может и не самые идеальные, но стабильные, работоспособные веса.
Впрочем, разница на практике при таком сжатии между qwen3.5 – qwen3.6 – оказалась просто незаметна, кроме того, что модель стала занимать больше VRAM и потеряла в скорости, разумеется.
Ну и особым сюрпризом оказалось то, что “старший” i-matrix квант не всегда гарантирует лучшее качество – это больше напоминает русскую рулетку с непредсказуемым результатом и здесь крайне рекомендуется провести нудное, но необходимое сравнение с другой версией кванта на ваших конкретных задачах, а не на попугаях или красивых тестах.
Что-то вроде заключения.
Проверять нужно абсолютно всё и, повторюсь, исключительно на своих практических задачах. Единственные относительно стабильные ориентиры – это базовые правила (q8 > q6, i4x > q4) и количество загрузок ну и с оговорками, но можно верить официальным тестам от разработчиков.
Зачем вообще так заморачиваться с выбором квантов? Потому что даже +500-1000 мб к размеру весов при большом контексте – это от 14 до 28 тыс. токенов, которые могут быть крайне важны для комфортной работы + банальная скорость.
Могу ли я ответить на свои собственные вопросы теперь? Пожалуй, да.
-
Есть ли смысл использовать квант ниже Q4? – да, жизнь есть и на IQ3!
-
Если смысл есть, то какой именно квант использовать и насколько будет заметна разница между ними? – да, есть и существенная + разные авторы дадут очень разное качество.
-
Какая длина контекста вообще нужна для реальных задач? – чтобы написать и поддерживать пошаговую стратегическую игру под управлением ИИ с войной и экономикой – достаточно контекста в 50к токенов. Чтобы написать приложение, которое будет вытягивать id3-теги из локальной mp3 библиотеки + искать/загружать через стороннее API всё недостающие + искать/загружать тексты всех песен + синхронизация базы треков (новые, старые, удаленные) – лучше иметь хотя бы 70к токенов.
-
Всегда ли новые модели – лучше старых? – как минимум для qwen3.53.6 практика показывает, что может стать даже хуже.
Итого: техническая спецификация (Q8 > Q4) работает только в рамках одной модели и одного поставщика квантов. И как только вы меняете модель или автора GGUF-сборки — держите в голове, что всё может просто сломаться и вести себя совсем не так, как ожидалось, а единственный надежный тестер — это ваш личный проект.
Такие дела.
Спасибо за внимание и понимание.
Автор: DaytonCavalet


