# Стэнфорд CME295: Как работают Mixture of Experts и механизмы памяти в LLM

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

---

В рамках учебного курса CME295 Стэнфордского университета состоялась третья лекция, посвященная архитектурам больших языковых моделей (LLM) и механизмам их работы. Преподаватели Афшин и Шервин разобрали эволюцию трансформеров от BERT до современных моделей с архитектурой Mixture of Experts (MoE), методы генерации текста и стратегии оптимизации инференса, такие как KV-кэширование и спекулятивное декодирование.

## 🏗️ Что делает языковую модель «большой»?
[[JUMP:0:05]]

Современное определение LLM (Large Language Model) опирается на три ключевых фактора масштабирования: количество параметров, объем обучающих данных и вычислительные мощности [4:20].

*   **Количество параметров:** Обычно LLM считаются модели, имеющие более 1 миллиарда параметров. Современные флагманы достигают сотен миллиардов и даже триллионов параметров [4:34].
*   **Объем данных:** Обучение проводится на наборах данных объемом от сотен миллиардов до десятков триллионов токенов [5:02].
*   **Вычислительные ресурсы (Compute):** Для работы и обучения требуются массивы GPU, хотя современные методы оптимизации позволяют запускать некоторые модели на потребительском оборудовании [5:17].

По мнению лекторов, терминология со временем изменилась: если в 2018–2019 годах к LLM могли относить BERT (encoder-only), то по современным стандартам LLM — это преимущественно декодерные (decoder-only) модели, способные генерировать текст [6:12]. К ним относятся семейства GPT, LLaMA от Meta, Gemma от Google, а также Mistral, DeepSeek и Qwen [7:14].

## 🧩 Mixture of Experts (MoE): Масштабирование без потери скорости
[[JUMP:8:21]]

Главная проблема огромных моделей — высокая вычислительная сложность при каждом проходе. Идея «Смеси экспертов» (Mixture of Experts) заключается в том, чтобы задействовать для обработки конкретного токена только часть параметров модели [9:06].

### Механика работы экспертов
Вместо того чтобы прогонять входной сигнал `x` через все слои, используется специальная сеть — **роутер (router)** или **гейт (gate)** [10:21].

1.  **Dense MoE:** Все эксперты задействованы, но с разными весами (вероятностное распределение) [12:52].
2.  **Sparse MoE:** Активируется только подмножество из `k` экспертов (обычно k=1 или k=2) [14:12].

Математически выход `y` представляет собой сумму выходов выбранных экспертов, взвешенную вероятностями роутера [11:18]. Эксперты в LLM обычно заменяют стандартные полносвязные слои (FFN), так как именно на них приходится основная масса параметров и вычислений (FLOPS) [16:44].

### Проблема «коллапса роутера»
При обучении возникает риск **routing collapse**, когда роутер привыкает использовать только 1–2 экспертов, а остальные остаются неактивными [21:09]. Для борьбы с этим в функцию потерь (loss function) добавляется дополнительный член (load balancing loss), который штрафует модель за неравномерное распределение токенов между экспертами [21:37].

По словам Афшина, MoE-модели (например, Switch Transformer) могут масштабироваться до триллионов параметров, оставаясь эффективными по количеству «активных» параметров при инференсе [28:39].

## 🎲 Стратегии декодирования: Как модель выбирает следующее слово
[[JUMP:36:36]]

На выходе LLM выдает распределение вероятностей для всех токенов словаря [37:56]. Существует несколько подходов к выбору конкретного токена:

*   **Greedy Decoding (Жадный поиск):** Выбор токена с максимальной вероятностью [38:55]. Главный минус — отсутствие разнообразия и риск получения локально оптимальной, но глобально бессмысленной последовательности [39:52].
*   **Beam Search (Лучевой поиск):** Отслеживание `k` наиболее вероятных путей (лучей). Метод лучше находит оптимальные фразы, но часто приводит к сухим, повторяющимся ответам. Популярен в машинном переводе [46:12].
*   **Sampling (Сэмплирование):** Случайный выбор токена на основе распределения вероятностей. Это добавляет модели «креативности» [47:19].

### Гиперпараметры управления текстом
Для контроля качества сэмплирования используются:

1.  **Temperature (T):** Параметр в функции Softmax. Низкая температура (T < 1) делает распределение «острым» (модель становится более уверенной и детерминированной). Высокая температура делает его равномерным (модель становится более непредсказуемой) [55:16].
2.  **Top-k:** Ограничение выбора только из `k` самых вероятных токенов [49:39].
3.  **Top-p (Nucleus Sampling):** Выбор из минимального набора токенов, суммарная вероятность которых превышает порог `p` [50:06].

Лектор отмечает важный технический нюанс: хотя архитектура трансформера детерминирована, на практике GPU могут выдавать разные результаты при одинаковых вводных из-за особенностей параллельных вычислений и точности чисел с плавающей запятой [1:03:31].

## 💡 Промпт-инжиниринг и «гниение контекста»
[[JUMP:1:07:11]]

Шервин ввел понятие **Context Length** — это максимальное количество токенов, которое модель может обработать за один раз [1:07:39]. Современные модели поддерживают контекст от десятков тысяч до миллионов токенов (например, Gemini) [1:08:43].

Однако исследователи обнаружили эффект **Context Rot** (гниение контекста) или проблему «иголки в стоге сена» (needle in a haystack). Модели часто теряют информацию, находящуюся в середине длинного текста, и их способность извлекать факты снижается при росте объема входных данных [1:09:09].

### Структура идеального промпта
Шервин предложил ментальную модель промпта из четырех измерений [1:13:58]:

1.  **Контекст (Context):** Окружение или роль модели (например, «Ты — ассистент по программированию»).
2.  **Инструкции (Instructions):** Что именно нужно сделать.
3.  **Входные данные (Inputs):** Непосредственный текст для обработки.
4.  **Ограничения (Constraints):** Формат ответа, стиль или правила безопасности.

## 🧠 Методы улучшения рассуждений (Reasoning)
[[JUMP:1:18:44]]

Для решения сложных задач используются специальные техники обучения в контексте (In-context learning):

*   **Chain of Thought (CoT):** Модель заставляют прописывать логические шаги перед выдачей окончательного ответа [1:18:57]. Это значительно улучшает результаты в математике и логике.
*   **Self-Consistency:** Модель генерирует несколько вариантов рассуждений параллельно, а затем выбирает наиболее частый ответ путем голосования (majority voting) [1:22:02].
*   **Zero-shot vs Few-shot:** В первом случае модель получает только инструкцию, во втором — примеры «вопрос-ответ» [1:15:21]. По мнению Шервина, современные мощные модели иногда работают лучше в режиме zero-shot с детальной инструкцией, чем с примерами, которые могут излишне ограничивать их логику [1:17:11].

## ⚡ Оптимизация инференса: Как ускорить нейросеть
[[JUMP:1:25:04]]

Для снижения задержек и стоимости работы моделей применяются инженерные хитрости:

1.  **KV Cache (Кэширование ключей и значений):** Чтобы не пересчитывать математические представления всех предыдущих слов при генерации каждого нового токена, результаты вычислений (Key и Value) сохраняются в памяти [1:29:00].
2.  **PagedAttention:** Технология, реализованная в библиотеке **vLLM**. Она управляет памятью GPU подобно операционной системе, разбивая KV-кэш на блоки и устраняя фрагментацию памяти [1:35:22].
3.  **Multi-Latent Attention (MLA):** Решение от команды DeepSeek, использующее низкоранговое сжатие (low-rank compression) для уменьшения размера KV-кэша при сохранении качества [1:38:40].
4.  **Speculative Decoding:** Использование маленькой («черновой») модели для быстрой генерации нескольких токенов, которые затем проверяются большой («целевой») моделью за один проход [1:42:24]. Если большая модель согласна с предсказаниями маленькой, генерация ускоряется в несколько раз.
5.  **Multi-token Prediction (MTP):** Обучение модели предсказывать сразу несколько следующих токенов вместо одного [1:47:19].