February 28, 2023

LLaMA - семейство новых языковых моделей с большим потенциалом

В конце февраля 2023г. появилась новость о релизе семейства новых производительных языковых моделей LLaMA от META*. По своих возможностям они сравнимы с мастадонтами, такими как PaLM, GPT-3, Gopher и Chinchilla.

Сообщается о четырех обученных моделях:

Доступны они только по запросу в академических целях и недоступны для коммерческого использования.

GitHub: https://github.com/facebookresearch/llama

Whitepaper: https://research.facebook.com/file/1574548786327032/LLaMA--Open-and-Efficient-Foundation-Language-Models.pdf

(Обновлено) Модели и веса уже в паблике (торрент):

Обучение:

Всего обучено четыре модели: LLaMA-7B, LLaMA-13B, LLaMA-33B и LLaMA-65B. Первые две на 1T токенов, вторые на 1.4T. Самая большая модель, 65B обучена с аналогичным GPT-3 вычислительным бюджетом, но обучена на большем числе токенов, на 1.4 триллионе:

Для сравнения (N-число параметров, D-число токенов):
- GPT-3, N=175B, D=300B
- Gopher, N=280B, D=300B
- Chinchilla, N=70B, D=1.4T
- LLaMA, N=65B, D=1.4T

Датасеты:

Модели мультиязычные, обученные с использованием 20 языков в датасете:

По заявлениям, при обучении использовались только публичные датасеты, в целях воспроизведения. Больше всего в данных содержится CommonCrawl (67%), потом C4 (15%), далее GitHub, Wikipedia (на 20 языках с акцентом на латиницу и кириллицу), Books, ArXiv и StackExchange .

Архитектура:

Токенизатор BPE, все числа разбиваются на отдельные цифры, есть фолбэк на байты в случае незнакомых UTF-8 символов.

Изменения в трансформере относительно классического трансформера Vaswani:
- пренормализация как в GPT-3
- SwiGLU активация как в PaLM, но с чуть другой размерностью
- Rotary Embeddings (RoPE) как в GPTNeo

Оптимизатор AdamW с обычными гиперпараметрами, cosine learning rate schedule с финальным learning rate в 10% от максимального, 2 тысячи шагов прогрева.

Использовали эффективную имплементацию causal multi-head attention (экономит вычисления и память, не считая, что не нужно для замаскированных токенов), доступную в библиотеке xformers.

Использовали чекпойнтинг, чтобы не пересчитывать активации на обратном проходе (сохраняли те, что дорого считать, типа выходов линейных слоёв). Для этого написали свой код для функции backward() трансформерных слоёв, не полагаясь на autograd PyTorch.

Ресурсы:

При обучении моделей использовались GPT кластеры из NVIDIA Tesla V100 (80GB). Модель LLaMA-65B обучалась на 2048 A100/80Gb, что для 1.4T токенов требует 21 день. В ценах MS Azure это было бы примерно $3.5M если ориентироваться на машины ND96asr A100 v4 с 8x A100 (https://azure.microsoft.com/en-gb/pricing/details/virtual-machines/linux/).

Выбросы CO2 за время обучения этих моделей (5 месяцев) оценили примерно в 1015 tCO2e. На самую большую, 65B, ушло 173 tCO2e, а для сравнения у самой большой LaMDA (https://t.me/gonzo_ML/1230) было 25.2 tCO2e.

Производительность:

LLaMA является более новой и продвинутой системой по сравнению с вышедшей в мае прошлого года большой языковой моделью OPT-175B, тоже предназначенной для исследователей.

В релизе утверждается, что вторая по размеру модель LLaMA-13B, «на большинстве тестов» работает лучше модели GPT-3 от OpenAI, в то время как самая большая модель LLaMA-65B, «конкурирует с лучшими моделями», такими как Chinchilla 70B от DeepMind и PaLM 540B от Google.


Метрики на уровне или чуть лучше, чем у GPT-3, правда я так и не понял, идёт ли сравнение с версией 2020го года или существенно улучшенной GPT-3.5 2022го.

Сравнивали с GPT-3 (175B), Gopher (280B), Chinchilla (70B), PaLM (8B, 62B, 540B), OPT(30B, 175B), GPT-J (6B, но в таблицах не фигурирует), GPT-Neo (20B).

Проверяли на zero-shot и few-shot на 20 бенчмарках:

На Common Sense Reasoning побеждает соразмерную Шиншиллу, побеждает также намного более крупный PaLM 540B везде кроме BoolQ и Winogrande, а 13B модель много где побеждает в 10 раз более крупную GPT-3, и с ней можно делать инференс на одном GPU V100.

На NaturalQuestions и TriviaQA новая SoTA в zero/few-shot, а LLaMA-13B хороша даже в сравнении с сильно большими GPT-3 и Шиншиллой.

На RACE reading comprehension LLaMA-65B сравнима с PaLM-540B, а LLaMA-13B бьёт GPT-3.

На Mathematical reasoning бьёт сравнимый по размеру PaLM (а иногда и самый большой), но обеим далеко до специализированной Минервы (файнтюненный PaLM), хотя на GSM8k близко.

На кодогенерации в целом лучше, чем LaMDA и PaLM.

На Massive Multitask Language Understanding (MMLU) похуже Шиншиллы и PaLM в 5-shot. Считают, что потому что книг в обучении было сильно меньше (177Gb << 2Tb).

Сделали Instruction finetuning, получили модель LLaMA-I. Хорошо улучшилась на MMLU, почти достала большой PaLM. В целом это был не фокус, поэтому ограничились одним экспериментом.

По токсичности вроде похоже на другие модели. Что интересно, токсичность растёт с увеличением размера модели.

По bias’ам в среднем слегка лучше GPT-3 175B, OPT 175B, но по отдельным темам и ощутимо хуже (например, по религии). Валят на CommonCrawl.

По truthful и truthful*informative лучше, чем GPT-3, но всё равно доля корректных ответов довольно низка, так что модель вероятно неплохо галлюцинирует.

* Внесена в перечень общественных объединений и религиозных организаций, в отношении которых судом принято вступившее в законную силу решение о ликвидации или запрете деятельности по основаниям, предусмотренным Федеральным законом от 25.07.2002 № 114-ФЗ «О противодействии экстремистской деятельности».

** В подготовке статьи использовались материалы с Телеграм канала https://t.me/gonzo_ML.