Энергозатраты на обучение LLM растут
Четвертая большая языковая модель OpenAI — GPT-4 — потребовала для обучения около 50 гигаватт-часов, что сравнимо с годовым энергопотреблением 5000 американских домохозяйств. Это было в 2023 году, и с тех пор вычислительные затраты на тренировку передовых LLM только росли, хотя точные цифры получить сложно.
Как работает динамическое масштабирование частоты
Исследовательская группа из Университета Твенте (Нидерланды) показала, что можно сэкономить до 14% энергии при обучении LLM без потери скорости, если умно регулировать тактовую частоту GPU во время вычислений. Аспирант Джеффри Спаан, ведущий автор работы, представил результаты на конференции Computing Frontiers в Катании (Сицилия) в прошлом месяце.
«Моя работа — это поиск вычислительных потерь, — говорит Спаан. — Это похоже на недоиспользование оборудования, но вместо оптимизации софта под железо мы пытаемся оптимизировать железо под софт».
Спаан и его коллеги добились этого с помощью динамического масштабирования напряжения и частоты (DVFS). Каждый чип, включая GPU для обучения передовых моделей, использует минимум один тактовый генератор для синхронизации вычислений. Каждая операция в чипе запускается тактовым импульсом. Частота этих импульсов определяет скорость работы чипа и его энергопотребление.
Современные GPU имеют два тактовых генератора: один для вычислительного ядра, другой для памяти. Когда ядро активно считает, его частота поддерживается высокой для быстрых расчётов. Но при DVFS частоту памяти в это время можно снизить, уменьшая энергопотребление. В принципе, можно было бы просто отключить часть памяти, но конструкции GPU не позволяют программно управлять таким выключением, да и повторное включение посреди вычислений заняло бы слишком много времени. Аналогично, когда ядро ожидает данные из памяти, его частоту можно замедлить, а частоту памяти — увеличить.
Тонкая настройка на уровне ядер
Технология DVFS известна по крайней мере с 1990-х годов. Однако, по словам Спаана, другие исследователи не могли эффективно применить её к обучению LLM: их методы либо слишком замедляли вычисления, либо были недостаточно точными для реальной экономии. Предыдущие попытки меняли частоту на каждой итерации обучения. В обучении LLM итерация состоит из двух этапов: прямого прохода, где данные проходят через слои модели с текущими весами, и обратного распространения ошибки, когда веса корректируются слой за слоем на основе результатов. Поэтому ранние работы фиксировали одну частоту для прямого прохода и другую — для обратного. Спаан и его коллеги настроили частоты на более коротком временном отрезке. Рабочая нагрузка GPU разбивается на крошечные вычислительные блоки — ядра (kernels). Например, одно умножение векторов может быть одним ядром. Ядра подаются на GPU для параллельной обработки множеством потоков. В реализации Спаана вычисление одного слоя глубокой нейросети разбивается примерно на 40 ядер. Подбирая частоту для каждого ядра отдельно, команда смогла добиться гораздо большей экономии энергии.
«Кто-то может подумать: ну так пусть GPU сам всё сделает, — говорит Спаан. — Но у GPU нет того предвидения, какое есть у нас: он не знает, какие ядра будут запущены, и вынужден полагаться на сиюминутные эвристики, поэтому никогда не достигнет такой же экономии».
Именно здесь вступает ручная подстройка.
Эксперимент и экономия 14%
В рамках эксперимента команда обучала модель GPT-3-xl с 1,3 миллиарда параметров на GPU Nvidia RTX 3080 Ti. Чтобы сэкономить время, они сосредоточились на обучении одного слоя. В этих условиях им удалось подобрать такой набор частот, который дал 14% экономии энергии при замедлении обучения всего на 0,6%. Производительность модели зависит и от скорости вычислений, и от энергопотребления. Есть одна сложность: хотя переключение частоты происходит быстрее, чем полное отключение ядра, оно всё же не мгновенно. В своём эксперименте исследователи оценивали по одному ядру за раз, не учитывая время переключения. Так что 14% экономии — это идеальный сценарий. Насколько это будет заметно на практике, по словам Спаана, сильно зависит от конкретного GPU. Новые чипы, например Blackwell от Nvidia, переключаются гораздо быстрее старых и должны позволить полностью реализовать потенциал экономии.
Практические нюансы и будущее метода
Сейчас команда разрабатывает инструмент, который сможет автоматически подбирать оптимальные частоты под конкретную задачу. Спаан надеется, что их метод заинтересует лидеров индустрии. «Мы оптимизируемся ради экономии энергии без потери производительности, — говорит он. — В реальном мире производительность — это священный Грааль».