Image

Найдите идеальный баланс размера модели и размера набора данных при фиксированном бюджете для студентов магистратуры права

Небольшое исследование с использованием крошечных трансформеров

Делиться

bc2cd90db9a3a0eb732c9411b990e901

Введение

При обучении больших языковых моделей (LLM) мы постоянно ограничены бюджетом. Это ограничение приводит к фундаментальному компромиссу: представьте, что если вы фиксируете вычислительный бюджет, увеличение размера модели означает необходимость уменьшения размера модели, на которой можно обучать, и наоборот. Итак, вы задаёте вопрос:

Стоит ли выделить больше ресурсов модели с большим количеством параметров или обучить ее на большем количестве данных?

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

Общее время обучения трансформатора приблизительно масштабируется как: C∝N×D, где

  • N — количество параметров модели.
  • D — количество токенов.
  • C — фиксированный бюджет вычислений.

Легко видеть, что при фиксированном C, N и D обратно пропорциональны друг другу.

Предыдущие исследования (Каплан и др., 2020; Хоффман и др., 2022) показали, что потери при обучении моделей машинного обучения подчиняются степенному закону с вычислением: L(C)∝C^{−α}, а оптимальный размер модели и размер набора данных масштабируются с вычислением как: N_opt∝C^a, D_opt∝C^b для некоторых положительных значений a и b.

В этой статье мы будем использовать крошечные Трансформеры, чтобы изучить, как сбалансировать N и D при фиксированном вычислительном C.

Установка эксперимента

Мы проектируем минимальную модель трансформатора и называем ее «крошечным трансформатором» со следующими настраиваемыми свойствами, которые влияют на размер параметров модели:

  • Размерность модели (d_model)
  • Измерение MLP (d_mlp)
  • Количество слоев (n_layers​)

Мы хотели бы обучить преобразователь различных конфигураций на токенизированных последовательностях длиной 64 из набора данных WikiText-2.

Чтобы изучить эффект масштабирования, мы определили сетку моделей от очень маленьких (16 скрытых единиц, 1 слой) до относительно больших (128 скрытых единиц, 4 слоя) и объединили их с диапазоном токенов от 5 тыс. до 1 млн. См. код ниже:

model_configs = [ {«d_model»: 16, «d_mlp»: 64, «n_layers»: 1}, {«d_model»: 24, «d_mlp»: 96, «n_layers»: 1}, {«d_model»: 32, «d_mlp»: 128, «n_layers»: 2}, {«d_model»: 48, «d_mlp»: 192, «n_layers»: 2}, {«d_model»: 64, «d_mlp»: 256, «n_layers»: 3}, {«d_model»: 96, «d_mlp»: 384, «n_layers»: 3}, {«d_model»: 128, «d_mlp»: 512, «n_layers»: 4}, ] # количество токенов (D), на которых мы обучаемся — симулируется в несколько шагов × batch × seq_len token_budgets = [5e3, 1e4, 3e4, 5e4, 1e5, 3e5, 5e5, 1e6] # small for demo

Приблизительно оценивая стоимость вычислений как C≈N×D, наша идея состоит в том, чтобы вычислить функцию потерь для каждой пары (N,D) и найти пару (N,D), с которой модель достигает минимальной функции потерь для заданного C: это и есть баланс, который мы ищем.

Реализация и наблюдения

Мы используем код ниже для обучения модели фиксированному количеству шагов с различными парами (N,D) и записываем результат.

