Chinchilla. Как ИИ уменьшается в размерах

Сегодня расскажу вам о модели (точнее, семействе моделей) с очаровательным именем. Модель зовут Chinchilla (шиншилла), она создана разработчиками Google и представлена миру в марте 2022 года в статье «Training Compute-Optimal Large Language Models» («Обучение оптимизированных с точки зрения вычислительных затрат больших языковых моделей»).
Это модификация предыдущей модели Gopher («суслик»). Самая крупная модель из семейства сусликовых содержала 280 млрд. параметров, а первая шиншилла – 70 млрд., но точность у нее была более высокая.
На мой взгляд, Chinchilla – хороший повод начать разговор о том, как модели, становившиеся все больше, начали постепенно становиться меньше с сохранением эффективности, потому что возникла необходимость поместить высокопроизводительный ИИ на пользовательские устройства, в том числе на смартфоны. Забегая вперед, такие маленькие и мощные модели уже существуют, и мы о них поговорим обязательно позже (на всякий случай уточню, что Chinchilla на смартфон не поместится). Но это потом, а пока вернемся к нашим грызунам.

Что она собой представляет

Идея, из которой выросла Chinchilla, вот какая: у нас есть ограниченный объем вычислительных мощностей. Авторы статьи используют метрику FLOP – floating-point operations (число операций с числами с плавающей точкой – то есть, с дробной частью, например, 3,5). Это вообще очень популярный способ измерить вычислительные затраты в глубоком обучении (часть машинного обучения, которая про нейросети). FLOP – это число умножений, сложений, делений и вычитаний с нецелыми числами за то время, пока происходит обучение модели. Почему считают именно их? Их достаточно просто посчитать с высокой точностью, потому что числа с плавающей точкой хранятся в памяти компьютера в стандартизированном формате. На то, сколько времени потребуется компьютеру для произведения n операций, влияет число процессоров, способность выполнять некоторые вычисления параллельно, пропускная способность памяти и эффективность алгоритма. Помимо FLOP есть еще FLOPS – то же самое, только число операций в секунду. Немного подробнее о FLOPS и о том, где эта метрика используется, можно почитать здесь.
Где операции с числами в обучении моделей? Везде. В процессе обучения происходит подбор очень большого числа коэффициентов, на которые нужно умножить входные данные, чтобы получить правильные выходные данные. Чтобы освежить в памяти некоторые базовые понятия, можно обратиться вот к этому посту про принципы работы языковых моделей с текстом и вот этому – про модели для обработки изображений. Там не про текст, зато понятно, где коэффициенты, о которых я говорю.
Так вот, у нас есть ограниченный объем вычислительных мощностей. Ограничен он аппаратным обеспечением. В частности, производительностью процессора и числом доступных ускорителей – accelerators, – а также тем, сколько времени мы можем позволить себе это аппаратное обеспечение использовать (то есть, сколько мы готовы платить за электроэнергию, аренду оборудования, если оно не наше, и не использовать его для других важных задач). Авторы статьи задались целью рассчитать оптимальный размер модели и оптимальный размер обучающей выборки текстов, которые обеспечили бы наиболее высокую точность при заданном ограничении мощностей.
На момент написания статьи в числе ближайших конкурентов был Gopher, GPT-3 и некоторые другие модели (все они относятся к трансформерам).

<i>(Все они большие по числу параметров и обучены примерно на одном объеме текстов. Авторы решили сделать саму модель меньше, а текста ей дать больше, и получилась Chinchilla)</i>
(Все они большие по числу параметров и обучены примерно на одном объеме текстов. Авторы решили сделать саму модель меньше, а текста ей дать больше, и получилась Chinchilla)

Для определения оптимального размера модели, который соответствует вычислительным ограничениям с одной стороны, и доступному объему текстов с другой, авторы пришли к тому, что существовавшие на тот момент модели из числа наиболее успешных чрезмерно велики. Например, модель вроде Gopher стоило бы обучить на объеме текстов в 6,8 трлн. токенов (примерно 5,1 трлн. слов), а не 300 млн. (примерно 225 млн. слов). Чтобы посчитать, сколько слов в n токенах, можно умножить число токенов на 0,75, это даст примерную оценку (это для английского языка, для русского, вероятно, нужно умножать на меньшее число, однако мне не удалось быстро найти таких оценок).
Модель хорошо показала себя на задачах на понимание текста (Massive Multitask Language Understanding). Про то, как экзаменуют модели, у меня был предыдущий пост (там другие задачи, но логика примерно та же; если тема зайдет, можно будет разобрать и другие подходы к оценке языковых моделей, это тема обширная).

<i>(Random в таблице – это вероятность случайного угадывания, Average human rater – точность ответов обычного человека, а Average human expert performance – точность ответов человека-эксперта)</i>
(Random в таблице – это вероятность случайного угадывания, Average human rater – точность ответов обычного человека, а Average human expert performance – точность ответов человека-эксперта)

Всем моделям-конкурентам давали пять примеров правильных ответов на вопрос (5-shot), и Chinchilla здорово обогнала и существенно больший по размерам Gopher, и самую новую на тот момент GPT.
Предсказания (Forecast) в нижней части таблицы – это та точность, которую предсказывали эксперты в 2022 и 2023 году.
Еще были ответы на вопросы, проверка искажений (наличие в ответах стереотипов, например), но это вы уже сами посмотрите, если будет интересно (спойлер: Chinchilla победила всех, конечно).

Заключение

Сегодня у нас есть более мощные модели, чем Chinchilla (в том числе и модели меньшего размера). Есть даже такие модели, которые помещаются на смартфон. Но на примере Chinchilla удобно наблюдать, как идет эволюция: от маленьких сетей, которые не могут сравниться с человеком, к огромным и производительным, затем к сжатию размеров без ущерба производительности.
Большую роль в этой эволюции играют ограничения вычислительных мощностей: взрывной рост размеров нейросетей начался тогда, когда для их обучения стали использовать производительные графические процессоры. Необходимость уменьшения продиктована ростом интереса пользователей и желанием получить нейросеть «в кармане» без необходимости получать доступ к промышленным мощностям.
У меня в телеграме есть пара постов на тему энергоэффективности и размеров, можно их посмотреть:
- про нейроморфные вычисления и сравнение нашего мозга и синтетического;
- про нехватку чипов для обучения нейросетей.
И вообще там весело, заходите.
P.S.: Недавно вышла и наделала шума статья о том, как большие языковые модели проверяли на способность обманывать для достижения своих целей (что-то вроде игры в мафию, только в условиях, немного более приближенных к реальным).
Я собираюсь разобрать ее позже, когда уляжется ажиотаж и появится, возможно, больше похожих исследований или информация о том, как OpenAI ответили на риски. Пока по ссылке выше вы можете ознакомиться с первоисточником и сделать собственные выводы.

22
1 комментарий

наблюдать, как идет эволюция: от маленьких сетей, которые не могут сравниться с человеком, к огромным и производительным - вот это и пугает, тем более что эта эволюция происходит все быстрее и только ускоряется.

1