Дякую за модель, прошу ще =)

#1
by MishaTW - opened

Доброго дня, модель дійсно непогано показала себе в використанні Української мови, чи можу я попросити зробити те саме з Llama 2 13b-chat? =) Або можливо в вас є якась готова дока, як це зробити?

Добрий день!

Для мого бідного ноутбука 13b модель, думаю, занадто, але можу описати як приблизно це зробити🙏
Доки, здається, поки що немає, на сторінці github llama.cpp процес детально не пояснюється, але схоже на звичайну квантизацію (це все робиться за допомогою llama.cpp, я користуюсь лінуксом, але, думаю, має працювати і на інших ОС):

  • необхідно за допомогою convert.py спочатку перевести неквантизовану модель з huggingface у f16 gguf (або f32, але різниця практично нульова з розміром в 2 рази більше);
  • порахувати imatrix з командою ./imatrix -m path/to/model.gguf -f path/to/data.txt -ngl 99, як описується тут: https://github.com/ggerganov/llama.cpp/pull/4957, де має вийти щось схоже на:
    "./imatrix -m /home/air/Downloads/openhermes/OpenHermes-2.5-Mistral-7B-f16.gguf -f /home/air/Desktop/imatrixtest2.txt -o /home/air/Desktop/imatrixtest2.imatrix -c 512 -ngl 7"
    де -m указує на f16 .gguf модель, -f - на дані, по яким рахується матриця, -о - куди зберігається фінальний результат, -ngl - скільки "шарів" відвантажується на відеокарту (в мене влазить лише 7), -c - розмір контексту в токенах;
  • потім вже можна саме переводити модель у різноманітні кванти за допомогою ./quantize - команда ./quantize --imatrix /path/to/imatrix /path/to/f16/model.gguf /path/to/output.gguf quant-type n-threads,
    має вийти щось типу "./quantize --imatrix /home/air/Desktop/imatrixtest.imatrix /home/air/Downloads/openhermes/OpenHermes-2.5-Mistral-7B-f16.gguf /home/air/Desktop/OpenHermes-2.5-Mistral-7B-Q4_K_S.gguf Q4_K_S 7".

Цей процес не finetuning і не додає нові дані з української мови, але він, в теорії, менш стискає саме weights, які використовуються в генерації тексту, схожого на той, за яким рахували файл imatrix. Треба підмітити, що, наскільки я знаю, ніхто досі не впевнений, на яких даних це все краще робити, але присутність цільової мови в даних точно покращує PPL. В теорії, при великому бажанні перший крок можна пропустити і працювати одразу з Q8 замість того, щоб оперувати величезними hf/gguf f16 файлами, тільки в останній команді додати --allow-requantize, але по хорошому так не робиться, я не пробував і за якість результату не ручаюсь :)

Sign up or log in to comment