Найти тему
Аналитика данных

ИИ T-Lite от Т-Банка. Запуск LLM на ноутбуке

Оглавление

Относительно недавно Т-Банк открыл доступ всем желающим к своей русскоязычной большой языковой модели (LLM) T-Lite, у которой 7–8 млрд параметров. О чём сообщалось на оф.сайте организации.

Для справки, параметры моделей от Open Ai:

  1. GPT-1 – 117 млн параметров;
  2. GPT-2 – 1,5 млрд;
  3. 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 Гб

Подробнее на Hugging Face.

После скачивания модели всё готово для запуска. Пишем код в ноутбуке.

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 эта функция не особо нужна, т.к. основная функция в ноутбуке – это работа с данными, а не беседа.

Более мощную модель Т-Банка можно например использовать для анализа звонков, заранее переведённых в текст (как перевести аудио в текст), или для анализа тональности текстов сообщений в мессенджерах, для поиска стоп слов и т.п.

С моделью на локальном компьютере у вас всегда будет под рукой а ля джипити без интернета и телеграма, профит.

Удачи в аналитике :)