Как резидент Yandex Research научил большую нейросеть работать в браузере

Теперь можно запускать языковую модель с 8 млрд параметров в браузере на обычных устройствах. Это сделал возможным Владимир Малиновский, исследователь из научного отдела Yandex Research. И его проект демонстрирует значительный прогресс в оптимизации крупных языковых моделей для персональных компьютеров и мобильных устройств.

В основе проекта лежит работа с моделью Llama3.1-8B, которая в стандартной конфигурации требует 16 ГБ памяти, используя 16 бит на каждый параметр. Стандартные методы сжатия, такие как nf4, позволяют уменьшить размер до 4 ГБ.

Однако команда Yandex Research совместно с исследователями из университетов ISTA и KAUST разработала более эффективный подход, сочетающий технологии AQLM и PV-tuning.

Технические характеристики решения:

— Сжатие основной части модели до 2 бит на параметр;

— 4-битное и 8-битное сжатие для слоёв головы и эмбеддингов;

— Итоговый размер модели: около 2,5 ГБ;

— Сохранение 80% качества от исходной модели;

— Производительность на MacBook Pro M1: 1,5 токена в секунду (3-4 символа).

AQLM использует аддитивную векторную квантизацию, где каждая строка матрицы разбивается на сегменты по 8 чисел. Каждый сегмент формируется как сумма двух векторов из словарей размером 256 элементов.

На хранение индексов для восьми элементов матрицы тратится 2 раза по 8 бит, что даёт итоговые 2 бита на параметр.

Для сравнения:

— Исходная Llama3.1-8B: 16 ГБ;

— Сжатие методом nf4: 4 ГБ;

— Сжатие AQLM: 2,5 ГБ;

— Несжатая Llama 3.2 3B занимает в 2 раза больше места при меньшей эффективности.

Оптимизация производительности достигается за счёт многопоточности через веб-воркеры, что дало двукратное увеличение скорости. Решение использует model-parallel-подход с разделением матриц по размерности выхода между воркерами.

Для взаимодействия между потоками разработан специальный RPC-стек, обеспечивающий интероп между Rust и JavaScript.

Особенно интересен выбор 8-миллиардной модели для демонстрации. Хотя существуют более лёгкие варианты, такие как Llama 3.2 1B и Llama 3.2 3B, именно модель с 8 миллиардами параметров позволяет наглядно продемонстрировать эффективность алгоритмов сжатия. При этом сжатая 8B модель превосходит по качеству несжатую 3B версию.

Процесс работы с моделью выглядит следующим образом:

1. Первоначальная загрузка модели из облака (занимает несколько минут);

2. Автономная работа без необходимости подключения к интернету;

3. Генерация текста со скоростью 1,5 токена в секунду (MacBook Pro M1).

Важным аспектом проекта является его открытый характер — исходный код доступен на GitHub, что позволяет другим разработчикам изучать и улучшать технологию. Это особенно важно для корпораций, стартапов и исследователей, так как снижает затраты на вычислительные мощности при разработке и использовании LLM.

Протестировать работу модели можно на сайте galqiwi.github.io/aqlm-rs/about.html. Разработчик рекомендует использовать английский язык для общения с моделью, так как это существенно повышает качество ответов.

Текущие ограничения проекта:

— Время ожидания при первой загрузке модели (несколько минут);

— Относительно невысокая скорость генерации (1,5 токена/сек);

— Зависимость производительности от мощности устройства.

Автор: Ирина Задорожная
Журналист с опытом работы в оффлайн-медиа и онлайн-изданиях. Пишу про искусственный интеллект, ИТ-системы и сервисы, про ИТ-бизнес уже 10 лет.