Модель HuggingFace в GGUF

Конвертация нейросетевой модели LLM c HuggingFace в формат GGUF.

Для этого требуется установка llama.cpp:

откроем консоль, в ней выполним комманду (git должен быть ранее установлен):

git clone https://github.com/ggerganov/llama.cpp.git

Создадим виртуальную среду, чтобы небыло несовместимости с версиями модулей уже установленных в ОС.
python -m venv venv

Активируем среду (для Windows):
venv\Scripts\activate.bat

В командной строке должен появится фрагмент (venv) перед началом строки.

перейдем в папку llama.cpp:

cd llama.cpp

Выполним установку зависисмостей:

pip install -r llama.cpp/requirements.txt

Обновим сам установщик:

python.exe -m pip install —upgrade pip

выйдем из папки на уровень выше:

cd ..

Допустим у нас есть уже скачанная модель с huggingface в папку E:\t3\mistral-ft2 (как это сделать в другой статье), которую мы хотим преобразовать в формат gguf с 8 битной квантизацией (по умолчанию обычно модели 16 битные — float16 ).

Для этого пишем следующее:

llama.cpp>python llama.cpp/convert_hf_to_gguf.py E:\t3\mistral-ft2 —outfile mist_Q8_0.gguf —outtype q8_0

Как видите — запускаем python из папки или корня в котором находится папка llama.cpp, поэтому указываем путь до скрипта — llama.cpp/convert_hf_to_gguf.py

Далее указываем путь до папки с моделью нейросети, ранее скачанной с huggingface (не gguf).

—outfile mist_Q8_0.gguf   — даем название выходному файлу mist_Q8_0.gguf, чтобы по названию понять что модель квантована (ухудшена до 8 бит по точности).

Далее параметр

—outtype q8_0  задает точность с которой переконвертироватьв формат gguf — для пережатия в 8 бит пишем q8_0

Можно использовать другие значения — f32, f16, bf16, q8_0, tq1_0, tq2_0 или  auto.

Результатом выполнения станет файл mist_Q8_0.gguf, который теперь можно загрузить для использования например в koboldcpp.

 

Оставьте первый комментарий

Отправить ответ