Относительно недавно Т-Банк открыл доступ всем желающим к своей русскоязычной большой языковой модели (LLM) T-Lite, у которой 7–8 млрд параметров. О чём сообщалось на оф.сайте организации.
Для справки, параметры моделей от Open Ai:
- GPT-1 – 117 млн параметров;
- GPT-2 – 1,5 млрд;
- GPT-3 – 175 млрд.
И тут нужно понимать, что западная модель GPT использовала для обучения в основном англоязычные источники и справляется с задачами лучше на родном, английском языке. А наша T-Lite соответственно лучше работает на русском языке.
На момент написания статьи модель T-Lite доступна на DropBox-e и на Hugging Face в аккаунте Анатолия Потапова, руководителя проекта LLM GEN-T. Результаты всех тестов и бенчмарков доступны на сайте банка. Но как теперь развернуть данную LLM локально на сильно мощном ноутбуке. Тут нам в помощь квантизация и ресурс Hugging Face. Приступим.
Как всегда, понадобится Jupyter Notebook и заранее скачанная квантованная модель в формате GGUF (GGML (библиотека машинного обучения) Universal Format).
Квантование – это такой процесс трансформации данных из базового объёмного массива информации в менее объёмное представление. Т.е. из большего делают меньшее. Для модели это значит уменьшение битности вычислений, т.е. там, где было 16-бит стало, например 8 и т.д. Это как когда мы уменьшаем количество знаков после запятой у числа 𝜋 для решения школьных задач, когда большая точность вычислений нам не нужна.
Для скачивания доступны несколько моделей с разными уровнями квантования. На момент написания статьи, для скачивания доступно 15 версий, для простого понимания – чем больше весит модель, тем он умнее, но и больше ресурсов компьютера требует для работы. Выберите себе подходящую версию:
- Q2_K – 3.3 Гб
- IQ3_XS – 3.6 Гб
- Q3_K_S – 3.8 Гб
- IQ3_S – 3.8 Гб
- IQ3_M – 3.9 Гб
- Q3_K_M – 4.1 Гб
- Q3_K_L – 4.4 Гб
- IQ4_XS – 4.6 Гб
- Q4_K_S – 4.8 Гб
- Q4_K_M – 5.0 Гб
- Q5_K_S – 5.7 Гб
- Q5_K_M – 5.8 Гб
- Q6_K – 6.7 Гб
- Q8_0 – 8.6 Гб
- f16 – 16.2 Гб
После скачивания модели всё готово для запуска. Пишем код в ноутбуке.
1. Устанавливаем пакет gpt4all
pip install gpt4all
2. Устанавливаем библиотеки
import gpt4all
from gpt4all import GPT4All
3. Прописываем модель для использования
В данном примере использована самая маленькая модель Q2_K – 3.3 Гб. Название модели нужно писать по имени скачанного файла, а путь где хранится модель на вашем компьютере кладём в переменную model_path.
После выполнения всех пунктов выше, можно начать пользоваться моделью в своём ноутбуке. Есть несколько вариантов.
4. Разовый запрос
Команда model.generate("Текст запроса") отправляет в модель разовый запрос. При таком синтаксисе, следующий запрос не будет связан с контекстом первого запроса.
# Запрос без сеанса общения
print(model.generate("Напиши второй закон Ньютона"))
Первое что пишет модель, это:
, а то я его забыл.
Странная реакция в начале ответа. Но и не менее странным выглядит остальной ответ. Напомню второй закон Ньютона это про формулу: F = ma.
Ускорение тела, получаемое при воздействии на него силы, прямо пропорционально этой силе, и обратно пропорционально массе этого тела.
Глубоко исследовать особенности квантованных моделей T-Lite мы сейчас не будем, поэтому движемся дальше.
5. Запрос в сессии
# Начало сессии
with model.chat_session() as session:
# Первый запрос
response1 = model.generate("Напиши второй закон Ньютона", max_tokens=512)
print(response1)
# Второй запрос в той же сессии
response2 = model.generate("Объясни, как работает закон сохранения энергии", max_tokens=512)
print(response2)
# Третий запрос в той же сессии
response3 = model.generate("Приведи примеры применения этих законов", max_tokens=512)
print(response3)
Тут модель конечно запуталась, но мы от самой маленькой Q2_K многого и не ждём.
Конструкция делает запросы в одной сессии работы с моделью, поэтому LLM может связывать контекст запросов, но в рамках использования в Jupyter Notebook эта функция не особо нужна, т.к. основная функция в ноутбуке – это работа с данными, а не беседа.
Более мощную модель Т-Банка можно например использовать для анализа звонков, заранее переведённых в текст (как перевести аудио в текст), или для анализа тональности текстов сообщений в мессенджерах, для поиска стоп слов и т.п.
С моделью на локальном компьютере у вас всегда будет под рукой а ля джипити без интернета и телеграма, профит.
Удачи в аналитике :)