Реализация LLaMA с открытым исходным кодом уже доступна.

Недавно я запустил образовательный информационный бюллетень, посвященный ИИ, у которого уже более 150 000 подписчиков. TheSequence — это информационный бюллетень, ориентированный на машинное обучение, без BS (то есть без шумихи, без новостей и т. д.), чтение которого занимает 5 минут. Цель состоит в том, чтобы держать вас в курсе проектов машинного обучения, научных работ и концепций. Пожалуйста, попробуйте, подписавшись ниже:



Модели больших языков (LLM) недавно покорили мир благодаря своей замечательной способности выполнять новые задачи с помощью текстовых инструкций или нескольких примеров. Эта способность, известная как обучение за несколько шагов, впервые наблюдалась, когда модели были увеличены до достаточного размера. В результате исследователи сосредоточились на дальнейшем масштабировании этих моделей. Общее предположение состоит в том, что чем больше параметров, тем выше производительность. Однако недавние исследования показали, что при заданном бюджете вычислений наилучшая производительность достигается не самыми большими моделями. Вместо этого меньшие модели, обученные на большем количестве данных, превосходят своих более крупных аналогов. В этом контексте Meta AI недавно опубликовал статью с подробным описанием LLaMA, LLM 65B, который способен превзойти GPT-3 во многих задачах, несмотря на то, что он значительно меньше.

Основной принцип, лежащий в основе LLaMA, заключается в достижении наилучшей производительности при различных бюджетах логического вывода путем обучения на большем количестве токенов, чем обычно используется. LLaMA имеет параметры от 7B до 65B и имеет конкурентоспособную производительность по сравнению с лучшими существующими LLM. Например, LLaMA-13B превосходит GPT-3 в большинстве тестов, несмотря на то, что он в 10 раз меньше. Эта модель, вероятно, упростит доступ и изучение LLM, поскольку ее можно запустить на одном графическом процессоре. На верхнем уровне шкалы модель с параметрами 65B также конкурентоспособна с лучшими моделями для больших языков, такими как Chinchilla или PaLM-540B.

Что отличает LLaMA от других моделей, так это то, что она использует только общедоступные данные, что делает ее совместимой с открытым исходным кодом. Большинство существующих моделей основаны на данных, которые либо не являются общедоступными, либо недокументированы. Хотя есть некоторые исключения, такие как OPT, GPT-NeoX, BLOOM и GLM, ни один из них не может конкурировать с PaLM-62B или Chinchilla.

Архитектура

Режим LLaMA основан на стандартной архитектуре трансформатора, включающей в себя различные усовершенствования из недавних исследований, такие как предварительная нормализация, функция активации SwiGLU и вращающиеся встраивания. Для повышения стабильности обучения LLaMA нормализует входные данные каждого подуровня преобразователя с помощью функции нормализации RMSNorm вместо нормализации выходных данных, как в исходной архитектуре. Кроме того, LLaMA заменяет нелинейность ReLU функцией активации SwiGLU для повышения производительности, используя размерность 234d, а также абсолютные позиционные вложения и добавляя поворотные позиционные вложения на каждом уровне сети для уменьшения вычислительных затрат.

Чтобы повысить эффективность обучения, Meta AI использовал эффективную реализацию каузального оператора внимания с несколькими головками, уменьшая использование памяти и вычислений вместе с контрольными точками, чтобы сэкономить дорогостоящие активации во время обратного прохода, и вручную реализовать обратную функцию для слоев преобразователя, чтобы уменьшить количество активаций, которые необходимо пересчитать. Наконец, чтобы еще больше сократить использование памяти, LLaMA полагается на параллелизм моделей и последовательностей, а также на перекрытие вычислений активаций и связи между графическими процессорами по сети. Результат был виден при обучении модели 65B-параметров. LLaMA обрабатывала около 380 токенов в секунду на GPU на 2048 графических процессорах A100 с 80 ГБ ОЗУ, что заняло около 21 дня, чтобы обучить наш набор данных, содержащий токены 1,4 Тб.

LLaMA оценивался по 20 эталонным тестам, включая задачи с нулевым и малым числом выстрелов, и сравнивался с другими базовыми моделями, такими как GPT-3, Gopher, Chinchilla и PaLM, а также с моделями OPT, GPT-J и GPTNeo. Результаты показали, что LLaMA смог превзойти GPT-3, несмотря на то, что был в 10 раз меньше по размеру.

LLaMA в действии

Некоторые результаты LLaMA невероятно сложны и фактически точны, демонстрируя сильные признаки рассуждения.

Первая реализация LLaMA

LLaMA еще не была открыта. Однако, не теряя времени, стартап Nebuly, занимающийся искусственным интеллектом, выпустил ChatLLaMA — реализацию LLaMA с открытым исходным кодом на основе RLHF. ChatLLaMA позволяет реализовать службу в стиле ChatGPT с использованием предварительно обученных моделей LLaMA. По сравнению с исходным ChatGPT, ChatLLaMA предлагает более быстрые и дешевые процессы обучения и вывод с одним GPU благодаря меньшему размеру архитектуры LLaMA. Кроме того, библиотека включает встроенную поддержку DeepSpeed ​​ZERO, что позволяет ускорить процесс тонкой настройки. ChatLLaMA также поддерживает все архитектуры модели LLaMA (7B, 13B, 33B, 65B), что дает вам возможность тонкой настройки модели в соответствии с вашими предпочтениями в отношении времени обучения и производительности вывода.

Код для использования ChatLLaMA очень прост, как показано ниже:

from chatllama.rlhf.trainer import RLTrainer
from chatllama.rlhf.config import Config

path = "path_to_config_file.yaml"
config = Config(path=path)
trainer = RLTrainer(config.trainer)
trainer.distillate()
trainer.train()
trainer.training_stats.plot()

LLaMA, безусловно, очень интересная разработка в области LLM. Meta AI обеспечил ранний доступ к модели. Надеемся, что общедоступный релиз будет доступен в ближайшее время.