Почему .pth — это тупик, а GGUF — выход
Вы скачали крутую модель в формате .pth. PyTorch её видит, но Ollama — нет. LM Studio молча смотрит на файл и делает вид, что ничего не произошло. Проблема в том, что .pth — это внутренний формат PyTorch, а инструменты для локальных LLM работают с GGUF. Это как принести бензин в дизельный двигатель — вроде топливо, но не то.
GGUF (GPT-Generated Unified Format) — это бинарный формат от создателей llama.cpp. Он оптимизирован для быстрой загрузки, поддерживает квантование (сжатие весов) и работает на CPU, GPU и даже некоторых телефонах. Если хотите запускать модели локально — GGUF ваш выбор.
Не пытайтесь переименовать .pth в .gguf — это не сработает. Форматы совершенно разные внутри.
Что нужно для конвертации
Перед началом проверьте, что у вас есть:
- Модель в формате .pth (обычно это несколько файлов)
- Python 3.8 или новее
- Минимум 8 ГБ свободной RAM (для больших моделей — 16+ ГБ)
- Интернет для скачивания конвертера
- Терпение — процесс может занять от 10 минут до нескольких часов
Если у вас ещё нет модели, рекомендую начать с Llama 3.3 8B в GGUF — она уже в нужном формате.
1Устанавливаем llama.cpp — наш главный инструмент
llama.cpp — это С++ реализация архитектуры LLaMA. Именно она умеет конвертировать .pth в GGUF. Установка простая, но есть нюансы.
# Клонируем репозиторий
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
# Собираем с поддержкой GPU (CUDA для NVIDIA, Metal для Apple, Vulkan для AMD)
# Для NVIDIA:
make LLAMA_CUDA=1
# Для AMD через Vulkan:
make LLAMA_VULKAN=1
# Для Apple Silicon:
make LLAMA_METAL=1
# Если просто CPU (самый медленный вариант):
makeПроверяем, что сборка прошла успешно:
./main --help | head -5Если видите список опций — всё в порядке.
2Конвертируем .pth в GGUF — пошагово
Предположим, у вас есть модель Llama 3.2-11B в формате .pth. Файлы обычно лежат в папке со структурой:
llama-3.2-11b/
├── config.json
├── model-00001-of-00002.safetensors
├── model-00002-of-00002.safetensors
└── tokenizer.modelЕсли у вас .pth файлы вместо .safetensors — процесс аналогичный.
Сначала конвертируем в промежуточный формат GGML (старый, но нужный шаг):
# Переходим в папку llama.cpp
cd llama.cpp
# Конвертация для Llama-подобных моделей
python convert.py ../llama-3.2-11b/ --outtype f16Параметр --outtype f16 означает 16-битные floating point числа. Это сохранит максимальное качество модели, но файл будет большим.
Если получаете ошибку "No module named 'torch'" — установите PyTorch: pip install torch torchvision torchaudio
После успешной конвертации у вас появится файл ggml-model-f16.gguf в папке llama-3.2-11b/.
Теперь самое интересное — квантование. Это сжатие весов модели с минимальной потерей качества. Без квантования модель 11B займет около 22 ГБ — слишком много для большинства видеокарт.
# Q4_K_M — хороший баланс между качеством и размером
./quantize ../llama-3.2-11b/ggml-model-f16.gguf \
../llama-3.2-11b/llama-3.2-11b-Q4_K_M.gguf Q4_K_M| Тип квантования | Размер (11B модель) | Качество | Для чего использовать |
|---|---|---|---|
| Q4_K_M | ~6.5 ГБ | Отличное | Базовый выбор |
| Q3_K_M |
←
На главную
|