Инференс и оптимизация
30 просмотров
GGUF
GPT-Generated Unified Format
GGUF — формат файла для хранения квантизованных LLM, разработанный проектом llama.cpp. Поддерживает квантизацию от Q2 до Q8 и инференс на CPU, CPU+GPU и Apple Silicon.
Что такое GGUF
GGUF (GPT-Generated Unified Format) — бинарный формат для хранения моделей, разработанный Georgi Gerganov (llama.cpp). Заменил предыдущий формат GGML. Хранит веса, метаданные, словарь токенизатора и конфигурацию в одном файле.
Типы квантизации
| Тип | Бит/вес | Размер 7B | Качество |
|---|---|---|---|
| Q2_K | 2.5 | ~2.7 GB | Низкое |
| Q3_K_M | 3.4 | ~3.5 GB | Среднее |
| Q4_K_M | 4.8 | ~4.4 GB | Хорошее |
| Q5_K_M | 5.7 | ~5.1 GB | Очень хорошее |
| Q6_K | 6.6 | ~5.9 GB | Отличное |
| Q8_0 | 8.5 | ~7.2 GB | ~FP16 |
| F16 | 16 | ~14 GB | Оригинальное |
Отличие от GPTQ/AWQ
| GPTQ/AWQ | GGUF | |
|---|---|---|
| Целевое устройство | GPU | CPU, CPU+GPU, Apple |
| Формат | Safetensors | GGUF (единый файл) |
| Inference engine | vLLM, TGI | llama.cpp, ollama |
| Mixed quantization | Нет | Да (разные слои — разная битность) |
Использование
# Конвертация из HuggingFace
python convert_hf_to_gguf.py meta-llama/Llama-3-8B --outfile llama3-8b.gguf
# Квантизация
./llama-quantize llama3-8b.gguf llama3-8b-Q4_K_M.gguf Q4_K_M
# Инференс
./llama-cli -m llama3-8b-Q4_K_M.gguf -p "Объясни квантизацию" -n 256
# Через Ollama (проще)
ollama run llama3
Когда использовать GGUF
- Локальный запуск на ноутбуке/десктопе
- Apple Silicon (M1-M4) — Metal-ускорение
- CPU-инференс на серверах без GPU
- Гибридный режим — часть слоёв на GPU, часть на CPU
Связанные термины
Является частью
Альтернатива