Transformers documentation
Сохранение и обмен моделью
Сохранение и обмен моделью
Сохранение модели после её квантования при загрузке позволяет вам и всем, с кем вы её поделитесь, пропустить этап квантования в следующий раз. Методы калибровки, такие как GPTQ, выигрывают от этого больше всего, поскольку калибровка может занимать от нескольких минут до нескольких часов.
Сохранение модели
Вызовите save_pretrained() для квантованной модели, чтобы записать квантованные веса и добавить quantization_config в config.json.
from transformers import AutoModelForCausalLM, BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(load_in_4bit=True)
model = AutoModelForCausalLM.from_pretrained(
"Qwen/Qwen3-0.6B",
quantization_config=quantization_config,
device_map="auto",
)
model.save_pretrained("Qwen3-0.6B-bnb-4bit")Сохраните токенизатор в ту же директорию, чтобы контрольная точка была полной.
Загрузите модель в Hub
Вызовите push_to_hub(), чтобы загрузить квантованные веса и конфигурацию в репозиторий на Hub. Сначала выполните вход с помощью hf auth login.
model.push_to_hub("Qwen3-0.6B-bnb-4bit")Загрузка сохранённой модели
Загрузите сохранённую контрольную точку с помощью from_pretrained() без конфигурации квантования. Transformers считывает метод из quantization_config в config.json и загружает веса уже в квантованном виде.
from transformers import AutoModelForCausalLM
model = AutoModelForCausalLM.from_pretrained("your-username/Qwen3-0.6B-bnb-4bit", device_map="auto")Библиотека, используемая методом, должна быть установлена в том месте, где загружается контрольная точка.
Методы, которые не могут сохранить
Некоторые методы не могут сохранить свои квантованные веса, и для них save_pretrained() вызывает ValueError.
| Метод | Почему |
|---|---|
| GGUF | Веса загружаются из файла GGUF. Сохраняйте в формате GGUF с помощью инструментов llama.cpp. |
| NVFP4 | Сохранение не поддерживается. При загрузке модели выполните её квантование заново. |
| Quanto | Сохранение не поддерживается через Transformers. |
| Quark | Сохранение не поддерживается через Transformers. |
| AWQ с бэкендом ExLlama | Сохранение не поддерживается в бэкендах ExLlama. Загрузите модель с другим бэкендом, чтобы сохранить её. |
Квантованная модель с подключённым адаптером PEFT является исключением. save_pretrained() сохраняет только веса адаптера, поэтому работает с любым методом.
Чтобы сохранить модель в полной точности, сначала деквантуйте её. См. Деквантизация модели.
Update on GitHub