Оптимизация нагрузки генеративного искусственного интеллекта для экологической устойчивости

Оптимизация нагрузки ГИИ для экологической устойчивости

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

Для дополнения наших рекомендаций по оптимизации рабочих нагрузок глубокого обучения для обеспечения устойчивости на AWS, в этом сообщении представлены рекомендации, специфичные для рабочих нагрузок генеративного искусственного интеллекта. В частности, мы предлагаем практические bewt практики для различных сценариев настройки, включая обучение моделей с нуля, настройку с использованием дополнительных данных с помощью полных или параметрически эффективных методов, а также Retrieval Augmented Generation (RAG) и создание запросов. Хотя в этом сообщении в основном рассматриваются большие языковые модели (LLM), мы считаем, что большая часть рекомендаций может быть распространена на другие базовые модели.

Постановка задачи генеративного искусственного интеллекта

При постановке задачи генеративного искусственного интеллекта учитывайте следующее:

  • Согласование использования генеративного искусственного интеллекта с вашими целями устойчивости – При определении объема вашего проекта обязательно учитывайте аспекты устойчивости:
    • Какие компромиссы существуют между решением на базе генеративного искусственного интеллекта и менее ресурсоемким традиционным подходом?
    • Как ваш проект генеративного искусственного интеллекта может поддерживать устойчивое развитие?
  • Используйте энергию с низкой углеродной интенсивностью – Когда это допускают правила и юридические аспекты, обучайте и развертывайте модель в одном из 19 регионов AWS, где потребляемая электроэнергия в 2022 году была получена из 100% возобновляемых источников энергии, а также в регионах, где углеродная интенсивность сети ниже, чем в других местах (или регионах). Дополнительные сведения см. в руководстве Как выбрать регион для вашей рабочей нагрузки в соответствии с целями устойчивости. При выборе региона старайтесь минимизировать перемещение данных по сетям: обучайте ваши модели рядом с вашими данными и развертывайте модели рядом с вашими пользователями.
  • Используйте управляемые сервисы – В зависимости от вашего опыта и конкретной ситуации весите варианты между использованием Amazon Bedrock, безсерверного полностью управляемого сервиса, предоставляющего доступ к разнообразным базовым моделям через API, или развертыванием ваших моделей на полностью управляемой инфраструктуре с использованием Amazon SageMaker. Использование управляемого сервиса поможет вам работать более эффективно, переложив ответственность по поддержанию высокой загрузки и оптимизации устойчивости развернутого оборудования на AWS.
  • Определите правильную стратегию настройки – Существует несколько стратегий для улучшения возможностей вашей модели, от создания запросов до полного настройки. Выберите наиболее подходящую стратегию на основе ваших конкретных потребностей, учитывая также различия в требуемых ресурсах для каждой из них. Например, полная настройка может обеспечить более высокую точность, чем создание запросов, но потребляет больше ресурсов и энергии на этапе обучения. Сделайте компромиссы: выбирая подход к настройке, который приоритетизирует приемлемую производительность перед оптимальной производительностью, можно достичь снижения ресурсов, используемых вашими моделями. Ниже приведена схема, отражающая экологическое воздействие стратегий настройки LLMs.

Настройка модели

В этом разделе мы делимся bewt практиками для настройки модели.

Выбор базовой модели

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

  • Оцените возможности и ограничения – Используйте игровые площадки Amazon SageMaker JumpStart или Amazon Bedrock, чтобы легко проверить возможности LLM и оценить их основные ограничения.
  • Уменьшите необходимость в настройке – Убедитесь, что собираете информацию, используя общедоступные ресурсы, такие как рейтинги лидеров среди открытых LLM, комплексные бенчмарки оценки или карточки моделей, чтобы сравнить различные LLM и понять, на каких конкретных областях, задачах и языках они были предварительно обучены. В зависимости от вашего случая использования рассмотрите модели, специфичные для области или многоязыковые, чтобы уменьшить необходимость в дополнительной настройке.
  • Начните с небольшого размера модели и небольшого окна контекста – Большие размеры моделей и окна контекста (количество токенов, помещающихся в один запрос) могут предложить больше производительности и возможностей, но они также требуют больше энергии и ресурсов для вывода. Рассмотрите доступные версии моделей с меньшими размерами и окнами контекста, прежде чем переходить к более крупным моделям. Специализированные модели меньшего размера имеют свою пропускную способность, сконцентрированную на конкретной целевой задаче. В этих задачах специализированные модели могут качественно вести себя так же, как более крупные модели (например, GPT3.5, который имеет 175 миллиардов параметров), при этом требуя меньше ресурсов для обучения и вывода. Примеры таких моделей включают Alpaca (7 миллиардов параметров) или использование вариантов T5 для многошагового математического рассуждения (11 миллиардов параметров или более).

