2020년 3월 23일(월) 구글 AI 리서치 블로그
최근에 Go 및 Dota 2와 같은 게임을 해결하는 데 성공한 것으로 입증된 바와 같이 강화학습(RL, Reinforcement Learning)은 지난 몇 년 동안 인상적인 발전을 보았습니다. 모델 또는 에이전트는 게임과 같은 환경을 탐색하면서 특정 목표를 최적화함으로써 학습합니다. 그러나 현재의 RL 기술은 간단한 게임조차도 성공적으로 학습하기 위해 점점 더 많은 양의 훈련이 필요하므로 연구 및 제품 아이디어를 계산하는 데 많은 비용과 시간이 소요됩니다.
“SEED RL : 가속화 집중화된 추론을 통한 확장 가능하고 효율적인 Deep-RL(SEED RL:Scalable and Efficient Deep-RL with Accelerated Central Inference)” 논문에서, 우리는 초당 수천 대의 컴퓨터로 확장할 수 있는 RL 에이전트를 제시합니다. 이 에이전트는 초당 수백만 프레임으로 훈련할 수 있으며 계산 효율성을 크게 향상시킵니다. 이는 모델 추론을 중앙 집중화하고 빠른 통신 계층을 도입하여 액셀러레이터(GPU 또는 TPU)를 활용하는 새로운 아키텍처를 통해 달성됩니다. 구글 리서치 풋볼(Google Research Football), 아케이드 학습 환경(Arcade Learning Environment) 및 딥마인드 랩(DeepMind Lab)과 같은 인기 있는 RL 벤치마크에서 SEED RL의 성능을 시연하고 더 큰 모델을 사용하면 데이터 효율성을 높일 수 있음을 보여줍니다. 이 코드는 GPU를 사용하여 Google Cloud에서 실행하기 위한 예제와 함께 Github에서 오픈 소스로 제공되었습니다.
현재 분산 아키텍처
IMPALA와 같은 이전 세대의 분산 강화학습 에이전트는 (비)지도 학습이 수년 동안 이익을 얻었던 속도와 효율성을 활용하여 수치 계산에 특화된 액셀러레이터를 사용했습니다. RL 에이전트의 아키텍처는 일반적으로 액터(Actor)와 러너(Learner)로 구분됩니다. 액터는 일반적으로 CPU에서 실행되며 환경에서 단계를 수행하고 모델에서 추론을 실행하여 다음 액션(action)을 예측합니다. 액터는 또한 종종 추론 모델의 파라미터를 업데이트하고, 충분한 양의 관측치(observation)를 수집한 후 관측치(observation) 및 액션(action)의 경로를 러너(Learner)에게 전송하여 모델을 최적화합니다. 이 아키텍처에서 러너는 수백 대의 컴퓨터에서 분산 추론의 입력을 사용하여 GPU에서 모델을 학습시킵니다.
[그림 1] 상세 설명 - 이전 세대 RL 에이전트 IMPALA의 아키텍처 예. 액터(Actor)에 대한 추론은 일반적으로 비효율적인 CPU를 사용하여 수행됩니다. 업데이트된 모델 파라미터는 종종 러너(Learner)에서 액터에게 전송되어 대역폭 요구 사항이 증가합니다.
IMPALA와 같은 RL 에이전트의 아키텍처에는 여러 가지 단점이 있습니다.
1. 신경망 추론에 CPU를 사용하는 것은 가속기를 사용하는 것보다 훨씬 덜 효율적이며 느리며 모델이 커지고 계산 비용이 많이 들수록 문제가 됩니다.
2. 액터와 러너 간에 파라미터 및 중간 모델 상태를 전송하는 데 필요한 대역폭은 병목 현상이 될 수 있습니다.
3. 한 시스템에서 완전히 다른 두 가지 작업 (즉, 환경 렌더링 및 추론)을 처리하는 것은 시스템 리소스를 최적으로 활용하지 못할 수 있습니다.
SEED RL 아키텍처
SEED RL 아키텍처는 이러한 단점을 해결하도록 설계되었습니다. 이 접근 방식을 통해 신경망 네트워크 추론은 러너가 특수 하드웨어 (GPU 또는 TPU)를 중심으로 수행하므로 추론을 가속화하고 모델 파라미터 및 상태를 로컬로 유지함으로써 데이터 전송 병목 현상을 피할 수 있습니다. 모든 환경 단계에서 관즉치(Observation)가 러너에게 전송되는 동안 비동기 스트리밍 RPC가 있는 gRPC 프레임워크를 기반으로 하는 매우 효율적인 네트워크 라이브러리로 인해 대기 시간이 줄어듭니다. 따라서 단일 컴퓨터에서 초당 최대 백만 건의 쿼리를 수행할 수 있습니다. 학습자는 수천 개의 코어(예 : Cloud TPU의 경우 최대 2048)로 확장할 수 있으며 학습자의 수를 완전히 활용하기 위해 액터 수를 수천 대의 컴퓨터로 확장하여 초당 수백만 프레임으로 학습할 수 있습니다. SEED RL은 TensorFlow 2 API를 기반으로 하며, 실험에서 TPU에 의해 가속화되었습니다.
이 아키텍처가 성공하기 위해서는 두 가지 최신 알고리즘이 SEED RL에 통합되어 있습니다. 첫 번째는 정책 기반 경사 하강(policy gradient-based) 방법인 V-trace이며 IMPALA와 함께 처음 도입되었습니다. 일반적으로 정책 기반 경사 하강 방법은 액션을 샘플링할 수 있는 액션 분포를 예측합니다. 그러나 액터와 러너는 SEED RL에서 비동기적으로 실행되기 때문에 액터의 정책은 러너의 정책보다 약간 뒤처져 있습니다. 일반적인 정책 기반 경사 하강 방법은 정책에 따라 다릅니다. 이는 액터와 러너에 대해 동일한 정책을 가지고 있으며 정책 외 설정에서 수렴과 수치 문제로 어려움을 겪고 있음을 의미합니다. V-trace는 정책 외 방법으로 비동기 SEED RL 아키텍처를 사용하면 잘 작동합니다.
두 번째 알고리즘은 반복 분산 재생을 사용하여 해당 동작의 예측된 미래 값을 기반으로 동작을 선택하는 Q-Learning 메서드로 R2D2를 이용합니다. 이 접근 방식을 통해 Q-Learning 알고리즘을 대규모로 실행할 수 있으며 에피소드의 모든 과거 프레임 정보를 기반으로 미래의 값을 예측할 수 있는 반복적인 신경망을 계속 사용할 수 있습니다.
실험
SEED RL은 일반적으로 사용되는 아케이드 학습 환경, DeepMind Lab 환경 및 최근에 출시된 Google Research Football 환경에서 벤치마킹됩니다.
[그림 3] 상세 설명 - IMPALA와 DeepMind Lab에서 다양한 SEED RL 구성을 비교하는 초당 프레임 수 SEED RL은 4,160개의 CPU를 사용하여 초당 2.4M 프레임을 달성합니다. 동일한 속도를 가정하면 IMPALA에는 14,000개의 CPU가 필요합니다.
DeepMind Lab에서는 64개의 Cloud TPU 코어로 초당 240만 프레임을 달성합니다. 이는 이전의 최신 분산 에이전트 인 IMPALA보다 80배 향상된 성능을 나타냅니다. 이로 인해 wall-clock 시간 및 계산 효율성이 크게 향상됩니다. IMPALA는 같은 속도로 SEED RL보다 3-4 배 많은 CPU를 필요로 합니다.
[그림 4] 상세 설명 - IMPALA 및 SEED RL을 사용하여 DeepMind Lab 게임 “explore_goal_locations_small” 에서 시간 경과에 따른 에피소드 반환 (즉, 보상의 합계). SEED RL을 사용하면 훈련 시간이 크게 줄어듭니다.
최신 액셀러레이터에 최적화된 아키텍처를 사용하면 데이터 효율성을 높이기 위해 모델 크기를 늘리는 것이 당연합니다. 모델 크기와 입력 해상도를 높이면 이전에 해결되지 않은 Google Research Football 작업인 '하드'를 해결할 수 있습니다.
[그림 5] 상세 설명 - Google Research Football '하드'작업의 다양한 아키텍처 점수 입력 해상도와 더 큰 모델을 사용하면 점수가 향상되고 더 많은 교육을 통해 모델이 내장 AI보다 훨씬 뛰어난 성능을 발휘할 수 있습니다.
아케이드 학습 환경에 대한 결과를 포함하여 추가 세부 정보가 논문에 제공됩니다. 우리는 SEED RL과 그 결과가 강화학습을 이용한다는 점에서 강화학습이 딥러닝 분야의 나머지 부분을 다시 따라잡았다는 것을 보여줍니다.
감사의 말
이 프로젝트는 Raphaël Marinier, Piotr Stanczyk, Ke Wang, Marcin Andrychowicz 및 Marcin Michalski와 공동으로 수행되었습니다. 시각화에 대해 Tom Small에게 감사드립니다.
원본 제목: SEED RL을 통한 대규모 대규모 스케일의 강화 학습(Massively Scaling Reinforcement Learning with SEED RL)
게시자 : Amsterdam, Google Research 연구 엔지니어 Lasse Espeholt
원본 링크: https://ai.googleblog.com/2020/03/massively-scaling-reinforcement.html
gRPC 프레임워크 오픈소스: https://grpc.io
TensorFlow gRPC 오픈소스: https://github.com/google-research/seed_rl/tree/master/grpc
SEED RL: Scalable and Efficient Deep-RL with Accelerated Central Inference. Implements IMPALA and R2D2 algorithms in TF2 with SEED's architecture 오픈소스: https://github.com/google-research/seed_rl
Deepmind의 A customisable 3D platform for agent-based AI research 오픈소스: https://github.com/deepmind/lab
Recurrent Experience Replay in Distributed Reinforcement Learning 논문: https://openreview.net/forum?id=r1lyTjAqYX&utm_campaign=RL%20Weekly&utm_medium=email&utm_source=Revue%20newsletter
Effective TensorFlow 2 문서: https://www.tensorflow.org/guide/effective_tf2
IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures 논문: https://arxiv.org/abs/1802.01561
The Arcade Learning Environment: An Evaluation Platform for General Agents 논문: https://arxiv.org/abs/1207.4708
SEED RL: Scalable and Efficient Deep-RL with 논문: https://arxiv.org/abs/1910.06591
Dota 2 with Large Scale Deep Reinforcement Learning 논문: https://arxiv.org/abs/1912.06680
Mastering the game of Go with deep neural networks and tree search 논문: https://www.nature.com/articles/nature16961
이 블로그는 2020년 3월 23일(월), Google AI Research Blog 기사를 영한 번역한 것입니다. 또한 이 번역 글은 정보 공유 목적으로만 작성했으므로 어떠한 상업용으로 사용할 수 없으며, 원본 저작물 모두 구글에게 저작권이 있음을 알려 드립니다. (First Draft Version)