Стэнфорд запустил курс CS336 по созданию LLM: от байтовых токенов до GPU-ядер

Stanford Online 617 тыс. 1 ч 18 мин 4 мин 24.04.2025
Главное

В Стэнфордском университете стартовал курс CS336 «Языковые модели с нуля» (Language Modeling from Scratch) под руководством профессоров Перси Ляна (Percy Liang) и Татсу Хасимото (Tatsu Hashimoto) . Этот уникальный курс ставит своей целью преодолеть растущий разрыв между исследователями ИИ и фундаментальными технологиями. По мнению Перси Ляна, современное сообщество «кризисно» отдалилось от основ: если раньше учёные сами обучали модели, то сегодня многие ограничиваются лишь написанием промптов к закрытым проприетарным системам . Философия курса проста: чтобы по-настоящему понять технологию, её нужно собрать своими руками — от токенизатора и архитектуры трансформера до систем оптимизации и этапов выравнивания (alignment) .

🏗️ Проблематика современных LLM и философия курса 1:49

Профессора Лян и Хасимото отмечают, что индустриализация языковых моделей создала барьер для академических исследований . Обучение моделей уровня GPT-4 требует сотен миллионов долларов и кластеров из сотен тысяч графических процессоров (GPU) уровня NVIDIA H100 . При этом компании-лидеры (OpenAI, Google) перестали раскрывать технические подробности архитектур и данных из-за конкуренции и соображений безопасности .

Перси Лян выделяет три уровня знаний, которые даёт курс:

Лян подчеркивает, что эффективный алгоритм сегодня важнее, чем когда-либо. По данным исследования OpenAI, с 2012 по 2019 год алгоритмическая эффективность выросла в 44 раза — это быстрее, чем действие закона Мура .

🗓️ Пять столпов создания языковой модели 27:14

Курс разбит на пять ключевых этапов, которые студенты проходят последовательно, создавая работающую систему.

1. Основы (Basics)

Студенты реализуют токенизатор BPE (Byte Pair Encoding) и базовую архитектуру трансформера . Преподаватели отмечают, что современная рецептура LLM включает множество мелких улучшений по сравнению с оригинальной статьёй 2017 года: функции активации SwiGLU, rotary positional embeddings (RoPE), RMS Norm и различные типы внимания (sliding window, GQA) .

2. Системная оптимизация (Systems) 33:57

Этот блок посвящен тому, как заставить код работать быстро на GPU. Ключевая проблема здесь — «текучесть» абстракций и стоимость перемещения данных между памятью и вычислительными ядрами . Студенты пишут кастомные ядра на языке Triton, чтобы минимизировать затраты на движение данных, и осваивают методы параллелизма (Data Parallelism, FSDP) . Также рассматривается эффективность инференса: технологии speculative decoding и оптимизация фаз pre-fill и decode .

3. Законы масштабирования (Scaling Laws) 40:50

Участникам предстоит научиться предсказывать поведение большой модели на основе малых экспериментов. Применяется концепция «оптимальности по Чинчилле» (Chinchilla optimal): поиск идеального баланса между размером модели и количеством токенов . В качестве практического задания студентам выдается ограниченный бюджет вычислительных мощностей (FLOPs), на котором они должны найти лучшие гиперпараметры для целевой модели .

4. Работа с данными (Data) 44:43

Профессор Лян утверждает: «Данные не падают с неба». Процесс превращения сырого интернета (Common Crawl) в качественный датасет — это грязная и сложная работа . Около 90% данных в сети — это «мусор» (трафик-хостелы, спам, ошибки парсинга) . Студенты учатся фильтрации, дедупликации и классификации контента, чтобы модель не тратила драгоценные вычислительные циклы на изучение низкокачественного текста .

5. Выравнивание (Alignment) 50:40

На финальном этапе базовая модель превращается в полезного ассистента. Это достигается через:

✂️ Токенизация: как текст становится числами 1:00:28

Первая лекция подробно разбирает процесс токенизации. Перси Лян выделяет несколько подходов:

  1. Посимвольный: приводит к слишком длинным последовательностям и неэффективному использованию словаря .
  2. Побайтовый: элегантен, но катастрофически увеличивает длину входа (сжатие 1:1), что неэффективно для квадратичного внимания трансформера .
  3. Пословный: страдает от проблемы «неизвестных слов» (ООV) и бесконечного словаря .

Решением остается BPE (Byte Pair Encoding) — алгоритм 1994 года, изначально созданный для сжатия данных . Он берет сырые байты и последовательно объединяет наиболее часто встречающиеся пары в новые токены . Это позволяет адаптивно выделять место в словаре для частых комбинаций (например, слогов или частых слов), сохраняя возможность собрать любое редкое слово из отдельных байтов. Коэффициент сжатия обычного токенизатора GPT-2 составляет около 1.6 байта на токен .

🛠️ Практика и инструменты курса 23:43

Организация курса отличается спартанскими условиями: студенты пишут код с «чистого листа» (без шаблонов), организуя структуру проекта по своему усмотрению . Хотя использование ИИ-инструментов вроде Cursor или Copilot не запрещено, Лян предупреждает, что они могут помешать получению реального опыта . Вычисления проводятся на кластере с GPU H100, предоставленном компанией Together AI .

💬 Цитаты

«Мы в некотором кризисе: исследователи становятся всё более и более оторванными от базовых технологий.»

Перси Лян 02:33

«Алгоритмы в масштабе — вот что имеет значение.»

Перси Лян 09:45

«Данные не падают с неба... интернет — это гораздо больше мусора, чем вы ожидаете.»

Перси Лян 47:01
👥 Спикеры
📚 Упомянутые книги
🔗 Упомянутые сайты и проекты
📖 Термины
BPE (Byte Pair Encoding)
Метод токенизации, объединяющий наиболее частые пары байтов в единые единицы словаря.
Chinchilla Optimal
Оптимальное соотношение количества параметров модели и объема обучающих данных для минимизации потерь при фиксированном бюджете.
Alignment (Выравнивание)
Процесс настройки модели для того, чтобы она следовала инструкциям пользователя и вела себя безопасно.
Triton
Язык программирования от OpenAI для написания высокопроизводительных GPU-ядер.
GRPO
Алгоритм оптимизации предпочтений, упрощающий PPO за счет удаления оценочной функции (value function).
📊 Цифры
🗓 Хронология
  1. 1994 Филип Гейдж разработал алгоритм BPE для сжатия данных.
  2. 2017 Выход статьи 'Attention Is All You Need', рождение трансформеров.
  3. 2020 OpenAI публикует статью о законах масштабирования (Scaling Laws).
  4. 2025 Запуск обновленной версии курса CS336 в Стэнфорде.
⚖️ Другая сторона
Искусственный интеллект Stanford University Percy Liang Tatsu Hashimoto BPE Transformer