Масштаб и эмерджентность: почему размер решает
Урок про то, что стоит за буквой «L» в LLM: насколько эти модели огромны и почему именно масштаб породил их неожиданные способности.
Эмерджентность — появление у крупных моделей способностей, которых не было у малых и которые не закладывались напрямую, а возникли как следствие масштаба.
Три измерения масштаба
Слово «большая» в Large Language Model касается трёх вещей сразу:
| Параметры | обучаемые числа (веса) внутри модели — от сотен миллионов до сотен миллиардов и больше |
| Данные | объём текста для обучения — триллионы токенов (значительная часть письменного интернета) |
| Вычисления | суммарная работа GPU на обучение — тысячи ускорителей в течение недель и месяцев |
Прикинем, откуда берутся миллиарды параметров. Даже один блок трансформера содержит миллионы весов, а блоков — десятки.
# Грубая оценка числа параметров в одном слое внимания + FFN трансформера.
d_model = 768 # размерность скрытого состояния
d_ff = 4 * d_model # внутренняя размерность feed-forward (обычно x4)
# Внимание: матрицы Q, K, V, O — каждая d_model x d_model
attn_params = 4 * d_model * d_model
# Feed-forward: две матрицы d_model x d_ff и d_ff x d_model
ffn_params = 2 * d_model * d_ff
per_block = attn_params + ffn_params
n_blocks = 12
print(f"Параметров на блок внимания: {attn_params:,}")
print(f"Параметров на feed-forward: {ffn_params:,}")
print(f"Всего на один блок: {per_block:,}")
print(f"Для {n_blocks} блоков: {per_block * n_blocks:,}")
print()
print("У реальных моделей сюда добавляются эмбеддинги, нормализации и т.д.,")
print("а число блоков и d_model в разы больше -> миллиарды параметров.")
Вывод:
Параметров на блок внимания: 2,359,296 Параметров на feed-forward: 4,718,592 Всего на один блок: 7,077,888 Для 12 блоков: 84,934,656 У реальных моделей сюда добавляются эмбеддинги, нормализации и т.д., а число блоков и d_model в разы больше -> миллиарды параметров.
Это лишь грубая оценка для одного небольшого конфига. У серьёзных моделей d_model и число блоков в разы больше, плюс гигантская матрица эмбеддингов словаря — так и набираются миллиарды и десятки миллиардов параметров.
Законы масштабирования
Исследования обнаружили удивительно ровную закономерность: качество модели (точнее, потеря на предсказании токена) предсказуемо улучшается при росте параметров, данных и вычислений. Это законы масштабирования (scaling laws). Они означают, что, потратив больше ресурсов в правильной пропорции, можно почти гарантированно получить модель лучше — без новой гениальной идеи, просто за счёт размаха. Именно эта предсказуемость оправдала колоссальные вложения в обучение.
Важная деталь: данные и параметры надо растить согласованно. Слишком большая модель на скудных данных учится плохо, как и наоборот. Существует «оптимальная» пропорция, и её ищут эмпирически.
Эмерджентные способности
Самое интересное — что при переходе через определённый масштаб у моделей внезапно появляются умения, которых у меньших версий просто не было:
- Обучение в контексте (in-context learning): модель решает новую задачу, увидев пару примеров прямо в запросе, без дообучения.
- Пошаговое рассуждение: способность раскладывать задачу на шаги («давай подумаем по шагам»).
- Следование сложным инструкциям и перенос между языками и доменами.
Эти способности называют эмерджентными, потому что они не программировались явно — они «вынырнули» из масштаба. Стоит, впрочем, относиться к термину осторожно: часть «скачков» объясняется тем, как мы измеряем качество, а не магией. Но факт остаётся: маленькая модель и большая модель ведут себя качественно по-разному, а не просто «чуть лучше / чуть хуже».
Итог
- «Большая» — это про параметры, данные и вычисления одновременно.
- Законы масштабирования: качество предсказуемо растёт с ресурсами, если растить их согласованно.
- За определённым порогом возникают эмерджентные способности (in-context learning, рассуждение).
- Эти умения не закладывались напрямую — они следствие масштаба.