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

Изменение климата и ИИ

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

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

Зеленый ИИ и сообщество ИИ

Зеленый ИИ – это подход к достижению передовых результатов (SOTA) с меньшим энергопотреблением, чем существующие решения. Термин разработан Schwartz et al. попытаться изменить то, как сообщество ИИ думает о развитии ИИ, предполагая, что сообществу ИИ необходимо создавать системы ИИ, которые обеспечивают более устойчивый мир.

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

Точное прогнозирование энергопотребления требует правильных показателей. Однако в настоящее время метрики такого рода не стандартизированы, и ближайшей метрикой для экспериментов является Операции с плавающей запятой (FLOP). Чтобы предсказать энергопотребление будущей работы ИИ, нам нужно понять, как флопы могут повлиять на разные машины и модели.

Знакомство с флопами

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

На сегодняшний день нет стандартизированных показателей, но Henderson et al. сделали первый шаг со своей статьей На пути к систематической отчетности об энергетическом и углеродном следах машинного обучения. Все выводы указывали на одну и ту же метрику: FLOPs.

Однако FLOPs как метрика недостаточно информативны, чтобы мы знали, какой объем работы будет выполнен. Нам также необходимо рассмотреть нашу машину логического вывода и то, как быстро мы хотим, чтобы работа была выполнена.

Для этого мы можем использовать Операций с плавающей запятой в секунду (FLOPS, обратите внимание на заглавную букву S). Этот показатель рассчитывается с использованием следующего уравнения:

Эффективность определяется как количество FLOPS на ватт:

Мы также должны учитывать, какие флопы обрабатываются. В машине есть несколько компонентов, которые используют FLOP различных форм, и другие части, которые не обрабатывают FLOP, например память. Давайте рассмотрим пример Эффективность графического процессора (терафлопс на джоуль) с различной точностью. Мы сравним Nvidia A100 с новым H100, выпущенным в этом году (2022).

Хотя TDP H100 составляет 700 Вт по сравнению с 350 Вт у A100, H100 использует свою мощность более эффективно, чем A100. Для 32-разрядной точности вычислений с плавающей запятой (FP) H100 выполняет на 250 000 000 000 операций с плавающей запятой больше, чем A100 на джоуль.

Мы не можем использовать эффективность таким же образом для памяти; память не выполняет инструкции, как это делает ЦП или ГП. Вместо этого память гарантирует, что данные доступны и доступны. Чтобы точно оценить потребление энергии памятью, нам нужно оценить количество операций с памятью, которые она может выполнить во время логического вывода.

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

  • Мы рассмотрим только точность 32-битных вычислений с плавающей запятой (FP).
  • Мы включим потребление энергии памяти как часть ЦП, чтобы предсказать потребление энергии памяти вместе с энергией ЦП (встроенная память графического процессора).
  • Мы оцениваем процесс тонкой настройки, чтобы сэкономить время и энергию, то есть мы измеряем потребление энергии для x шагов, а затем умножаем его, чтобы получить все шаги в y эпохах.

Вот модели, используемые для сбора данных:

Операции с плавающей запятой и прогнозирование энергии

Чтобы предсказать энергопотребление модели, мы разделяем источник затрат на различные этапы, показанные ниже.

  • Тонкая настройка: обучение и переобучение модели
  • Холодный старт: запуск сервера логических выводов
  • Вывод: модель работает с запросами

Точная настройка

На рис. 1 мы видим, что каждая модель имеет нулевое значение для отсутствия выполненной работы. Подогнанная линия показывает сильную корреляцию с R² = 0,952, что указывает на то, что FLOP являются хорошим показателем энергопотребления ЦП и DRAM.

На рис. 6 показана еще более сильная корреляция с R² = 0,990. Оба регрессионных анализа имеют p-значение меньше 0,01, что заставляет нас отклонить нулевую гипотезу.

Холодный старт

Измерения проводились на развернутой модели с помощью веб-фреймворка Flask. Сравнение величины потребления энергии при холодном пуске с другими фазами показывает, что потребление энергии при холодном пуске практически ничтожно. Если имеющаяся модель НЛП нуждается в существенном обслуживании, потребление энергии существенно повлияет на общее потребление.

Вывод

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

Теперь мы хотим проверить исследование с новыми точками данных.

Увеличение масштаба

Поскольку тестовая среда способна точно измерять энергию, нас теперь интересует, может ли наша регрессионная модель предсказывать потребление энергии для новой модели. Модель BERT Large — хороший вариант, поскольку она позволяет нам рассмотреть более крупную модель:

Теперь, когда у нас есть измеренные значения, насколько хорошо они коррелируют с предсказанными значениями из регрессионной модели?

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

Глядя на рисунок 10, мы видим, что значение R² существенно уменьшилось. Давайте сравним, сколько энергии использовала память для общего потребления ЦП и ЦП DRAM. Мы обнаруживаем, что память использовала почти 22,0% энергии при просмотре исходных собранных данных. Для BERT Large этот процент составляет всего 15,8%. ЦП потребляет больше энергии, чем ожидалось для более крупной модели.

Токенизатор

Выбор токенизатора также влияет на потребление энергии. В библиотеке Huggingface мы можем выбрать либо Быструю реализацию токенизатора, либо базовую (Base).

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

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

Дистилляция знаний, использованная при разработке DistilBERT, — это лишь один из методов снижения энергопотребления. DistilBERT примерно на 50% более энергоэффективен, чем другие модели без дистилляции с аналогичной точностью.

Вывод: только начало

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

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

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

Datatonic является Партнером года в области машинного обучения Google Cloud с богатым опытом разработки и развертывания эффективных моделей машинного обучения и сборок платформы MLOps. Нужна помощь в разработке модели машинного обучения или быстром развертывании моделей машинного обучения? Посмотрите наш вебинар MLOps 101, на котором наши эксперты расскажут вам, как начать масштабное машинное обучение, или свяжитесь с вами, чтобы обсудить ваши требования к машинному обучению или MLOps!

Материалы и тезисы, которые легли в основу этой статьи, доступны на Github.