Автор: Игорь Иткин
Редактура: Дмитрий Раков
Недавно Meta выпустила технический отчёт, в котором исследователи описали тренировку новых моделей Llama 3 и 3.1, а также оценили их качество.
В нашей статье мы не затронем описание тренировки моделей на большом кластере (об этом можно дополнительно прочитать в отчёте), однако подробно рассмотрим сбор данных, трейнинг и оценку качества моделей. Давайте разбираться со всем по порядку 😊
Есть две модификации Llama 3 — это Llama 3 и Llama 3.1. Формат первой характеризуется наличием 8 и 70 миллиардов параметров. Формат второй — уже 405 миллиардами параметров. В Llama 3.1 появились также новые приятные фичи, например, длинный контекст и вызов тулзов.

Рисунок 1. Фичи моделей семейства Llama 3
Все модели предобучались на 15 триллионах токенов. Максимальная длина контекстного окна равна 128 тысячам токенов.
По качеству на тестах ****самая большая модель ****выдаёт результаты, сопоставимые с результатами GPT-4:

Рисунок 2. Сравнение моделей семейства Llama 3 с другими LLM
Обучение современных LLM включает три этапа:
Pre-training (пре-трейнинг) — обучение на неструктурированных данных;
Instruction tuning (пост-трейнинг) — работа с инструкциями;
Aligment (пост-трейнинг) — работа с безопасностью.

Рисунок 3. Общая структура LLM
Сначала большой многоязычный корпус разбивается на токены. Модель обучается предсказывать каждый следующий токен. На этапе предобучения она изучает структуру языка и получает огромное количество знаний о мире из текстов, которые «читает».
Для эффективности процесса нужны данные большого размера: модель с 405 миллиардами параметров обучается на 15.6 триллионах токенов, используя контекстное окно в 8 тысяч токенов. Затем идёт следующий этап предобучения, где контекстное окно расширяется уже до 128 тысяч токенов (но об этом мы поговорим чуть позже).
На этапе пре-трейнинга модель уже довольно хорошо понимает язык и мир, но ведёт себя не совсем так, как нам бы хотелось. Поэтому во время пост-трейнинга её несколько раз файнтюнят с помощью фидбека людей. Это делают через supervise finetuning (SFT) на инструкциях (почитать можно здесь и здесь) и Direct Preference Optimization (DPO). Также модель обучается использовать инструменты, или tools (подробнее разберём это в следующей части). Данный этап отвечает за улучшение и других областей — написание кода и рассуждение (reasoning). А ещё здесь принимаются меры по обеспечению безопасности модели.