Новости

Затраты DeepMind на исследования настолько высоки, что одна статья ICML стоила 12,9 миллиона долларов.

2024-08-03

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina


Новый отчет мудрости

Монтажер: Цяо Ян

[Введение в новую мудрость] Документ, недавно принятый DeepMind на ICML 2024, полностью разоблачил их «тиранию», поддерживаемую Google. По оценкам статьи, вычислительная мощность и стоимость, необходимые для этого исследования, составляют около 15% от стоимости предварительного обучения Llama 3, а стоимость может достигать 12,9 миллионов долларов США.

Какой экспериментальный бюджет необходим для публикации доклада на конференции?

Недавно компания DeepMind опубликовала исследование, в котором проводилось обширное эмпирическое исследование различных деталей алгоритмов и архитектуры, таких как выбор параметров и оптимизаторов, при масштабировании LLM.

Этот документ был принят ICML 2024.


Адрес статьи: https://arxiv.org/abs/2407.05872.

63-страничный документ охватывает десятки тысяч моделей, а альтернативы включают 3 оптимизатора, 4 схемы параметризации, несколько допущений выравнивания, более дюжины скоростей обучения и 14 размеров параметров до 26,8 байт.


4 схемы параметризации, требующие экспериментов

Просто услышав эти цифры, нетрудно понять, что это исследование должно включать большое количество экспериментов с использованием моделей.

Постоянный читатель, чтобы проверить свое понимание содержания статьи, подсчитывал все проведенные в ней эксперименты и прикидывал стоимость тиражирования статьи.


Если сложить все необходимые вычислительные мощности, то получится ошеломляющая сумма в 12,9 миллиона долларов США.

Пришло время проверить свои базовые навыки. Если вы руководитель исследовательской группы, оценка необходимой вычислительной мощности и затрат на основе плана эксперимента является важным навыком.

Тогда давайте проследим за этой статьей в блоге, чтобы узнать, где именно были сожжены эти более 10 миллионов долларов США.

Информация об архитектуре трансформатора

В приложении C к документу представлены различные подробные настройки алгоритма и архитектуры модели, такие как использование архитектуры только для декодера, нормализация слоев, функция активации GeLU, отсутствие отсева, токенизатор T5, размер пакета 256, использование параллелизма FSDP и т. д.


Статистика шкалы параметров экспериментальных моделей

Используя архитектурную информацию, мы можем примерно оценить количество FLOPS, необходимое для каждого обучаемого токена, обозначенного как M.

Поскольку в статье не описывается какой-либо механизм GQA/MQA, предполагается, что Rkv=1, в дополнение к lseq=512, Dhead=128, L=8 (глубина) и V=32101 (словарь сегментатора слов).

Общие параметры модели можно выразить как:

Таким образом, мы можем получить формулу расчета М:

По умолчанию количество токенов, обрабатываемых за эксперимент (TPE), составляет 5 тыс. (количество шагов обучения) × 256 (размер пакета) × 512 (lseq), что составляет примерно 6,5536e9.

def M(d: int, L=8, l_seq=512, V=32101) -> int:     return 6*d * (L*(12*d + l_seq) + V) TPE = 50000 * 256 * 512

Эксперимент по выравниванию

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


def alignment() -> int:     return 4 * TPE * sum(M(d) for d in [1024,2048,4096]) # >>> f'{alignment():.3E}' # '3.733E+20' # >>> cost_of_run(alignment())[0] # 888.81395400704

Если H100 стоит 3 доллара за час работы, стоимость эксперимента по настройке составит примерно 888 долларов.

скорость обучения

Подзадача: эксперимент с оптимальной потерей оценки (оценочной потерей)

В таблице E1 документа записаны все возможные комбинации оптимизатора × схема параметризации × размер модели × экспериментальные настройки для 6 размеров модели, а также выполняются базовые сканирования скорости обучения соответственно для получения наилучших потерь при оценке.

Всего включены следующие экспериментальные переменные:

- Размер модели Dε3072,4096,6144,8192,12288,16384

- 4 варианта параметризации

- 3 оптимизатора, из них у SGD всего 5 экспериментальных настроек, у Adam и Adam+Param Scaling 7 экспериментальных настроек.

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