Инженерия подсказок

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

  • Держите подсказки краткими и избегайте лишних деталей – Более длинные подсказки приводят к большему количеству токенов. По мере увеличения числа токенов, модель потребляет больше памяти и вычислительных ресурсов. Рассмотрите возможность использования нулевого или небольшого количества обучающих примеров для быстрой адаптации модели.
  • Экспериментируйте постепенно с разными подсказками – Уточняйте подсказки на основе желаемого результата, пока не достигнете желаемых результатов. В зависимости от вашей задачи, исследуйте передовые техники, такие как самоконсистентность, генерация знаний, ReAct Prompting или автоматическая инженерия подсказок, для дальнейшего улучшения возможностей модели.
  • Используйте воспроизводимые подсказки – С помощью шаблонов подсказок, таких как шаблоны LangChain, вы можете сохранять или загружать историю ваших подсказок в виде файлов. Это улучшает отслеживание экспериментов с подсказками, версионность и повторное использование. Когда вы знаете подсказки, которые дают лучшие ответы для каждой модели, вы можете сократить ресурсы, используемые для итераций и избыточных экспериментов в разных проектах.

Расширенная генерация с использованием извлечения данных

Расширенная генерация с использованием извлечения данных (RAG) – это очень эффективный подход для расширения возможностей модели путем извлечения и интеграции соответствующей внешней информации из предопределенного набора данных. Поскольку существующие модели используются без изменений, этот подход позволяет избежать затрат на энергию и ресурсы, необходимые для обучения модели на новых данных или создания новой модели с нуля. Используйте инструменты, такие как Amazon Kendra или Amazon OpenSearch Service и LangChain для успешного создания решений на основе RAG с использованием Amazon Bedrock или SageMaker JumpStart.

Параметрическая эффективная настройка

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

Используйте общедоступные библиотеки, такие как библиотека параметрической эффективной настройки, для реализации общих техник PEFT, таких как адаптация низкого ранга (LoRa), настройка префикса, настройка подсказки или P-Tuning. Например, исследования показывают, что использование LoRa может сократить количество обучаемых параметров в 10 000 раз и требования к памяти GPU в 3 раза, в зависимости от размера вашей модели, при схожей или лучшей производительности.

Настройка

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

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

Обучение модели с нуля

В некоторых случаях может потребоваться обучение модели LLM с нуля. Однако этот подход может быть вычислительно затратным и потреблять много энергии. Чтобы обеспечить оптимальное обучение, рассмотрите следующие bewt-практики:

  • Используйте эффективный силиций – Экземпляры EC2 Trn1, основанные на AWS Trainium, специально разработаны для обучения моделей глубокого обучения с высокой производительностью и оптимизированы с точки зрения энергоэффективности. В 2022 году мы заметили, что обучение моделей на Trainium помогает снизить энергопотребление на 29% по сравнению с аналогичными экземплярами.
  • Используйте качественные данные и масштабируемую кураторию данных – Используйте SageMaker Training для улучшения качества набора данных для обучения и минимизации зависимости от объемных данных. Обучаясь на разнообразном, всесторонне и куратированном наборе данных, LLM-модели могут давать более точные ответы и достигать оптимизации затрат и энергопотребления путем сокращения требований к хранению и вычислениям.
  • Используйте распределенное обучение – Используйте распределенные библиотеки SageMaker, такие как параллелизм данных, параллелизм потоков данных или параллелизм тензоров, чтобы выполнять параллельные вычисления на нескольких GPU или экземплярах. Эти подходы помогают максимизировать использование GPU, разделяя тренировочные пакеты на более мелкие микропакеты. Меньшие микропакеты эффективно передаются на GPU в трубопроводном режиме, чтобы все устройства GPU были одновременно активными, что приводит к оптимизации использования ресурсов.

Вывод модели и развертывание

