# Ян Дюбуа о создании LLM: почему данные и системы важнее архитектуры

Источник: https://www.youtube.com/watch?v=9vM4p9NN0Ts
Канал: Stanford Online
Опубликовано: 27.08.2024

---

Ян Дюбуа летом 2024 года представил в Стэнфордском университете обзор процесса создания современных языковых моделей. Он утверждает: успех систем уровня ChatGPT на 80% зависит от подготовки данных, методов оценки и системной оптимизации, а не от выбора архитектуры нейросети.

## 🏗️ Пять столпов разработки LLM
[[JUMP:00:56]]

Создание большой языковой модели (LLM) состоит из пяти ключевых компонентов [01:00]. Архитектура трансформера и алгоритмы потерь традиционно находятся в центре внимания ученых, но индустрия фокусируется на других аспектах.

Компоненты современной разработки:

*   Архитектура нейросети.
*   Алгоритм обучения и функция потерь.
*   Данные для обучения.
*   Методология оценки (Evaluation).
*   Системная часть (эффективный запуск на «железе»).

По мнению Яна Дюбуа, архитектурные различия между моделями сейчас минимальны [02:00]. Основной прогресс достигается за счет качества данных и умения эффективно распределять вычисления на тысячах видеокарт.

## 📚 Претрейнинг: как модель учит язык
[[JUMP:02:58]]

Этап предварительного обучения (pretraining) превращает модель в мощный предсказатель следующего слова [03:37]. Модель обучается на колоссальных объемах текста из интернета, пытаясь минимизировать кросс-энтропийную потерю.

Современные LLM работают по авторегрессионному принципу [05:15]. Они разбивают вероятность последовательности на произведение условных вероятностей каждого следующего токена.

Процесс предсказания:

1.  Текст разбивается на токены (subwords).
2.  Каждый токен преобразуется в вектор (embedding).
3.  Трансформер обрабатывает контекст и выдает распределение вероятностей для следующего шага.
4.  Выбирается наиболее вероятный токен, который снова подается на вход.

Главный недостаток такой схемы — медленная генерация [06:23]. Из-за циклического характера процесса время создания ответа растет линейно вместе с его длиной.

## 🧩 Токенизация и проблема редких слов
[[JUMP:10:46]]

Токенизаторы необходимы для перевода человеческого текста в понятные машине идентификаторы [11:01]. Обычное разбиение по словам не подходит из-за опечаток и особенностей языков вроде тайского, где нет пробелов.

Стандартом индустрии стал алгоритм **Byte Pair Encoding (BPE)** [12:34]. Он итеративно объединяет наиболее часто встречающиеся пары символов в один токен.

Особенности токенизации:

*   Один токен в среднем равен 3–4 буквам английского алфавита [12:10].
*   Числа часто токенизируются некорректно, что мешает LLM решать математические задачи [18:03].
*   Модели хранят в словаре как целые слова, так и отдельные буквы на случай встречи с неизвестным текстом [15:46].

Ян Дюбуа полагает, что в будущем индустрия перейдет на токенизацию по байтам, чтобы избавиться от текущих ограничений [17:34].

## 📊 Методы оценки: от перплексии к MMLU
[[JUMP:19:11]]

В процессе разработки инженеры используют **перплексию** (perplexity) — экспоненту от средней потери на токен [19:24]. Она показывает, между сколькими вариантами следующего слова «колеблется» модель. За последние 6 лет перплексия лучших систем упала с 70 до 10 единиц [20:50].

Академические бенчмарки стали основным способом сравнения готовых моделей:

*   **MMLU** (Massive Multitask Language Understanding) — 57 тестов по различным предметам от медицины до физики [24:30].
*   **HELM** — комплексная оценка от Stanford University [21:50].
*   **ChatBotArena** — «слепое» сравнение ответов двух моделей живыми пользователями [1:30:14].

Существует проблема загрязнения данных (data contamination) [27:13]. Когда тестовые вопросы попадают в обучающую выборку, результаты модели становятся фиктивными. По словам Яна Дюбуа, компании часто скрывают состав данных, что делает независимую проверку крайне сложной.

## 🌐 Очистка интернета: как готовят данные
[[JUMP:28:43]]

Обучение на «сыром» интернете невозможно из-за обилия мусора [29:08]. Исходный датасет Common Crawl содержит 250 миллиардов страниц объемом около 1 петабайта [30:04].

Этапы фильтрации данных:

1.  **Извлечение текста** из HTML-разметки.
2.  **Удаление нежелательного контента**: порнография, разжигание ненависти, личные данные (PII) [31:22].
3.  **Дедупликация**: удаление повторяющихся текстов и шаблонных подвалов сайтов [32:02].
4.  **Классификация по качеству**: обучение маленькой модели для поиска текстов, похожих на Wikipedia [34:23].

Инженеры специально увеличивают долю качественных источников, таких как научные статьи (arXiv) и код на GitHub [35:04]. Код особенно важен, так как он развивает у модели способности к логическому рассуждению.

## 📉 Законы масштабирования и экономика
[[JUMP:40:56]]

В 2020 году исследователи OpenAI обнаружили, что качество LLM предсказуемо растет вместе с увеличением вычислительной мощности и объема данных [41:55]. Эти зависимости называют законами масштабирования (Scaling Laws).

Опыт разработки Llama 3 400B показывает масштаб затрат [55:25]:

*   Модель обучали на **15,6 триллионах токенов** [55:37].
*   Использовалось **16 000 видеокарт H100** в течение 70 дней [57:02].
*   Стоимость только аренды оборудования составила около **52 миллионов долларов** [57:48].
*   Общий бюджет проекта, включая зарплаты 50 сотрудников, превысил **75 миллионов долларов** [58:13].

Статья Chinchilla установила оптимальное соотношение: на каждый параметр модели должно приходиться минимум 20 токенов обучающих данных [51:38]. Однако для снижения затрат на использование (инференс) компании обучают маленькие модели на избыточном количестве данных — до 150 токенов на параметр [52:29].

## 🤖 Пост-трейнинг: от текста к ассистенту
[[JUMP:59:50]]

Претренированная модель — это просто автодополнитель текста. Чтобы она стала помощником вроде ChatGPT, требуется этап выравнивания (alignment).

Основные методы:

*   **SFT** (Supervised Fine Tuning): дообучение на 10–50 тысячах диалогов, написанных людьми [1:02:23].
*   **Alpaca**: использование мощной LLM для автоматической генерации обучающих примеров [1:04:09].
*   **LIMA**: гипотеза о том, что для настройки стиля достаточно всего 1000 очень качественных примеров [1:05:43].

Ян Дюбуа отмечает, что SFT не учит модель новым знаниям [1:06:23]. Этот этап лишь заставляет систему использовать те знания, которые уже были заложены в нее во время претрейнинга, в формате «вопрос-ответ».

## ⚖️ RLHF и упрощение через DPO
[[JUMP:1:09:52]]

Обучение с подкреплением на основе отзывов людей (RLHF) помогает модели выбирать лучший ответ из нескольких вариантов [1:12:42]. Традиционный метод PPO, использованный в ChatGPT, крайне сложен в реализации и требует настройки множества гиперпараметров [1:18:40].

Прорыв произошел с появлением метода **DPO** (Direct Preference Optimization), разработанного в Стэнфорде [1:19:34]. Он заменяет сложный цикл обучения с подкреплением простой функцией потерь, которая увеличивает вероятность «хороших» ответов и уменьшает вероятность «плохих».

Проблемы человеческой оценки:

*   Люди предпочитают длинные и вежливые ответы, даже если они менее точны [1:25:01].
*   Люди часто ошибаются и не могут объективно оценить правильность кода или математики [1:26:36].
*   Сбор данных RLHF стоит дорого — около 300 долларов за 1000 сравнений [1:26:09].

Для решения этих проблем Ян Дюбуа предлагает использовать **RLAIF** (Reinforcement Learning from AI Feedback), где одну модель оценивает другая, более мощная система [1:31:07]. Это в 50 раз дешевле человеческого труда при сопоставимой точности.

## ⚡ Системная оптимизация и CUDA
[[JUMP:1:37:06]]

Главное ограничение в обучении LLM — это не скорость вычислений, а скорость передачи данных между памятью и ядрами видеокарты [1:38:46].

Технологии ускорения:

*   **Смешанная точность** (Mixed Precision): использование 16-битных чисел для расчетов и 32-битных для хранения весов [1:40:58].
*   **Operator Fusion**: объединение нескольких математических операций в одну, чтобы реже обращаться к памяти [1:41:39].
*   **torch.compile**: инструмент в PyTorch, который автоматически переписывает код на C++/CUDA для ускорения работы в два раза [1:42:48].

Ян Дюбуа подчеркивает: современные нейросети простаивают большую часть времени, ожидая загрузки данных из памяти. Эффективная работа с GPU требует понимания иерархии памяти и минимизации коммуникаций между картами.