Локальный запуск
GGUF: что это за формат моделей и какой квант выбрать
GGUF — формат, в котором языковую модель раздают одним файлом, готовым к запуску на своём компьютере. Метки вроде Q4_K_M в имени показывают степень сжатия: чем меньше цифра, тем легче файл и тем хуже ответы. Рабочий выбор по умолчанию — Q4_K_M.
Дальше по порядку: что именно лежит внутри файла, как читаются метки квантования, сколько весит одна и та же модель в разных вариантах, почему сжатая версия отвечает быстрее несжатой, какой файл брать под свою видеокарту и что означают приписки IQ, i1 и mmproj.
Цифры в таблицах — из документации llama.cpp и Hugging Face, сверены 24 августа 2026 года. Измерения сделаны разработчиками на одной модели и одной машине, поэтому их стоит читать как соотношения, а не как обещание скорости на вашем железе.
Что такое GGUF
GGUF — двоичный формат файла, рассчитанный на быструю загрузку модели в память. Его сделал автор llama.cpp, и сделан он под запуск моделей движком, а не под обучение. Отсюда все его свойства.
Главное отличие от других форматов весов документация Hugging Face формулирует так: в отличие от форматов, которые хранят только тензоры — а именно так устроен safetensors, — GGUF хранит и тензоры, и стандартизованный набор метаданных. То есть внутри файла лежат не только числа модели, но и описание: какая это архитектура, какой у неё словарь, какой шаблон диалога.
Практических следствий два, и оба вы почувствуете сразу.
- Ничего не нужно доустанавливать. Программе хватает одного файла: описание модели она берёт оттуда же, откуда веса.
- Файл самодостаточен. Его можно перенести на флешке на другой компьютер, и он заработает без конфигов и без интернета.
Формат понимают llama.cpp и всё, что на нём построено: LM Studio, Ollama, GPT4All и десятки надстроек. Как выглядит работа с ними, разобрано отдельно — в статьях про LM Studio и про llama.cpp.
Почему модель лежит одним файлом
В исходном виде модель — это папка: несколько файлов весов, конфиг, словарь, описание токенизатора. Такой набор рассчитан на библиотеки Python, которые соберут всё это в рабочую модель.
GGUF собирает всё в один файл заранее. Оригинальную модель конвертируют скриптом, а потом сжимают отдельной командой — это два разных шага, и делает их обычно не пользователь, а тот, кто выкладывает сборку. Поэтому в каталоге вы видите готовые файлы, а не инструменты.
Что значат метки Q4_K_M и IQ3_S
Имя файла обычно выглядит как Model-Name-Q4_K_M.gguf. Разбирается оно по частям.
| Часть метки | Что означает |
|---|---|
| Q и цифра | сколько бит приходится на один вес. Q4 — примерно четыре, Q8 — примерно восемь. Чем меньше цифра, тем меньше файл и тем сильнее модель теряет в точности |
| K | семейство методов, где веса сжимаются супер-блоками, у каждого блока свой масштаб. Это нынешний основной набор |
| IQ вместо Q | методы, где при сжатии учитывается матрица важности: какие веса модели трогать нельзя. На малых битностях дают заметно лучше результат |
| Последняя буква | различает варианты внутри одной битности по размеру. У Llama-3.1-8B Q3_K_S весит 3,41 ГиБ, Q3_K_M — 3,74, Q3_K_L — 4,02 |
| F16 и BF16 | несжатая модель, шестнадцать бит на вес. BF16 — укороченная версия обычного тридцатидвухбитного числа: тот же диапазон значений, меньше точность |
Отдельная группа — метки без буквы K: Q4_0, Q4_1, Q5_0, Q5_1, Q8_0. В таблице типов Hugging Face они помечены как устаревший способ квантования, который сегодня широко не используется. Встречаются они в старых сборках, и брать их поверх K-варианта той же битности смысла нет.
Сколько весит модель в разных квантах
Разработчики llama.cpp опубликовали замеры по одной и той же модели — Llama-3.1-8B. Это самая полезная таблица во всей теме: она показывает, что именно вы покупаете, выбирая метку.
| Метка | Размер файла | Бит на вес |
|---|---|---|
| F16 — без сжатия | 14,96 ГиБ | 16,00 |
| Q8_0 | 7,95 ГиБ | 8,50 |
| Q6_K | 6,14 ГиБ | 6,56 |
| Q5_K_M | 5,33 ГиБ | 5,70 |
| Q4_K_M | 4,58 ГиБ | 4,89 |
| Q4_K_S | 4,36 ГиБ | 4,67 |
| IQ4_XS | 4,17 ГиБ | 4,46 |
| Q3_K_M | 3,74 ГиБ | 4,00 |
| Q2_K | 2,95 ГиБ | 3,16 |
| IQ2_XXS | 2,23 ГиБ | 2,38 |
| IQ1_S | 1,87 ГиБ | 2,00 |
Обратите внимание, как идёт экономия. Первый шаг вниз, от несжатой модели к восьмибитной, срезает семь гигабайт. Шаг с Q4_K_M на Q3_K_M экономит меньше гигабайта, а бит на вес отнимает почти целый — то есть платите вы за него уже совсем другую цену.
Для крупных моделей выигрыш тот же по пропорции, но в других масштабах. Документация приводит три примера: Llama 3.1 на 8 миллиардов параметров — 32,1 ГБ в исходном виде и 4,9 ГБ в Q4_K_M; на 70 миллиардов — 280,9 и 43,1 ГБ; на 405 миллиардов — 1625,1 и 249,1 ГБ.
Меньше квант — быстрее ответ
Неочевидная часть: сжатая модель не только меньше весит, но и быстрее пишет ответ. В тех же замерах на одной машине скорость генерации растёт по мере сжатия.
| Метка | Скорость генерации, токенов в секунду |
|---|---|
| F16 — без сжатия | 29,17 |
| Q8_0 | 50,93 |
| Q6_K | 58,67 |
| Q5_K_M | 67,23 |
| Q4_K_M | 71,93 |
| Q2_K | 79,85 |
Разница между несжатой моделью и Q4_K_M — примерно в два с половиной раза. Причина в том, что на выдаче каждого следующего слова компьютер заново прогоняет через себя веса модели, и упирается он не в вычисления, а в скорость чтения памяти. Меньше файл — меньше читать.
При этом на обработке уже написанного вами запроса разницы почти нет: в тех же замерах все варианты держатся в одном коридоре. То есть сжатие ускоряет ответ, а не чтение вашего вопроса.
Какой файл брать под свою память
Правило одно и оно простое: смотрите на размер файла, а не на число миллиардов параметров в названии. Документация llama.cpp прямо говорит, что модель загружается в память целиком, поэтому требования к памяти и к диску совпадают.
Дальше три практических следствия.
- Файл должен влезать с запасом. Сверх весов нужно место под контекст диалога и под то, что уже занято системой. Файл на 7,9 ГиБ на видеокарте с восемью гигабайтами не поедет.
- Большая модель в сильном сжатии обычно лучше маленькой в слабом. При одинаковом размере файла выигрывает та, у которой больше параметров.
- Ниже трёх бит спускаются от безысходности. Экономия там уже небольшая, а падение качества резкое — это видно и по подписям, которыми сами авторы сборок помечают такие варианты.
Если видеокарты нет вообще
GGUF работает и на процессоре, просто медленнее: часть слоёв модели можно оставить в обычной оперативной памяти. Что реально запускается на слабой машине и с чего начать, разобрано в статье про локальные нейросети.
Что такое imatrix, IQ и приписка i1
Сжатие всегда что-то ломает. Насколько именно — измеряют двумя величинами: перплексией и расхождением с исходной моделью. Документация llama.cpp говорит, что эти потери можно уменьшить, если при сжатии использовать подходящий файл матрицы важности.
Матрица важности — это результат прогона модели на тексте, который показывает, какие веса влияют на ответы сильнее. Сборка, посчитанная с ней, при том же размере ведёт себя лучше. Отсюда две вещи, которые вы видите в каталоге.
- Метки IQ. В описании типов у них прямо сказано, что вес восстанавливается через масштаб супер-блока и матрицу важности. Это отдельное семейство, и на низких битностях оно сильнее обычных K-вариантов.
- Приписка i1 в имени файла. Так помечает свои сборки один из самых плодовитых загрузчиков на Hugging Face: у него репозиторий с матрицей важности и отдельный репозиторий с обычными сборками. Общего стандарта на эту приписку нет, это конвенция конкретного автора.
Тот же автор подписывает варианты словами, и подписи полезнее любой таблицы: у Q4_K_M стоит пометка «быстрый, рекомендуется», у Q4_K_S — «оптимальный по размеру, скорости и качеству», у однобитного IQ1_S — «для отчаявшихся».
Файл mmproj и другие спутники
Иногда рядом с моделью лежит второй GGUF с именем, начинающимся на mmproj. Это не дубль и не ошибка: сокращение расшифровывается как мультимедийный проектор, и внутри лежит часть, которая превращает картинку или звук в понятные модели данные.
- Нужен только для картинок и звука. Для обычного текстового диалога хватает основного файла.
- Он маленький и его не сжимают. Документация советует держать эту часть в высоком качестве — bf16 или восьмибитном варианте: на скорость и память это почти не влияет, а на качество распознавания влияет напрямую.
- Подключается отдельно. В llama.cpp — отдельным параметром запуска, в готовых оболочках обычно автоматически, если файл лежит рядом.
Второй частый случай — модель, разрезанная на несколько частей вида 00001-of-00003. Так делают, когда файл слишком большой. Качать нужно все части, а собирать их современные версии программ умеют сами.
Чем открыть GGUF
Просмотрщика для этого формата не существует и не требуется: файл не открывают, его загружают. Достаточно поставить любую программу для локального запуска и указать ей путь к файлу.
| Что нужно | Чем открывать |
|---|---|
| Просто поговорить с моделью | LM Studio: окно чата, встроенный поиск моделей, ничего настраивать не нужно |
| Свой сервер и полный контроль | llama.cpp: командная строка и локальный сервер, к которому подключаются другие программы |
| Посмотреть, что внутри файла | страница файла на Hugging Face: там встроен просмотрщик метаданных и списка тензоров, скачивать ради этого ничего не нужно |
Отдельно про запуск моделей одной командой из терминала — на портале ИИ-офиса есть разбор Ollama: там тот же GGUF внутри, но модели прячутся в собственное хранилище программы.
Что идёт не так
Четыре сценария, которые дают почти все жалобы.
- Файл скачан не целиком. Крупные модели рвутся на середине, и программа сообщает о повреждённом файле. Лечится докачкой, а не сменой модели.
- Скачан один кусок из нескольких. Если в имени есть
00001-of-00003, нужны все три файла. - Модель не помещается. Программа либо падает, либо уходит считать на процессор и выдаёт слово в несколько секунд. Берите файл на ступень меньше.
- Старая версия программы. Новые архитектуры моделей появляются каждый месяц, и запускалка о них просто не знает. Сначала обновление, потом поиск причины.
И общий ориентир: если модель запустилась, но отвечает бессвязно, дело почти всегда в слишком сильном сжатии, а не в самой модели. Тот же файл в Q4_K_M ведёт себя иначе, чем в Q2_K.
Частые вопросы
Что такое формат GGUF простыми словами?
Это один файл, в котором лежит вся языковая модель целиком: и числа-веса, и описание самой модели. Формат сделал автор llama.cpp, чтобы модель можно было запустить на обычном компьютере без установки Python и библиотек. Программа открывает файл и сразу работает.
Какой квант GGUF выбрать?
Q4_K_M — рабочий выбор по умолчанию, если файл помещается в память с запасом. У Llama-3.1-8B он весит 4,58 ГиБ против 14,96 у неквантованной версии. Q5_K_M и Q6_K берут, когда памяти много, а Q2 и Q3 — только когда иначе модель вообще не запускается.
Что значит Q4_K_M в названии файла?
Цифра после Q — сколько бит приходится на один вес модели: чем меньше, тем сильнее сжатие и меньше файл. K — семейство методов, где числа сжимаются блоками с отдельным масштабом. Последняя буква различает варианты одного и того же семейства по размеру: Q4_K_S меньше, чем Q4_K_M.
Сколько нужно памяти под GGUF-модель?
Ориентир — размер самого файла. Модель загружается в память целиком, поэтому требования к памяти и к диску в документации llama.cpp названы одинаковыми. Сверх размера файла нужно место под контекст и под систему, поэтому файл берут заметно меньше объёма видеопамяти.
Что означает i1 в имени файла GGUF?
Это пометка одного из крупных загрузчиков моделей на Hugging Face: так он помечает сборки, посчитанные с матрицей важности. У того же автора рядом лежит второй репозиторий с обычными сборками без такой пометки. Общего стандарта у приписки i1 нет, это конвенция конкретного человека.
Чем GGUF отличается от safetensors?
GGUF хранит и веса, и метаданные модели в одном файле и рассчитан на запуск чат-моделей на процессоре и видеокарте через llama.cpp и его надстройки. Safetensors хранит только веса и используется библиотеками на Python и программами для генерации картинок.