May 14, 2023

Разбираемся с доступными большими языковыми моделями (LLaMA, Alpaca. GPT4All, Vicuna, Koala и др.)

Список актуальных доступных языковых моделей постоянно расширяется и в их форках и модификациях можно запутаться. Здесь я планирую собрать и структурировать всю информацию о LLM. Данная статья будет обновляться по мере появления новых моделей.

Согласно информации в репозиториях к моделям, вы можете запускать их на ПК с ограниченной конфигурацией. На данный момент лично я протестировал следующие модели на ПК с 128 Гб оперативной памяти и без использования GPU. Еще один хороший способ опробовать эти модели - Google Colab Pro+, который поставляется с 50+ Гб оперативной памяти:

  • Alpaca.cpp
  • Alpaca-LoRA
  • Flan-Alpaca

Для большинства людей лучшим вариантом будет llama.cpp, поскольку он поддерживает многие модели семейства LLaMA, хорошо оптимизирован, поддерживается сообществом и работает на устройствах со скромными характеристиками:

  • LLaMA
  • Alpaca
  • GPT4All

Список представляет собой продолжающуюся работу, в которой я пытаюсь сгруппировать их по семействам моделей (Foundation Models), и как они развиваются:

  • BLOOM, BLOOMz от BigScience;
  • Cerebras-GPT, GPT-J, GPT-NeoX, Polyglot и Pythia от EleutherAI;
  • Flamingo и FLAN от Google;
  • LLaMA, Alpaca, GPT4All, Vicuna и XGLM, OPT от Meta;
  • RWKV.

Alpaca / LLaMA

Stanford Alpaca: An Instruction-following LLaMA Model.

Далее представлен список форков с модификацией, основанных на проекте LLaMA или Stanford Alpaca компании Meta:

  • Alpaca.cpp
  • Alpaca-LoRA
  • Baize
  • Cabrita
  • Chinese-Vicuna
  • GPT4All
  • Koala
  • llama.cpp
  • Lit-LLaMA ️
  • Vicuna

Alpaca.cpp

Позволяет запускать быструю ChatGPT-подобную модель локально на вашем устройстве.

Alpaca-LoRA

Репозиторий содержит код для воспроизведения результатов Stanford Alpaca с использованием низкоранговой адаптации (LoRA). Мы предоставляем модель Instruct, сходную по качеству с text-davinci-003, которая может работать на Raspberry Pi (для исследований), а код легко расширяется до моделей 13b, 30b и 65b.

Baize

Baize - это ChatGPT-подобная модель с открытым исходным кодом, доработанная с помощью LoRA. Она использует 100 тыс. диалогов, созданных с помощью ChatGPT через общение самой с собой. Также используются данные Alpaca для улучшения ее производительности. Доступны модели: 7B, 13B и 30B.

Cabrita

Португальская дообученная на инстркуция модель семейства LLaMA

Chinese-Vicuna

Дообученная на инструкциях на китайском языке модель семейства LLaMA

GPT4All

Демка, данные и код для обучения большой языковой модели в стиле ассистента ChatGPT-like с ~800k GPT-3.5-Turbo Generations на основе LLaMa.

Koala

Koala - это языковая модель в стиле ассистента ChatGPT-like, доработанная на основе LLaMA.

llama.cpp

Иференс LLaMA - подобных моделей на чистом C/C++ на CPU.

Lit-LLaMA ️

Независимая реализация LLaMA с полностью открытым исходным кодом под лицензией Apache 2.0. Эта реализация основана на nanoGPT.

Vicuna (FastChat)

Чатбот с открытым исходным кодом, впечатляющий GPT-4 с 90% качеством ChatGPT.

BLOOM (BigScience)

Большая открытая многоязычная языковая модель от сообщества BigScience.

Вот список форков проекта BLOOM или основанных на нем:

  • BLOOM-LoRA
  • Petals

BLOOM-LoRA

Низкоранговая адаптация для различных наборов данных Instruct-Tuning.

Petals

Генерация текста с использованием 176B-параметров моделей BLOOM или BLOOMZ с возможностью дообучения на ваших задачах.

Cerebras-GPT (Cerebras)

Семейство открытых, вычислительно эффективных, больших языковых моделей. Cerebras открывает исходный код семи моделей GPT-3 с числом параметров от 111 миллионов до 13 миллиардов. Обученные по архитектуры Chinchilla, эти модели устанавливают новые эталоны точности и эффективности вычислений.

Flamingo (Google/Deepmind)

Решение нескольких задач с помощью одной визуальной языковой модели

Список форков проекта "Flamingo" или работ, основанных на нем:

  • Flamingo — Pytorch
  • OpenFlamingo

Flamingo — Pytorch

