В Стэндфордском университете стартовал обновленный курс CME295, посвященный архитектуре трансформеров и большим языковым моделям (LLM). Преподаватели Афшин и Шервин Амиди, братья-близнецы с опытом работы в Uber, Google и Netflix, представили глубокий разбор механизмов, которые лежат в основе современных ИИ-инструментов вроде ChatGPT и Gemini.
🎓 Введение в курс CME295: от мастер-классов к академической дисциплине 0:05
Афшин Амиди открыл лекцию, представив себя и своего брата Шервина. Оба преподавателя получили образование во Франции (Centrale Paris), после чего Афшин обучался в MIT, а Шервин — в Стэндфорде . Их карьерные пути практически идентичны: работа в Uber, переход в Google и, наконец, в Netflix, где они специализируются на больших языковых моделях .
История этого курса началась в 2020 году с ежегодных воркшопов по NLP. Однако после выхода ChatGPT в 2022 году интерес к теме резко возрос, что привело к созданию полноценного курса CME295 в Стэндфорде весной 2024 года . Основные цели курса:
- Изучение фундаментальных механизмов архитектуры Transformer .
- Понимание процессов обучения и областей применения LLM.
- Подготовка специалистов для карьеры в области машинного обучения (ML) или разработки собственных проектов .
Логистика курса включает два экзамена — промежуточный (24 октября) и финальный (неделя 8 декабря), каждый из которых составляет 50% итоговой оценки . В качестве основного учебного пособия рекомендуется книга «Super Study Guide — Transformer LLMs», написанная авторами курса .
📑 Три кита NLP: задачи и метрики оценки 10:56
Естественный язык (NLP) Афшин Амиди классифицирует на три основные категории в зависимости от типа входных и выходных данных:
- Классификация: Текст на входе — метка на выходе. Примеры: анализ тональности (sentiment analysis), детекция намерений (intent detection) и определение языка .
- Мультиклассификация: Прогнозирование нескольких меток для одного текста. Ключевой пример — распознавание именованных сущностей (NER), где модель выделяет в тексте локации, имена и даты .
- Генерация текста: Текст на входе — текст на выходе переменной длины. Сюда входят машинный перевод, ответы на вопросы (как в ChatGPT) и суммаризация текстов .
Для оценки классификационных моделей Афшин рекомендует использовать не только общую точность (accuracy), но и метрики Precision, Recall и F1-score, так как данные часто бывают несбалансированными . В задачах генерации ситуация сложнее: традиционно используются метрики BLEU и ROUGE, основанные на сравнении с эталонным текстом . Однако получение эталонов — дорогостоящий процесс. По словам Афшина, развитие LLM позволяет постепенно переходить к «reference-free» метрикам, которые не требуют заранее написанных человеком ответов . Также важным показателем остается перплексия (perplexity), отражающая степень «неуверенности» модели в своем ответе .
✂️ Токенизация: как нейросети «едят» текст 23:05
Поскольку модели понимают только числа, текст необходимо преобразовать. Процесс разделения текста на единицы называется токенизацией. Преподаватель выделяет три подхода к этой задаче:
- На уровне слов (Word-level): Простой метод, но он не учитывает морфологию (слова «bear» и «bears» считаются абсолютно разными) и часто сталкивается с проблемой OOV (Out-Of-Vocabulary) — незнакомых слов .
- На уровне подслов (Subword-level): Оптимальный компромисс, использующий корни слов. Это снижает риск OOV, но увеличивает длину последовательности, что повышает вычислительную сложность .
- На уровне символов (Character-level): Устойчив к опечаткам, но делает последовательности слишком длинными и затрудняет изучение смысла (сложно понять, что значит буква «U» сама по себе) .
В современных мультиязычных моделях размер словаря обычно составляет сотни тысяч токенов .
🧠 От Word2vec к эмбеддингам: поиск смысла в числах 30:39
Наивный метод представления слов — One-Hot Encoding (векторы из нулей и одной единицы) — не позволяет вычислять схожесть слов, так как все векторы в нем ортогональны . Решением стало обучение эмбеддингов — плотных векторов, где похожие слова имеют высокую косинусную схожесть .
Афшин напоминает о революционной работе Word2vec (2013), которая предложила два метода обучения через прокси-задачи:
- CBOW (Continuous Bag of Words): Предсказание целевого слова по контексту .
- Skip-gram: Предсказание окружающих слов по одному целевому .
Цель этих задач — не само предсказание, а получение весов скрытого слоя нейросети, которые и становятся векторными представлениями слов . Типичная размерность такого вектора сегодня составляет около 768 единиц, хотя это значение эмпирическое и зависит от сложности задач и требований к задержке (latency) .
🔄 Эволюция моделей: RNN, LSTM и проблема «забывчивости» 54:14
Для учета порядка слов долгое время использовались рекуррентные нейросети (RNN). Они обрабатывают токены последовательно, сохраняя «скрытое состояние» (hidden state) как память о прочитанном . Однако у RNN есть фатальный недостаток — затухающий градиент (vanishing gradient).
По словам Афшина, при обработке длинных предложений модель «забывает» начало текста, так как градиенты при обратном распространении ошибки стремятся к нулю . Попытки решить это с помощью архитектуры LSTM (Long Short-Term Memory) добавили «состояние ячейки» для долгосрочной памяти, но не решили проблему медленных вычислений: последовательная природа RNN не позволяет эффективно задействовать мощности современных GPU .
🔦 Механизм внимания: «Внимание — это всё, что вам нужно» 1:05:14
В 2014 году появилась идея механизма внимания (Attention), позволяющего модели устанавливать прямые связи между текущим словом и любым словом в прошлом, независимо от расстояния между ними . Вершиной этой эволюции стала статья 2017 года «Attention is All You Need», представившая архитектуру Transformer .
Главная инновация — отказ от рекурсии в пользу Self-Attention (самовнимания). Теперь каждый токен может смотреть на все остальные токены в последовательности одновременно . Это позволяет модели понимать контекст: например, слово «bank» получит разные представления в контексте «river bank» (берег реки) и «robbing a bank» (ограбление банка) .
Для реализации внимания используются три вектора:
Схожесть вычисляется через скалярное произведение Query и Key, что затем используется для взвешивания значений Value . Поскольку эти операции можно представить в виде матриц, они идеально подходят для параллельных вычислений на GPU .
🏗️ Архитектура Трансформера: Энкодер и Декодер 1:14:01
Шервин Амиди подробно разобрал классическую архитектуру, состоящую из двух блоков:
- Энкодер (слева): Принимает входной текст и создает богатые контекстные представления токенов .
- Декодер (справа): Генерирует выходную последовательность шаг за шагом .
В декодере используется «маскированное самовнимание» (masked self-attention), чтобы модель не могла «подсматривать» в будущие слова при обучении генерации . Также в декодере есть слой кросс-внимания (cross-attention), где запросы приходят из декодера, а ключи и значения — из энкодера .
Дополнительные важные компоненты:
- Multi-Head Attention: Выполнение механизма внимания несколько раз параллельно с разными матрицами проекции. Это позволяет модели одновременно отслеживать разные типы связей (например, синтаксические и семантические) .
- Positional Encoding: Поскольку трансформер обрабатывает все слова сразу, ему нужно искусственно добавлять информацию о позиции слова через синусоидальные функции .
- Label Smoothing: Техника, при которой модель учат предсказывать не 100% вероятность одного слова, а оставляют небольшую долю вероятности для других вариантов. По данным авторов оригинальной статьи, это улучшает качество перевода .
Процесс генерации в декодере продолжается итеративно, пока модель не выдаст специальный токен EOS (End of Sequence) — конец последовательности .