Рассмотрите следующие лучшие практики для вывода модели и ее развертывания:

  • Используйте контейнеры глубокого обучения для вывода больших моделей – Вы можете использовать контейнеры глубокого обучения для вывода больших моделей на SageMaker и в фреймворках с открытым исходным кодом, таких как DeepSpeed, Hugging Face Accelerate и FasterTransformer, чтобы реализовать такие техники, как обрезка весов, дистилляция, сжатие, квантизация или компиляция. Эти техники уменьшают размер модели и оптимизируют использование памяти.
  • Установите соответствующие параметры вывода модели – Во время вывода у вас есть возможность настроить определенные параметры, которые влияют на выход модели. Понимание и правильная настройка этих параметров позволяет получать наиболее релевантные ответы от ваших моделей и минимизировать количество итераций настройки запроса. Это в конечном итоге приводит к снижению использования памяти и энергопотребления. Ключевыми параметрами, которые следует учитывать, являются temperature, top_p, top_k и max_length.
  • Примените эффективную инфраструктуру вывода – Вы можете развернуть ваши модели на ускорителе AWS Inferentia2. Экземпляры Inf2 предлагают до 50% более высокую производительность/ватт по сравнению с сопоставимыми экземплярами Amazon Elastic Compute Cloud (Amazon EC2), поскольку базирующиеся на них ускорители AWS Inferentia2 специально разработаны для запуска моделей глубокого обучения в масштабе. Как самый энергоэффективный вариант на Amazon EC2 для развертывания сверхбольших моделей, экземпляры Inf2 помогают вам достичь ваших целей по устойчивости при развертывании последних инноваций в области генеративного искусственного интеллекта.
  • Согласуйте уровень обслуживания вывода (SLA) с целями устойчивости – Определите SLA, которые поддерживают ваши цели по устойчивости и соответствуют вашим бизнес-требованиям. Определяйте SLA в соответствии с вашими бизнес-требованиями, не превышая их. Делайте компромиссы, которые значительно снижают использование ваших ресурсов в обмен на приемлемое снижение уровня обслуживания:
    • Очередь входящих запросов и асинхронная обработка – Если ваши пользователи могут терпеть некоторую задержку, разверните вашу модель на асинхронных конечных точках, чтобы уменьшить использование ресурсов, простаивающих между задачами, и минимизировать влияние пиковой нагрузки. Это позволит автоматически масштабировать количество экземпляров до нуля, когда нет запросов для обработки, поэтому вы поддерживаете инфраструктуру вывода только тогда, когда ваша конечная точка обрабатывает запросы.
    • Измените доступность – Если ваши пользователи могут терпеть некоторую задержку в случае отказа, не размещайте дополнительные ресурсы. Если происходит сбой или отказ экземпляра, SageMaker автоматически пытается распределить ваши экземпляры по доступным зонам.
    • Измените время ответа – Когда вам не нужен мгновенный вывод, используйте пакетную трансформацию SageMaker. В отличие от постоянной конечной точки, кластеры деактивируются по завершении заданий пакетной трансформации, поэтому вы не постоянно поддерживаете инфраструктуру вывода.

Мониторинг и оптимизация использования ресурсов

Реализуйте процесс улучшения, чтобы отслеживать влияние ваших оптимизаций со временем. Цель вашего улучшения – использовать все ресурсы, которые вы предоставляете, и выполнить ту же работу с минимальными возможными ресурсами. Чтобы операционализировать этот процесс, собирайте метрики об использовании ваших облачных ресурсов. Эти метрики, в сочетании с бизнес-метриками, могут использоваться в качестве прокси-метрик для ваших выбросов углерода.

Чтобы постоянно мониторить вашу среду, вы можете использовать Amazon CloudWatch для мониторинга системных метрик, таких как использование процессора, GPU или памяти. Если вы используете графические процессоры NVIDIA, рассмотрите использование интерфейса управления системой NVIDIA (nvidia-smi) для мониторинга использования GPU и состояния производительности. Для ускорителя Trainium и AWS Inferentia вы можете использовать монитор AWS Neuron для мониторинга системных метрик. Рассмотрите также SageMaker Profiler, который предоставляет подробный обзор ресурсов AWS, предоставленных при обучении моделей глубокого обучения на SageMaker. Вот некоторые ключевые метрики, которые стоит отслеживать:

  • CPUUtilization, GPUUtilization, GPUMemoryUtilization, MemoryUtilization и DiskUtilization в CloudWatch
  • nvidia_smi.gpu_utilization, nvidia_smi.gpu_memory_utilization и nvidia_smi.gpu_performance_state в журналах nvidia-smi.
  • vcpu_usage, memory_info и neuroncore_utilization в мониторе Neuron.

Заключение

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

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