Реализация Flamingo, state-of-the-art на Pytorch.

OpenFlamingo

Открытая реализация модели Flamingo от DeepMind! В этом репозитории доступна имплементация на PyTorch для обучения и инференса моделей OpenFlamingo. Так же доступна начальная модель OpenFlamingo 9B, обученная на новом датасете Multimodal C4.

FLAN (Google)

Этот репозиторий содержит код для создания коллекций данных для тюнинга. Первая - это оригинальный Flan 2021, документированный в разделе Finetuned Language Models are Zero-Shot Learners, и вторая расширенная верси, Flan Collection, описанная в The Flan Collection: Designing Data and Methods for Effective Instruction Tuning, используемая при создании Flan-T5 и Flan-PaLM.

Форки, основанный на проектной базе FLAN:

  • Flan-Alpaca
  • Flan-UL2

Flan-Alpaca

Обучение на инструкциях от людей и других моделей. Репозиторий содержит расширение наработок Stanford Alpaca, синтетическая настройка инструкций к существующим моделям с настройкой инструкций, таким как Flan-T5.

Flan-UL2

Flan-UL2 это модель энкодер-декодер на базе архитектуры T5. Использует ту же конфигурацию, что и UL2 model выпущенный в начале прошлого года. Он был доработан с помощью оперативной настройки "Flan" и сбора наборов данных.

GLM (General Language Model)

GLM - это общая языковая модель, предварительно обученная с авторегрессионной задачей заполнения пробелов, которая может быть настроена на различные задачи понимания и генерации естественного языка.

Форки на базе проекта GLM:

  • GLM-130B

GLM-130B

GLM-130B открытая, двухязычная (английский и китайский) модель из 130 миллиардов параметров, предобученная с помощью алгоритма General Language Model (GLM). Она построена для инференса 30B параметров на одной A100 (40G * 8) или V100 (32G * 8) видео картах. С помощью INT4 квантизации, системные требрования могут быть понижены до 4 * RTX 3090 (4*24G) практически без деградации в качестве. На 3 июля 2022г., GLM-130B была натренированная на более чем 400 миллиардов токенов (по 200B для английского и китайского).

GPT-J

GPT-J открытая ИИ модель (artificial intelligence language model) разработанная сообществом EleutherAI. GPT-J производит результат работы близкий к GPT-3 от OpenAI на различных задачах с нулевым знанием и даже может превзойти его на задачах генерации кода.

Форки на базе проекта GPT-J:

  • Dolly

Dolly (Databricks)

Dolly, от компании Databricks, это большая языковая модель, обученная на платформе Databricks Machine Learning Platform, демонстрирует, что модель с открытым исходным кодом двухлетней давности (GPT-J) при дообучении на датасете от Stanford Alpaca, демонстрировать удивительно высокое качество обучения, не характерного для родительской модели, на которой оно основано. Мы считаем этот вывод важным, поскольку он демонстрирует, что возможность создания мощных технологий искусственного интеллекта гораздо более доступна, чем считалось ранее.

GPT-NeoX

Записи в репозитории EleutherAI для обучения расширенных языковых моделей на GPU. Framework основан на Megatron Language Model от NVIDIA и была дополнен методами из DeepSpeed, а также некоторые новые оптимизации.

HuggingGPT

HuggingGPT это система совместной работы, которая состоит из LLM как контроллера и множество экспертных моделей работающих прямо с HuggingFace хаба.

Polyglot

Большие языковые модели хорошо сбалансированной компетенции в нескольких языках. Были выпущены различные многоязычные модели, такие как mBERT, BLOOM и XGLM. Поэтому кто-то может спросить: "Зачем намсоздавать новые многоязычные модели?". Прежде чем ответить на этот вопрос, мы хотели бы спросить: "Почему люди во всем мире создают моноязычные модели на своем языке, хотя уже существует множество многоязычных моделей?". Мы хотели бы отметить, что одной из наиболее значимых причин является неудовлетворенность неанглоязычной производительностью существующих многоязычных моделей. Поэтому мы хотим создать многоязычные модели с более высокими показателями неанглийского языка. Это причина, по которой нам нужно снова создавать многоязычные модели и почему мы называем их "Polyglot".

Pythia

Интерпретация авторегрессионных трансформаторов во времени и масштабе

The RWKV Language Model

RWKV: Распараллеливаемые большие языковые модели с производительностью на уровне трансформеров, основанные на архитектуре RNN.

XGLM

Модель XGLM была предложена в Few-shot Learning with Multilingual Language Models.

[2303.18223] A Survey of Large Language Models (arxiv.org) — Page 5

https://arxiv.org/pdf/2304.00457.pdf — Page 7

Используемые источники: