로그인

회원가입 | ID/PW 찾기

NDC

[NDC 19] 프로게이머 이긴 AI는 어떻게 만들었나, 블소 ‘비무 AI’ 개발기

엔씨소프트 문상빈 강연자가 말하는 '블레이드 & 소울' 비무 AI의 개발 과정

에 유통된 기사입니다.
정혁진(홀리스79) 2019-04-24 19:59:27

작년 9월 열린 블레이드 & 소울 2018 월드 챔피언십에서는 프로게이머와 인공지능(AI)이 대결을 벌이는 색다른 모습이 연출됐다. ‘블소 비무 AI’라 불리는 이 프로그램은 유럽과 중국, 한국 대표 선수와 32선승제 경기를 벌였고, 한국 선수를 상대로 2 0 스코어로 승리하는 성과를 거뒀다.

 

NDC 첫날 진행된 강연에서 엔씨소프트(이하 엔씨) Game AI Lab의 문상빈 강연자는 비무 AI’를 어떻게 프로게이머 수준으로 만들었는지, 강화학습을 복잡한 상용 게임에 적용할 때 겪는 문제의 해결 과정을 설명했다. / 디스이즈게임 정혁진 기자


관련 기사: AI가 e스포츠에서 처음으로 프로 게이머를 꺾었다

 

엔씨소프트 Game AI Lab의 문상빈 강연자.

 

# '프로 수준의 AI' 월드 챔피언십 데뷔를 위한 '비무 AI'의 도전 과제

 

엔씨가 개발한 '비무 AI'는 머신러닝, 즉 강화학습 기반으로 만들어졌다. 회사는 '강화학습으로 프로 수준의 AI를 만들자'는 목표를 세웠으며, 본격 시험 무대를 월드 챔피언십으로 정했다.

 

이를 위해, AI가 탑재될 클래스는 '역사'로 설정했다. 월드 챔피언십에 꾸준히 등장하기도 했고 근거리 클래스여서 분석, 연구에 용이하기 때문이다. 스킬트리와 캐릭터의 장비/스탯은 모두 동일하게 설정했다. 문상빈 강연자는 향후 다양한 직업 확장에 대해 진행 중이라고 밝혔다.

 

 

문상빈 강연자는 인공지능 에이전트가 동작하는 원리부터 설명했다.

 

<블레이드 & 소울> 비무에서는 행동에 따라 환경(게임)이 바뀌고, 새로운 관측값에 따라 AI가 다음 행동을 한다. 관측값으로는 체력/내력, 거리, 스킬 쿨타임 등 여러 가지가 있으며, 에이전트는 이를 통해 스킬/이동/타깃팅을 선택하는 과정을 거친다. 에이전트는 매 0.1초마다 환경으로부터 관측값을 받아 행동을 결정한다.

 

 

문상빈 강연자는 강화학습을 위해 총 네 가지의 도전과제를 해결해야 했다고 밝혔다. 각 문제에 따른 해법에 대해서는 아래 추가 설명을 거쳤다.

 

먼저 '높은 복잡도'. <블레이드 & 소울>은 스킬 시스템이 무공, 클래스마다 다양하기에 복잡도가 높을 수밖에 없다고 말했다.

 

게임에서 평균 한 시점에 선택한 스킬을 10개로 설정하고 5개의 이동 선택지를 부여, 바라볼 수 있는 상대 타깃팅을 2개로 한정한 뒤 평균 게임 시간인 900초를 설정하면 10 1800승이라는 행동공간 결과값이 나온다. 이는 10 170승의 행동공간을 가진 바둑보다 높은 수준. 이에 엔씨는 높은 복잡도에 따른 가지수를 줄이고자 행동공간을 축소하는 방법을 택했다.

 

 

두 번째는 '실시간성'. <블레이드 & 소울> 0.1초 단위로 행동을 취해야 하기에 알파고처럼 번갈아가며 몇 수 앞을 내다보는 과정을 도입하는 것은 적절하지 않다. 엔씨는 인공신경망을 활용해 빠른 계산과 행동을 할 수 있도록 조치했다.

 

