Инструмент для загрузки и конвертации моделей HuggingFace без каких-либо драматизма.
Если вы используете машину с графическим процессором NVIDIA/CUDA и хотите поддерживать AWQ/GPTQ:
pip3 install llm-quantkit[cuda]
В противном случае установка по умолчанию работает.
pip3 install llm-quantkit
Если вам нужен фонарик для конкретного устройства, сначала установите его.
Этот проект зависит от библиотек torch, awq, exl2, gptq и hqq.
Некоторые из этих зависимостей еще не поддерживают Python 3.12.
Поддерживаемые Python: 3.8, 3.9, 3.10 и 3.11.
Usage: quantkit [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
download Download model from huggingface.
safetensor Download and/or convert a pytorch model to safetensor format.
awq Download and/or convert a model to AWQ format.
exl2 Download and/or convert a model to EXL2 format.
gguf Download and/or convert a model to GGUF format.
gptq Download and/or convert a model to GPTQ format.
hqq Download and/or convert a model to HQQ format.
Первым аргументом после команды должен быть идентификатор репозитория HF (mistralai/Mistral-7B-v0.1) или локальный каталог, в котором уже есть файлы модели.
Команда загрузки по умолчанию загружает в кэш HF и создает символические ссылки в выходном каталоге, но есть опция --no-cache, которая помещает файлы модели в выходной каталог.
По умолчанию AWQ равен 4 битам, размер группы 128, нулевая точка True.
По умолчанию GPTQ — 4 бита, размер группы 128, порядок активации False.
В EXL2 по умолчанию используется 8 бит, но битрейт по умолчанию отсутствует.
По умолчанию в GGUF иматрица отсутствует, но не существует типа квантования по умолчанию.
По умолчанию HQQ равен 4 битам, размер группы 64, нулевая точка = True.
Загрузите модель из HF и не используйте HF-кеш:
quantkit download teknium/Hermes-Trismegistus-Mistral-7B --no-cache
Загрузите только версию модели с защитным датчиком (полезно для моделей с фонариком и защитным датчиком):
quantkit download mistralai/Mistral-7B-v0.1 --no-cache --safetensors-only -out mistral7b
Загрузите конкретную версию репозитория Huggingface:
uantkit download turboderp/TinyLlama-1B-32k-exl2 --branch 6.0bpw --no-cache -out TinyLlama-1B-32k-exl2-b6
Загрузите и преобразуйте модель в Safetensor, удалив исходные корзины Pytorch:
quantkit safetensor migtissera/Tess-10.7B-v1.5b --delete-original
Загрузите и конвертируйте модель в GGUF (Q5_K):
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-Q5_K.gguf Q5_K
Загрузите и преобразуйте модель в GGUF с помощью иматрицы, выгрузив 200 слоев:
quantkit gguf TinyLlama/TinyLlama-1.1B-Chat-v1.0 -out TinyLlama-1.1B-IQ4_XS.gguf IQ4_XS --built-in-imatrix -ngl 200
Загрузите и конвертируйте модель в AWQ:
quantkit awq mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-AWQ
Преобразование модели в GPTQ (4 бита/размер группы 32):
quantkit gptq mistral7b -out Mistral-7B-v0.1-GPTQ -b 4 --group-size 32
Преобразуйте модель в exllamav2:
quantkit exl2 mistralai/Mistral-7B-v0.1 -out Mistral-7B-v0.1-exl2-b8-h8 -b 8 -hb 8
Преобразуйте модель в HQQ:
quantkit hqq mistralai/Mistral-7B-v0.1 -out Mistral-7B-HQQ-w4-gs64
Вот что сработало у меня при тестировании. Напишите PR или проблему с обновлениями того, что возможно на картах разных размеров.
Для преобразования GGUF не требуется графический процессор, за исключением iMatrix, а Exllamav2 требует, чтобы самый большой слой помещался на одном графическом процессоре.
Размер модели | Квант | видеопамять | Успешный |
---|---|---|---|
7Б | AWQ | 24 ГБ | ✅ |
7Б | ЭКЛ2 | 24 ГБ | ✅ |
7Б | ГГУФ | 24 ГБ | ✅ |
7Б | GPTQ | 24 ГБ | ✅ |
7Б | штаб-квартира | 24 ГБ | ✅ |
13Б | AWQ | 24 ГБ | ✅ |
13Б | ЭКЛ2 | 24 ГБ | ✅ |
13Б | ГГУФ | 24 ГБ | ✅ |
13Б | GPTQ | 24 ГБ | |
13Б | штаб-квартира | 24 ГБ | ? |
34Б | AWQ | 24 ГБ | |
34Б | ЭКЛ2 | 24 ГБ | ✅ |
34Б | ГГУФ | 24 ГБ | ✅ |
34Б | GPTQ | 24 ГБ | |
34Б | штаб-квартира | 24 ГБ | ? |
70Б | AWQ | 24 ГБ | |
70Б | ЭКЛ2 | 24 ГБ | ✅ |
70Б | ГГУФ | 24 ГБ | ✅ |
70Б | GPTQ | 24 ГБ | |
70Б | штаб-квартира | 24 ГБ | ? |
Все еще в бета-версии. Разгрузка Llama.cpp, вероятно, не будет работать на вашей платформе, если вы не удалите llama-cpp-conv и не установите его заново с правильными флагами сборки. Посмотрите документацию llama-cpp-python и следуйте соответствующей команде, но замените llama-cpp-python на llama-cpp-conv.