Я уже давно хотела написать про законы масштабирования, которые возникают при обучении LLM.
Меня всегда завораживает факт, что какие-то большие масштабные процессы могут быть описаны простыми изящными формулами.
А тот факт, что в сознании большинства людей, возможности современных LLM / AI больше связаны с магией, "так получилось" (см. мем про рисование лошади) или "не возможно предсказать", пушит меня к написанию этого поста (или серии) еще больше.
Кстати, с того момента, как я впервые собралась_ писать свой пост, некоторые "законы" приказали долго жить (про emerging abilities).
Но сегодня мы будем говорить не о них. Начнем с базовых - и, пока что, вечных (в нашем локальном отрезке реальности, лол). Они были первыми, и дальше - только уточнялись.
Погнали.
Долгое время прогресс в машинном обучении выглядел как ремесло. Кто-то придумал удачную архитектуру, кто-то - хитрый трюк с обучением, и модель стала чуть лучше. Насколько именно лучше, предсказать заранее было нельзя.
Фоном к смене этого взгляда стоит эссе Ричарда Саттона The Bitter Lesson (2019). Его мысль: за 70 лет истории ИИ раз за разом побеждали не хитроумные, вручную закодированные методы, а простые общие подходы, умеющие пожирать всё больше вычислений и данных.
Если это правда, напрашивается вопрос: а можно ли выигрыш от масштаба измерить и предсказать заранее?
Первые эмпирические намёки появились ещё раньше.
В 2017-м команда Baidu (Hestness et al.) показала на переводе, речи и языковых моделях, что ошибка падает с ростом данных не как попало, а по степенному закону - прямой линией в логарифмических координатах.
Но каноническая точка отсчёта для LLM - это январь 2020 года и работа OpenAI (Kaplan et al., Scaling Laws for Neural Language Models). Именно она превратила разрозненные наблюдения в стройную теорию и, что важнее, - в инструмент планирования.
Зачем вообще этим задались?
Тут все понятно. Если вы собираетесь потратить десятки миллионов долларов на обучение огромной модели, вы хотите знать заранее: окупится ли это и как правильно поделить бюджет — вложиться в модель побольше или в данные побольше?
Полученные законы масштабирования превратили ставку на масштаб из «обучим что-нибудь гигантское и понадеемся» в «мы можем спрогнозировать результат до запуска».
Работа OpenAI сформулировала простую и красивую вещь: loss падает по степенному закону от трёх ресурсов — числа параметров $N$, объёма данных в токенах $D$ и вычислений $C$.
$$ L(N)=\left(\frac{N_c}{N}\right)^{\alpha_N},\qquad L(D)=\left(\frac{D_c}{D}\right)^{\alpha_D},\qquad L(C)=\left(\frac{C_c}{C}\right)^{\alpha_C} $$
Здесь $L$ — это loss, кросс-энтропия на токен: насколько хорошо модель угадывает следующее слово (ниже — лучше). Показатели маленькие: $\alpha_N \approx 0.076$, $\alpha_D \approx 0.095$, $\alpha_C \approx 0.050$.