다음은 '일반화'. 프로게이머의 스타일이 다양하고 누구를 만날지 알 수 없기 때문에, 엔씨는 미지의 상대를 대응하기 위한 유연하면서 일반적인 상대에 강한 에이전트가 필요했다. 그래서 다양한 경험을 하기 위해 여러 학습 상대를 만들었다.

 


 

마지막은 '전투 스타일 부여'. 규칙에 따른 에이전트 구분을 위해 공격형/밸런스형/수비형 등 세 개의 서로 다른 전투 스타일의 에이전트를 만들었다.

 

일정 규칙을 심어 규칙만 따르도록 할 수도 있겠지만, 그럴 경우 에이전트 성능이 제한될 수 있다고 말했다. 그래서, 강한 성능을 유지하면서 스타일을 부여할 수 있도록 보상을 변형 적용하는 방식을 선택했다.

 


 

# 강화학습의 최종 목표는 성공/실패에 대한 보상 합을 최대화, 성능을 고도화시키는 것

위 네 개의 도전과제 해결 방법에 앞서, 문상빈 강연자는 강화학습의 개념에 대해 설명했다.

 

그는 아기가 '걸음마를 배우는 과정'을 비유하며, 성공할 때마다 보상이 더해지고 실패할 때마다 보상의 값을 차감하는 방식을 택했다. 물론 고도화를 위해 보상의 합을 최대화하는 것이 강화학습의 최종 목표. 엔씨는 좋은 행동은 강화하고 반대의 행동은 약화하며 에이전트 정책을 조금씩 수정했다.

 

 

강화학습에서 중요한 것은 '보상'으로, 앞서 설명한 환경에 따른 관측값을 받을 때 보상을 얻게 된다. 먼저 '승패'가 있는데, 이는 결과가 끝날 때까지 알 수 없으므로 드물게 얻는 관측값이다. 그래서 엔씨는 승패와 더불어 체력의 득실도 관측값으로 설정했다. 상대 체력이 줄면 에이전트가 행동을 잘 하는 것이고, 내 체력이 줄어든다면 잘 하지 못하는 것.

 

여기에 체력 비중, 시간 패널티, 거리 패널티를 세 개의 전투 스타일마다 비중을 달리해 각각의 스타일에 맞는 추가 보상을 얻을 수 있도록 설정했다. 적절한 보상값을 위해 엔씨는 초반부터 최대한 보수적으로 수치를 적용했다.

 


 

에이전트의 학습 시스템은 무작위로 초기화된 인공지능 신경망으로 환경과 상호작용하며 전투를 수행, 경험을 축적하는 방식으로 진행된다. 문상빈 강연자는 100개의 시뮬레이션을 동시에 진행했으며 여기서 쌓은 로그로 2017년 도입한 알고리즘 '에이서(ACER)'로 신경망을 주기적으로 업데이트했다. 서버 환경은 1080 그래픽 카드가 4대 달린 3대의 서버로 운용됐으며 추가 시뮬레이션을 위한 PC도 다수 활용됐다.

 

이 과정에서 새로운 에이전트가 계속 만들어졌으며, 이는 주기적으로 저장, 업데이트돼 에이전트가 상대할 상대 풀 목록으로도 추가됐다. , '셀프 트레이닝'으로, 상대 풀이 과거 데이터지만 여러 데이터를 포함한 만큼 대전을 통해 상황에 따라 다른 전략을 구사하는 에이전트가 만들어지고, 전투의 퀄리티가 계속 증가했다고 문상빈 강연자는 밝혔다. 이러한 형태의 트레이닝은 최근 여러 강화학습에서 널리 쓰이기도 한다고 말했다.

 


 

다음으로는 높은 복잡도를 해결하기 위한 행동공간의 축소 해결법을 설명했다. 첫 번째는 '이동을 결정해야 하는 경우의 수를 줄이는 것'으로, 경우의 수가 많으면 불필요한 이동이 많게 되는 점을 줄이고자 1초 동안 이동 결정을 유지해 거리가 늘어나는 효과를 얻었다.

 

두 번째는 '스킬'로 스킬을 비효율적으로 사용하면 효율적인 공격을 하기 어려워지기 때문에, 이를 위해 상대와 일정 이상 거리가 벌어질 때 대부분의 논타깃 스킬을 비활성화 시켰고 이를 통해 초기 단계 학습 속도를 향상시킬 수 있었다고 밝혔다. 에이전트는 학습할 수록 자원을 낭비하지 않는 방법을 배우게 된다.

 

마지막으로, 스킬을 낭비하지 않기 위해 상대방이 사정거리 안에 있는지 구분해야 했다. 그래서 주요 스킬마다 사정거리 임계값을 조절, 상대 거리를 파악하며 스킬을 사용하게 했다.

 


 

 

# 다양한 사전 실험, 그리고 의미 있는 결과값을 얻은 월드 챔피언십 데뷔전

 

그렇다면, 이에 대한 효과는 어땠을까? 문상빈 강연자는 다양한 실험을 통해 결과를 설명했다.

 

먼저 '대전 상대의 설정'. 그는 에이전트의 좋은 실험 상대로 <블레이드 & 소울> '무한의 탑' AI를 꼽았다. 비무를 목적으로 개발된 콘텐츠는 아니지만, 유저와 동일한 스킬을 사용하기에 AI를 비무와 동일한 표준 세팅으로 맞추면 좋은 스파링 상대가 될 수 있기 때문.

 

그는 이 AI를 활용해 30분도 안걸려 에이전트의 승률을 90%까지 도달시켰으며 10시간 가량 학습 후 승률 100%을 달성했다고 밝혔다. 하지만, 이는 대전 상대가 단 한 명이었기에 유저가 에이전트를 상대하는 체감이 쉽다는 평가를 받았다.

 

이를 극복하기 위해, 위에서 언급한 '셀프 트레이닝'을 적용했고 엔씨는 여러 유저를 상대로 강하게 느꺄지는 에이전트를 만들 수 있었다. 2일 학습 후 승률이 96%까지 도달했으며, 상위 10%의 숙련된 유저와 대결에서도 5 0으로 이기는 결과값을 얻었다.

 

 


 


 

엔씨는 에이전트를 월드 챔피언십에 적용하기에 앞서 이전 대회에서 우승 경력이 있는 손윤태, 김신겸 선수를 초청해 사전 테스트를 진행했다. 공정한 평가를 위해 에이전트 평균 반응 속도를 프로게이머 수준으로 맞췄다.

 

이들을 상대로 에이전트는 공격형이 90%(2경기 합 9 1), 밸런스형 44%(2경기 합 4 5), 수비형이 63%(2경기 합 5 3)의 승률을 얻었다. 이어, 아래 영상과 같이 에이전트는 '비무 AI'라는 이름을 달고 프로게이머와 경기를 벌였고 의미 있는 성과를 거뒀다.

 


 

끝으로, 질의응답 시간에는 게임 내 콘텐츠로 적용될 때 AI의 난이도에 대해 언급되기도 했다. 문상빈 강연자는 "프로 수준의 에이전트는 적용되기 어렵다. 아직 연구해야 하는 부분이지만, 일단 성능을 높이면 낮추는 것은 상대적으로 어렵지 않다. 그렇다고 너무 쉬운 에이전트가 적용돼서는 안되기에 이는 계속 연구 중이다"라고 말했다.

 

라이브 서비스 중 변화하는 스킬 밸런스의 적용 여부에 대해서는 "적용 방법에 대해 다양하게 연구 중"이라고 밝혔다. 

 

 

최신목록 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20