H = [1,2,4,6,8,12,16,20,24,32,48,64,96,128] D = [h * 128 for h in H] def table_e1() -> int:   sets_x_optims = 5 + 7 + 7   return 4 * sets_x_optims * TPE * sum(M(d) for d in D[-6:]) # >>> f'{table_e1():.3E}';cost_of_run(table_e1()) # '1.634E+23' # (388955.9991064986, 16206.499962770775)

Стоимость этой детали близка к $400 000, что все еще находится в пределах приемлемого диапазона, но уже очень дорого для большинства академических бюджетов.

Таблица E1 дает наилучшие потери оценки, но не описывает стратегию сканирования LR, а количество точек на каждом изображении также различно.


Поскольку мы не получили ответа от автора статьи, мы не можем определить конкретный механизм, поэтому предполагаем, что каждая наиболее оцененная потеря прошла через 15 экспериментов (визуальный осмотр показал, что количество точек в каждой строке составляет около 10 до 15).

параметр β

Согласно разделу 4.2 статьи, скорость обучения также предполагает выбор двух гиперпараметров: β и γ.

Если есть только параметры β, это называется настройкой «LR+default»:


Эта часть включает в себя 3-кратный оптимизатор, 4-кратную параметризацию, а также отдельные эксперименты на глобальных и отдельных слоях (GlobalLR, Perlayer-fullalign) и неизвестное количество LR-сканирований:


def beta_only() -> int:   return 3*4*2*PpL * TPE * sum(M(d) for d in D) # 7.988E+23 (1902022.3291813303, 79250.93038255542)

Как видно из формулы, стоимость аналогична приведенному ниже эксперименту с эпсилоном, оба из которых составляют 2 миллиона долларов США.

параметр γ

По сравнению с экспериментом с параметром β в этой части есть два детальных различия.

Прежде всего, помимо настроек GlobalLR и Perlayer-fullalign, необходимо также добавить настройку Perlayer-noalign.


Во-вторых, поиск 3D-гиперпараметров (γ_1, γ_h, γ_L+1) выполняется только для d=1024=b, поэтому требуется еще 800 прогонов.


Формула расчета после их объединения:


Ориентировочная стоимость этой детали близка к эксперименту Адама с тепловой картой эпсилон и составляет около 3,2 миллиона долларов.

def gamma_expts() -> int:   return 36*TPE * (800*M(1024) + PpL*sum(M(d) for d in D)) # gamma_expts 1.354E+24 (3224397.534237257, 134349.8972598857)

Параметры Эпсилон оптимизатора Адама

Эксперимент с параметром Эпсилон, описанный в разделе 4.3 статьи, составляет основную часть вычислений.


Согласно приведенному выше выводу, каждый раз проверяется 15 различных скоростей обучения (точек на строку), чтобы найти наилучшую потерю оценки, тогда объем вычислений графика изменения параметра эпсилон, показанного на рисунке 6, составляет:


Расчеты выявили довольно дорогой счет в 2 миллиона долларов.

PpL = 15  # unprincipled estimate def eps_variants() -> int:   return 4 * 6 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{eps_variants():.3E}';cost_of_run(eps_variants()) '7.988E+23' (1902022.3291813303, 79250.93038255542) '''

Помимо линейной диаграммы в левой части рисунка 6, в Приложении F также приведены результаты тепловой карты.


Предполагая, что каждое значение блока является результатом 13 сканирований скорости обучения, объем вычислений этой части составит:


Было обнаружено, что стоимость только получения этих 8 тепловых карт составила 3,2 миллиона долларов США. Кроме того, поскольку мы моделируем количество LR-сканирований как константу 13, это число, вероятно, ниже фактической стоимости.

def eps_heatmaps() -> int:    # eps-type * eps-val * parameterizations * LR range * ...   return 2 * 6 * 4 * 13 * TPE * sum(M(d) for d in D[-6:]) ''' >>> f'{eps_heatmaps():.3E}';cost_of_run(eps_heatmaps()) '1.341E+24' (3193533.466348094, 133063.89443117057) '''

снижение веса

Эксперимент по снижению веса (Приложение G) относительно прост для понимания. Базовое LR-сканирование выполняется по схеме параметризации 4× и всем параметрам:


Это намного дешевле, чем эксперимент с эпсилоном, годовая зарплата которого составляет 317 000 долларов.

def weight_decay() -> int:   return 4 * PpL * TPE * sum(M(d) for d in D) ''' >>> f'{weight_decay():.3E}'; cost_of_run(weight_decay()) '1.331E+23' (317003.7215302217, 13208.488397092571) '''

Оптимизатор Адафактора

Эта часть эксперимента подробно описана в Приложении C3 и предназначена для проверки того, имеют ли масштабирование Adafactor и Adam+parameter схожие механизмы масштабирования ширины.


Имеются графики 2×4, где каждый оптимизатор собирает 11 точек данных, поэтому формула расчета следующая:


К счету было добавлено еще 188 000 долларов.

def adafactor() -> int:   return 2*2*4*PpL*TPE*sum(M(d) for d in D[:11]) ''' >>> f'{adafactor():.3E}'; cost_of_run(adafactor()) '7.918E+22' (188532.80765144504, 7855.533652143543) '''

Оптимизация вычислений

В статье делается попытка изменить количество головок внимания H в надежде найти оптимальные настройки расчета, но это предполагает изменение размера шага и набора данных, поэтому в этой части не используются описания формул. Код расчета следующий:

def P(d: int, L=8, V=32101) -> int:     return 2 * d * (6*L*d + V) def compute_optimal():   indices_50k = (14, 14, 12)   return 4*PpL*sum([     TPE * sum(sum( M(d) for d in D[:i] ) for i in indices_50k),         20  * sum(P(d)*M(d) for d in D[:11]) *3,   ]) # compute_optim 7.518E+23 (1790104.1799513847, 74587.67416464102)

Подведем итог

Подытожим вычислительную мощность и затраты на приведенные выше эксперименты:

alignment       3.733E+20 (888.81395400704, 37.033914750293334) table_e1        1.634E+23 (388955.9991064986, 16206.499962770775) eps_variants    7.988E+23 (1902022.3291813303, 79250.93038255542) eps_heatmaps    1.341E+24 (3193533.466348094, 133063.89443117057) beta_only       7.988E+23 (1902022.3291813303, 79250.93038255542) gamma_expts     1.354E+24 (3224397.534237257, 134349.8972598857) weight_decay    1.331E+23 (317003.7215302217, 13208.488397092571) adafactor       7.918E+22 (188532.80765144504, 7855.533652143543) compute_optim   7.518E+23 (1790104.1799513847, 74587.67416464102)

Было обнаружено, что вычислительная сложность всей статьи составила 5,42e24 FLOPS.

Это число составляет всего 15 % от объема обучающих вычислений Llama 3. При запуске на кластере H100 из 100 000 карт для завершения всех экспериментов потребуется всего 2 дня.

total_flops=5.421E+24 rental price: US$12.9M h100 node months required: 746.9595590938408 (sanity check) D=[128, 256, 512, 768, 1024, 1536, 2048, 2560, 3072, 4096, 6144, 8192, 12288, 16384] (sanity check) model sizes: ['0.00979B', '0.0227B', '0.058B', '0.106B', '0.166B', '0.325B', '0.534B', '0.794B', '1.1B', '1.87B', '4.02B', '6.97B', '15.3B', '26.8B'] (sanity check) M/6P: ['63.4%', '68.5%', '75.3%', '79.7%', '82.8%', '86.8%', '89.3%', '91.0%', '92.2%', '93.9%', '95.7%', '96.7%', '97.7%', '98.3%']

Однако, если мы не будем измерять его стандартами предварительной подготовки к LLM, а будем рассматривать эту статью DeepMind только как академическое исследование, такой объем вычислений покажется довольно экстравагантным.

Если бы в лаборатории было всего 10 H100, было бы невозможно проводить исследования такого масштаба.

Большая лаборатория со 100 H100, возможно, сможет завершить все вышеперечисленные эксперименты за несколько лет.

Использованная литература:

https://152334h.github.io/блог/масштабирование-экспоненты/

https://news.ycombinator.com/item?id=41107721

https://arxiv.org/abs/2407.05872