GGUF — бинарный формат весов следующего поколения для локального инференса моделей, разработанный как замена GGML и оптимизированный под современные LLM, мультимодальные архитектуры и гибкую структуру метаданных.
Определение
GGUF (General-purpose GPU-less Format) — это улучшенный формат весов для систем инференса на CPU и GPU в проектах семейства llama.cpp. Он создан для решения ограничений GGML: слабое описание метаданных, жёсткая структура тензоров и отсутствие стандартизированной поддержки новых архитектур. GGUF предоставляет расширенную модельную спецификацию, чёткую схему метаданных, явные типы квантования и стабильный бинарный контейнер, пригодный для больших и сложных моделей.
Как работает
GGUF представляет собой контейнер с явным заголовком, структурированными метаданными и последовательностью тензоров в различных форматах квантования (FP16, Q4_K, Q5_K, Q8_K и др.). В отличие от GGML, формат описывает:
- размеры слоёв и точные тензорные формы;
- маркерные поля для rope, attention, tokenizer и специальных токенов;
- полные параметры архитектуры: количество голов, размеры MLP, параметры rotary embedding;
- гибкую схему расширения — новые поля можно добавлять без изменения самого фреймворка.
Инференс не встроен в формат: GGUF используется llama.cpp и другими рантаймами как источник весов. Конвертация выполняется утилитами convert-*, позволяя переносить модели из PyTorch, HF Transformers и других фреймворков.
Где применяется
- llama.cpp и все его производные (компактный локальный инференс).
- Web-инференс в браузере (через WebGPU/WASM backends).
- Мобильные приложения с локальным LLM.
- Edge-устройства с ограниченной памятью.
- Сторонние рантаймы, использующие GGUF как стандарт обмена весами.
Практические примеры использования
Современные LLM, распространяемые в локальной форме — LLaMA 3, Phi 3, Mistral, Qwen, Gemma и другие — поставляются в GGUF. Разработчики дистрибутивов (например, TheBloke) готовят несколько квантованных вариантов, оптимизированных под CPU или WebGPU. GGUF также используют мультимодальные модели: Llava, BakLLaVA, Moondream. В ряде локальных ассистентов GGUF стал стандартным способом доставки моделей конечному пользователю.
Ключевые свойства
- Строгая структура метаданных: тип токенизатора, спецтокены, rope, параметры attention.
- Поддержка широкого набора квантований, включая K-серии (Q4_K/Q5_K/Q8_K).
- Расширяемый формат — новые параметры добавляются без изменения спецификаций рантайма.
- Оптимизирован для последовательного чтения и предвычислений.
- Унификация форматов для LLM, мультимодальных моделей и embedding-моделей.
Проблемы и ограничения
- Формат привязан к экосистеме llama.cpp — он не универсален для всех рантаймов.
- Не поддерживает динамическое хранение операторов — только веса.
- Качество модели зависит от качества квантования и инструмента конвертации.
- Ограниченная обратная совместимость: ранние версии GGUF не всегда корректно читаются новыми сборками.
Преимущества и ограничения
- Плюс: стандартизированная структура метаданных и высокая совместимость с современными LLM.
- Минус: зависимость от конкретной экосистемы и ограниченная применимость за её пределами.
Связанные термины
- GGML
- llama.cpp
- Квантование модели
- Q4_K / Q5_K / Q8_K
- Инференс на CPU