results = [] device = «cuda» if torch.cuda.is_available() else «cpu» for cfg in model_configs: model = TinyTransformer(vocab_size=len(tokenizer), **cfg) N_params = count_params(model) for D in token_budgets: steps = int(D // (SEQ_LEN * 16)) # предполагая, что batch_size=16 dataloader = DataLoader( tokenized_dataset[«train»].shuffle(seed=0), batch_size=16, collate_fn=collate_fn ) avg_loss = train_one(model, dataloader, steps=steps, device=device) compute = N_params * D results.append({ «N»: N_params, «D»: D, «C»: compute, «loss»: avg_loss })

Затем мы строим график окончательной потери в зависимости от вычисления (N×D):

2070f8c9ac1adaa67c4970197473cf7a

У нас есть следующие важные наблюдения:

  1. При небольшом бюджете вычислительных ресурсов небольшие модели, обученные на большинстве доступных данных, работают лучше, чем более крупные модели, обученные на очень небольшом количестве данных.
  2. При больших вычислительных бюджетах более крупные модели оказываются более эффективными, если доступно достаточно данных.
  3. Оптимальный размер модели не растёт линейно с увеличением вычислительного бюджета. Например, удвоение вычислительного бюджета не приводит к увеличению оптимального количества параметров вдвое.

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

fba61dc60e859972a491b4df79c48be2

«Лучшая» модель

Чтобы определить «лучшую» модель, мы бы выбрали пару размера модели и количества токенов, которая минимизирует потери при фиксированном бюджете.

Мы предполагаем, что оба показателя подчиняются степенному закону: N_opt∝C^α, D_opt∝C^β, и мы хотели бы оценить неизвестные показатели α и β, выполнив следующие шаги:

  1. Возьмем логарифм величин: log?(N_opt)=αlog?(C)+const, log?(D_opt)=βlog?(C)+const.
  2. Подберите линейную регрессию. Наклон регрессии — это не что иное, как показатель степени.

Следующий код дает такую ​​регрессию:

# Подгонка логарифмической линейной регрессии a_slope, a_intercept, *_ = st.linregress(np.log(frontier.C), np.log(frontier.N)) b_slope, b_intercept, *_ = st.linregress(np.log(frontier.C), np.log(frontier.D))

В нашем пробном эксперименте мы обнаружили, что N_opt ~C^0,14, а D_opt ~C^0,86. Этот результат может не отражать всей картины, поскольку эксперимент проводился на упрощённой модели и конфигурациях. Но мы всё же видим, что рост вычислительной мощности приводит к увеличению оптимального размера модели, но с убывающей скоростью. Очевидно, что оставшийся бюджет следует отнести на увеличение количества обучающих токенов.

Более того, приведённые выше расчёты показывают, что наилучшее соотношение N_opt/D_opt = C^-0,72. Это означает, что при увеличении вычислительной мощности следует добавлять больше обучающих токенов, а не увеличивать размер модели.

Практические выводы

Из этого эксперимента, хотя он и игрушечный, мы можем извлечь несколько выводов:

  1. При фиксированном бюджете использование средней модели с большим объемом данных может превзойти очень большую модель с ограниченным объемом данных.
  2. Оптимальный размер модели и объём данных растут по мере роста вычислений. Не обучайте модель с большим количеством параметров, если у вас небольшой бюджет.
  3. При увеличении бюджета сначала рассмотрите оптимальное соотношение N_opt/D_opt, чтобы определить, следует ли увеличивать размер модели или добавлять больше обучающих данных.

Заключение

В этой публикации блога мы представляем исследование компромисса между размером модели и объёмом данных при фиксированном вычислительном бюджете для LLM в рамках модели. Эксперимент показывает, что мы можем найти оптимальное сочетание размера модели и количества токенов для достижения наилучшей производительности модели при заданном бюджете, что позволяет исследователям и практикам грамотно проектировать LLM и достигать наилучших результатов.

Ссылка

[1] Каплан, Дж., Маккэндлиш, С., Хениган, Т., Браун, Т.Б., Чесс, Б., Чайлд, Р., Грей, С., Рэдфорд, А., Ву, Дж. и Амодеи, Д. (2020). Законы масштабирования для нейронных языковых моделей.

[2] Хоффманн Дж., Боржо С., Менш А., Бучацкая Э., Кай Т., Резерфорд Э., де Лас Касас Д., Хендрикс Л.А., Уэлбл Дж., Кларк А., Хенниган Т., Ноланд Э., Милликан К., ван ден Дриссе Г., Дамок Б., Гай А., Осиндеро С., Симонян К., Элсен Э.,… Сифре Л. (2022). Обучение вычислительно-оптимальных моделей большого языка.

Источник: towardsdatascience.com

Каталог бесплатных опенсорс-решений, которые можно развернуть локально и забыть о подписках

галерея

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.
dummy-img
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.
dummy-img
dummy-img
Взаимодействие человека и машины погружается под воду.
Взаимодействие человека и машины погружается под воду.
Дифференциально приватное машинное обучение в масштабе с использованием JAX-Privacy
Image Not Found
Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.

Вкратце Опубликовано: Изображение предоставлено: Thos Robinson/Getty Images для The New York Times (откроется в новом окне) Джули Борт Компания Anthropic получила от Amazon 5 миллиардов долларов и в обмен пообещала инвестировать 100 миллиардов долларов в облачные сервисы.…

Апр 21, 2026
dummy-img

Как почистить виниловые пластинки (2026): пылесос, ультразвук, чистящий раствор, щетка.

Эти щелчки и треск недопустимы. Приведите свою музыку в порядок с помощью этого удобного руководства. Источник: www.wired.com

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026
Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Загрузка: обход банковских систем кибермошенниками и проблемы с удалением углерода.

Это сегодняшний выпуск The Download, нашей ежедневной новостной рассылки, которая предоставляет вам ежедневную порцию событий в мире технологий. Кибермошенники обходят системы безопасности банков с помощью незаконных инструментов, продаваемых в Telegram. В центре по отмыванию денег в Камбодже…

Апр 21, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых