Видео введение:Крупномасштабное распределенное обучение с подкреплением с Менгером
За последнее десятилетие обучение с подкреплением (RL) стало одной из самых многообещающих областей исследований в области машинного обучения и набирает обороты в решении сложных реальных задач, таких как размещение чипов и управление ресурсами, а также в решении сложных игр. например, Go, Dota 2 и Hide and Seek). Проще говоря, инфраструктура обучения с подкреплением представляет собой цикл сбора данных и обучения, в котором участники исследуют окружающую среду и собирают образцы, которые затем отправляются учащимся для обучения и обновления моделей. Большинство современных методов RL требуют многократных итераций над пакетами из миллионов образцов в среде, чтобы изучить целевую задачу (например, Dota 2 учится на пакетах из 2 миллионов кадров каждые 2 секунды). Следовательно, инфраструктура RL должна не только эффективно масштабироваться (например, увеличивать количество участников) и собирать большое количество образцов, но также должна иметь возможность быстро перебирать эти большие количества образцов во время обучения.
Сегодня мы представляем Menger 1, крупномасштабную распределенную инфраструктуру RL с локализованным выводом, которая масштабируется до тысяч участников в нескольких кластерах обработки (таких как ячейки Borg), что сокращает общее время обучения задачам размещения чипов. В этом посте мы описываем, как мы внедрили Menger с помощью ускорителя Google TPU для быстрых итераций обучения, и продемонстрируем его производительность и масштабируемость в сложных задачах размещения микросхем. Menger сокращает время обучения до 8,6 раз по сравнению с исходным уровнем.
Дизайн системы Менгера
Существуют различные распределенные системы RL, такие как Acme и SEED RL, каждая из которых ориентирована на оптимизацию одной конкретной точки проектирования в пространстве распределенных систем обучения с подкреплением. Например, в то время как Acme использует локальный вывод для каждого участника и часто извлекает модели от учащихся, SEED RL выигрывает от централизованного дизайна вывода, выделяя часть ядер TPU для выполнения пакетных вызовов. Компромисс между этими точками проектирования заключается в (1) оплате стоимости связи при отправке/получении наблюдений и действий на/с централизованного сервера логического вывода или оплате коммуникационной стоимости получения модели от учащегося и (2) стоимости логического вывода для участники (например, CPU) против ускорителей (например, TPU/GPU). Из-за требований нашего целевого приложения (например, размер наблюдения, действие и размер модели) Менгер использует локальный вывод аналогично Acme, но доводит масштабируемость акторов почти до бесконечности. Ключевые проблемы в достижении масштабируемости и быстрого обучения на ускорителях включают:
1. Предоставление обучающемуся большого количества запросов на чтение от участников для извлечения модели может легко ограничить обучаемого и быстро стать основным узким местом по мере увеличения числа участников (например, значительно увеличивает время сходимости). 2. Производительность TPU часто ограничивается эффективностью входного конвейера, который передает обучающие данные вычислительным ядрам TPU. По мере увеличения количества вычислительных ядер TPU (например, модуля TPU) производительность входного конвейера становится более важной для общего времени выполнения обучения.
Эффективный поиск модели
Чтобы решить первую проблему, мы вводим прозрачный и распределенный компонент кэширования между учащимися и участниками, оптимизированный в TensorFlow и работающий на Reverb (аналогичный подход, используемый в Dota). Основная обязанность компонента кэширования — сбалансировать большой объем запросов от участников с работой обучаемого. Добавление этих компонентов кэша не только значительно снижает нагрузку на учащегося по обслуживанию запросов на чтение, но также дополнительно распределяет акторов по нескольким ячейкам Borg с небольшими затратами на связь. В нашем исследовании мы показываем, что для модели 16 МБ с 512 участниками введенный компонент кэша снижает среднюю задержку чтения примерно в 4,0 раза, что приводит к более быстрым итерациям обучения, особенно для алгоритмов на основе политик, таких как PPO.
Высокопроизводительный входной конвейер
Чтобы обеспечить конвейер входных данных с высокой пропускной способностью, Менгер использует Reverb, недавно открытую систему хранения данных, предназначенную для приложений машинного обучения, предоставляющую эффективную и гибкую платформу для различных действий в зависимости от политики и без нее. Replay - Policy Algorithm. Однако в распределенной настройке RL с тысячами актеров использование одной службы буфера воспроизведения Reverb в настоящее время плохо масштабируется и становится неэффективным с точки зрения пропускной способности записи от актеров.
Чтобы лучше понять эффективность буфера воспроизведения в распределенной среде, мы оценили среднюю задержку записи для различных размеров полезной нагрузки от 16 МБ до 512 МБ и от 16 до 2048 участников. Нас поместили в ту же ячейку Борга, что и актёра в буфере воспроизведения. По мере увеличения числа участников средняя задержка записи также значительно увеличивается. Увеличение числа участников с 16 до 2048 увеличивает среднюю задержку записи примерно в 6,2 раза и примерно в 18,9 раза для размеров полезной нагрузки 16 МБ и 512 МБ соответственно. Увеличение задержки записи может отрицательно сказаться на времени сбора данных и привести к общей неэффективности времени обучения.
Чтобы смягчить это, мы используем функцию сегментирования, предоставляемую Reverb, чтобы увеличить пропускную способность между участниками, учащимися и службой буфера воспроизведения. Разделение уравновешивает нагрузку записи от большого числа участников на несколько серверов буфера воспроизведения, а не ограничивает один сервер буфера воспроизведения, а также минимизирует среднюю задержку записи на сервер буфера воспроизведения (поскольку меньше участников используют один и тот же сервер). Это позволяет Menger эффективно масштабироваться до тысяч участников в нескольких ячейках Borg.
Практический пример: расположение чипов
Мы исследуем преимущество Менгера в сложной задаче компоновки микросхем с большими списками соединений. Используя 512 ядер TPU, Менгер добился значительного увеличения времени обучения (примерно в 8,6 раза, сокращение с ~8,6 часов по сравнению с ~8,6 часов в самой быстрой конфигурации до всего лишь одного часа) по сравнению с более сильными базовыми показателями. Хотя Menger оптимизирован для TPU, ключевым фактором повышения производительности является архитектура, и мы ожидаем увидеть аналогичные улучшения при настройке для GPU.
Мы считаем, что инфраструктура Менгера и ее многообещающие результаты в сложных задачах размещения микросхем демонстрируют инновационный путь к дальнейшему сокращению цикла проектирования микросхем и могут обеспечить дальнейшие инновации не только в процессе проектирования микросхем, но и в других областях. сложные миссии реального мира.
Инструкции по обновлению: Приоритет отдается обновлению общедоступной учетной записи WeChat «Блог дождливой ночи», а блог будет обновлен позже, а затем будет распространен на различные платформы.Если вы хотите узнать больше заранее, обратите внимание на Публичный аккаунт WeChat «Блог дождливой ночи».
Источник блога:Блог Дождливой ночи