출처: https://dev.classmethod.jp/etc/reinvent-2019-report-gam301/
스피커
- Griffin Parry - Head, EMEA BD, AWS Game Tech, Amazon Web Services
- David Mason - SVP Technology, Rovio Entertainment
- Asko Relas - Senior Data Engineer, Rovio Entertainment
세션 개요
Angry Birds의 10번째 생일에, Rovio Entertainment 세션에 참가하여 AWS 클라우드 서비스의 도움으로 세계에서 가장 유명한 게임 프랜차이즈가 어떻게 태어났고, 기계 학습을 이용하여 수백 만명의 게이머를 즐겁게 해왔는지를 배운다.
이 세션에서는 David Mason(기술 담당 수석 부사장)과 Asko Relas(고급 데이터 엔지니어)가 Rovio가 전세계 수백만 명의 플레이어를 지원하고 초당 수천의 요청을 처리하는 방법을 나타낸다. 하루 40억 건의 분석 이벤트를 캡처하여 Rovio는 기계 학습을 이용하여 플레이어에게 적합한 수준의 재미를 예측하고 제공하는 방법을 찾는다.
시작하기
우선 AWS의 Griffin 씨 소개
- AWS의 Griffin이다
- 처음이지만 Rovio에 대한 컨텍스트를 소개한다
- Rovio는 Angry Birds로 유명한 회사이지만 기계 학습을 사용하고 있는 것으로도 유명하다
- 게임 산업은 매우 기술적으로 진행되고 있으며, 오늘은 David와 Asko 두 사람을 소개 할 수 있어서 매우 즐겁다
의제
David Mason - SVP Technology, Rovio Entertainment
- Happy birdday !: 해피 버드 데이
- Beacon : Our cloud services : 표지 : 우리의 클라우드 서비스
- Our machine learning (ML) story : 우리의 기계 학습 이야기
- Use case : Reinforcement learnig (RL) for level difficulty prediction : 레벨 난이도 예측을 위한 강화 학습
- Takeaways : 테이크 아웃
Happy Birdday !: 해피 버드 데이
- 올해 앵그리 버드 10 주년을 맞이 한다
- RAGE RIDER는 마이크를 향해 분노의 목소리를 불어 넣으면, 속도가 변경 되는 스쿠터 비디오의 소개가 있었다
- Rovio는 GAMES FIRST ENTERTAINMENT COMPANY 라는 것을 표방하고 있다
- 현재는 캐주얼 플레이어 용에서 코어 플레이어 용까지 다양한 장르의 게임을 개발하고 있다
- Angry Birds Dream Blast 데모를 참조한다
Beacon : Our cloud services : 표지 : 우리의 클라우드 서비스
- 어떻게 게임 엔진을 만들고 있는가?
- 몇 년 전에 시작한 클라우드의 이야기를 한다
- 비콘 이라는 콘솔이다
- 어떻게 플레이어의 체험을 극대화 할 수 있을지를 생각했다
- AWS는 Rovio 좋아하는 클라우드 공급자이다
- 아주 만들기 쉽고, 편리한 기능이 많이 갖추어져 있다

- 비콘 작업 화면
- 분석 결과뿐만 아니라 다양한 기능을 갖추고 있다
- 관리 서비스이지만 AB 테스트 및 사양 관련 블로그 게시물 등이 일목요연 하다
- 기계 학습 모델도이 비콘에서 볼 수 있다
- LiveOps 달력도 언제 플레이어를 위한 이벤트가 있는지 시각적으로 표시 되도록 되어 있다
- 통계 데이터를 볼 수도 있다

- Game server infrastructure : Reusable templates
- 비용도 낮출 수 있다
- 컨테이너를 사용하여 오토 스케일 방법 등은 대체로 어디나 비슷하다

- Game server microservices : Chirp

Our machine learning (ML) story : 우리의 기계 학습 이야기
게임에서 기계 학습 · AI

- 게임 아이디어 > 게임 개발 > 배달(유통) > 마케팅 > 운영 > 수익 창출
Rovio의 지향점 : 당신을 위해 게임을 만든다

- Rovio는 2011년부터 앵그리 버드의 데이터를 수집하기 시작했지만 시작 당시 널리 누르는 것에 필사적 이었다
- 지금은 전체의 초점을 맞추면서 서서히 개별 최적화 되어 왔다
- 해마다 이 정도는 더해 가고 있다
RL for level difficulty prediction 레벨 난이도 예상을 위한 강화 학습
- 지난해 Rovio와 동료가 라이브 운영 등에 대해서 이야기를 했다
- 이번에는 우리가 어떻게 강화 학습을 해 왔는지를 이야기한다

프로젝트의 개요
- 퍼즐 게임의 수준을 수정 디자인은 균형을 위한 행위이다
난이도가 너무 높으면 보상을 높게 획득 할 수 있지만, 플레이어는 이탈
너무 쉬운 레벨은 게임이 지루해져서 이탈 - 새로운 무대를 만들 때 이 수준의 균형은 설계에 의한 반복 검사가 필요하다
- 출시되지 않은 레벨의 어려움을 예측할 수 있다
가장 진보적인 플레이어를 위한 일관된 경험
수동 테스트에 소요 되는 시간을 단축
최종 사용자 관점
이것들에 대해서도 Becon에서 볼 수 있다

솔루션 아키텍처
slack과 연계하여 BEACON 대시 보드에 데이터가 전달 될 수 있도록 되어 있다

탐험을 서로 다른 봇을 사용하여 수행
- 4 종류의 탐색 방법은 각각 장단점이 있다
- 표의 MCTS는 몬테카를로 법을 의미한다
1. 휴리스틱
2. 탐색 트리
3. 모방 학습
4. 강화 학습
강화 학습 : Reinformcent learning (RL)

Agent > Action > Environment > Reward를 반복

- 화면의 오른쪽을 보면 바로 알 수 있지만, 히트 맵은 다음 플레이어가 닿아 있는 곳을 색으로 표시하고 있다
- 이렇게 플레이어가 터치하는 곳을 기계 학습에서 예측한다
Rovio의 강화 학습
- Rovio는 더 깊은 Q 학습을 하고 있다 :
원시 그래픽 대신 기능적으로 설계된 게임 상태를 만든다
깊은 회선 넷이 아니라 연기된 신경망을 제공
더블 Q 학습에 의한 공동 투쟁
데이터 수집

- Level 1에서 시작하여 데이터를 계속 얻는다
- 투과율 등을 설정하면서 데이터를 얻는다
데이터 수집 2
- 데이터 세트의 수집에 시간이 걸린다
가장 정확한 통계를 얻으려면 로봇이 먼저 레벨을 설정 한 후 1,000 회 재생해야 한다
1 회 게임 라운드에서 초고속 화된 물리 연산도 5-10 초 걸린다
레벨을 순서대로 재생하여 데이터 세트를 수집하려면 1 년 이상 걸린다 - 해결책
게임 바이너리와 봇 Python 소스 코드를 Docker 컨테이너에 번들한다
AWS Batch를 사용하여 레벨마다 고유의 컨테이너를 실행 → 데이터의 정리는 임의의 수의 레벨에서 2 일 걸린다.
하나의 컨테이너에서 게임의 다중 병렬 인스턴스에서 학습 → 데이터 수집에는 임의의 레벨 수로 4 시간 소요
병행 처리 된 기계 학습

- 단일 c5.2xlarge을 사용하여 8배의 병렬성
- 에이전트의 수를 늘리면 학습자가 병목이 된다
- 또한 확장 가능 :
GPU를 사용 (예 : p3.8xlarge tiwh 32 vCPU
여러 컴퓨터를 사용한 확장
회귀 모델링
- 봇에서 수집된 통계
투과율
왼쪽으로 이동 한 수
레벨 목표를 클리어 한 수
새로운 움직임 - 기계 학습 도구 키트로 Scikit-learn
- XGBoost 의한 최고의 예측 정확도
트리 기반 알고리즘은 설명 할 수 없다 → 불가능 / 합격 이라는 레벨 간의 추가 분류가 필요
예측의 정확도

- 노란색과 분홍색 선이 있다
- 핑크가 예측이고, 노란색이 결과
- 거의 그것에 가까운 형태를 실현할 수 있었다
여기에서 난이도 및 교반 정도와 매출 관련성을 예측한다
난이도 및 교반 정도의 관련성

- 교반 정도 속도 표시 Level 300, Level 800는 다른 것을 알 수 있다
- Revenue 속도로 보면 레벨이 높은 쪽이 돈을 사용하고 있는 것을 알 수 있다 ※ 초점이 맞는 사진을 찍을 수 없기 때문에 생략 하겠지만, 세로 축에 어려움, 가로축에 투과율을 취한 위 그림과 같이 반비례 그림
사례 개요
* AWS Batch 예를 들어 봇 1,000 레벨을 동시에 처리하는 병렬 워크로드에 최적이다
* 병렬화는 충분한 속도로 강화 학습을 비즈니스에 활용하는 국면으로 구현하기 위한 핵심
* 다음 단계 : 절차적 콘텐츠 제작?
Takeaways : 테이크 아웃
불공정한 우위를 만들지 않는다
- 중요한 것은 플레이어
- 분석은 기본
- 비전 실험, 학습, 제품화를 실현한다
- 기계 학습은 게임의 세계를 바꾼다
고객 체험
또 다른 플레이어를 벤치마킹 하여 더 게임을 잘 해 나갈 필요가 있다