Ubisoft La Forge는 학문적인 연구와 비디오 게임을 혁신하는 작업 사이에서 격차를 해소하려는 목표로 학자와 Ubisoft 전문가가 협력하여 추진하는 개방형 연구 개발 이니셔티브입니다. 비디오 게임 제작에서 최신 기술과 기법을 시험하고 있으며, 인공 지능과 같은 최신 기술을 활용하여 게임을 더 현실적이고 재미있게 만들면서 효율적으로 게임을 개발할 수 있도록 연구하는 전담팀과 함께 학계의 최전선에서 연구 중입니다.
이러한 목적에 사용할 수 있는 기술 중 하나를 소개하자면, AI를 사용하여 다양한 문제에서 가장 효율적인 해결책을 찾는 일종의 머신 러닝인 심층 강화 학습입니다. 그 미스터리를 풀고 더 현실적인 NPC를 생성하며, 복잡한 게임 세계를 탐색하면서 인간과 더 유사한 반응을 생성하는 데 어떻게 도움이 되는지 알아보기 위해 Ubisoft La Forge의 데이터과학자이자, 비디오 게임에 대한 애정으로 데이터과학 박사까지 된 몬트리올 출신의 Joshua Romoff와 이야기를 나누었습니다. 현재 게임에서 머신 러닝의 다양한 적용 방법을 연구하는 Romoff 박사와 그의 팀은 최근 인공 지능 및 대화형 디지털 엔터테인먼트(AIIDE) 2021 콘퍼런스에서 그동안 연구해온 머신 러닝을 사용한 NPC의 경로 찾기와 내비게이션 부분의 획기적인 발전에 대해 발표했습니다.
심층 강화 학습은 무엇이며 어떻게 작동하나요?
Joshua Romoff: 먼저 "에이전트"와 "액션"이란 용어를 설명하고 넘어가야겠네요. AI에서 에이전트라는 건 기본적으로 세계와 상호작용하는 주 캐릭터로서, 저희 연구에서는 봇을 에이전트로 사용합니다. 그리고 액션은 수행되는 상호작용이지요. 저는 플레이어를 게임패드의 확장형처럼 생각하는 편입니다. 게임패드를 통한 플레이어의 모든 입력이 결과를 낳으니까요.
강화 학습 부분에 초점을 맞춰보죠. 강화 학습이란 어떤 종류의 동작을 강화한다는 개념입니다. 먹이를 줄 때마다 종을 울려 개에게 종과 보상의 관계를 학습시킨 고전적인 파블로프의 개 실험과 비슷하죠. 보상과 벌칙을 통해 특정 종류의 출력을 장려하거나 제지하는 거예요. AI 에이전트로 같은 일을 할 수 있어요. 마음에 드는 행동을 하면 포인트를 제공하거나 마음에 들지 않는 행동을 하면 포인트를 빼앗는 식으로 말이죠. 제 일은 그러한 테스트를 설계하고 보상을 주거나 빼앗을 지점을 정의하는 것이며, AI의 목표는 가능한 액션으로 최대한 높은 점수를 받는 것입니다.
심층이란 에이전트가 자신이 속한 세계를 인식하는 방식, 본질적으로 심층 신경망을 말하죠. 화면은 잠재적으로 수백만 픽셀이 동시에 표시되는 복잡한 장치입니다. 그렇다면 그런 화면과 모든 입력을 어떻게 처리할까요? 심층 신경망은 화면을 가져와 훨씬 더 작은 차원으로 처리하고 데이터를 분석하고 해당 정보를 강화 학습 부분에 입력한 다음 해당 입력 데이터를 기반으로 액션을 수행합니다. 그게 바로 엔드 투 엔드 시스템인데요, 모든 것이 포함되어 있고 데이터가 이러한 시스템 사이를 한쪽 끝에서 다른 쪽 끝으로 순환하고 다시 돌아오기 때문에 엔드 투 엔드 시스템이라고 부르죠. 각 프레임에서 작업과 환경의 결과 상태를 기반으로 포인트를 할당하고 많은 반복을 수행하여 에이전트가 원하는 작업을 수행하도록 훈련합니다.
박사님의 심층 강화 학습 연구에 특히 영감을 준 게임이 있나요?
JR: 물론이죠. 저는 항상 오픈 월드 게임을 좋아했어요. Far Cry처럼 NPC와 상호작용하고 뛰어다니는 그런 게임이요. 그런 종류의 게임에서 언제나 인상적인 점은 플레이어가 NPC의 AI와 상호 작용하는 방식인데요, 그게 저에게는 경험의 핵심 요소죠. 게임 세계와 상호 작용하고 있고, NPC는 그러한 상호 작용의 큰 부분이에요. 저는 항상 NPC와 장난을 치고 AI를 일종의 도전 과제로 삼아 어떻게 조작할 수 있는지 알아보는 것을 좋아했어요. 이를테면, 적과 전투 중인 상황에서 가까운 산에 오르기로 했다고 해보죠. 그러면 적이 산에 오를 수 없어 제 앞에서 산에 충돌하거나 다양한 현상이 벌어지는 데 대한 반응을 봅니다. 그게 언제나 제 연구의 동력이었어요. 그러한 반응을 개선하고 인간처럼 행동하도록 AI를 훈련할 방법을 상상했죠.
R&D 과학자로서의 일상은 어떤가요?
JR: 매일 실험을 해요. 직접 게임에서 특정 작업을 수행하도록 "AI 에이전트"라고 부르는 것을 훈련하죠. 일단 실험이 시작되면 관찰을 많이 해야 해요. 플롯과 그래프를 지켜보면서 이런저런 조정을 통해 결과를 개선하죠. 저의 또 다른 중요한 역할은 석사 및 박사 과정의 학생과 함께 일하는 거예요. 이런 학생들은 모두 급여를 받으면서 일하고, 저는 그들 및 그들의 교수들과 함께 프로젝트를 정의합니다. 그리고 보통 동시에 다수의 학생 참여 프로젝트를 진행하죠. 이러한 프로젝트는 학생들뿐 아니라 저희 목표를 추구하는 데에도 도움이 돼요. 그러니까, 제가 모든 것을 다 코딩할 수는 없잖아요? 작동하는 프로토타입이 나오면, 기본적으로 실제 게임 엔진의 단순화된 버전인 샌드박스 환경에 기술을 배치하고 수행한 작업의 결과를 확인할 수 있어요. 프로젝트가 성공하면, 학생들은 프로젝트의 결과를 개발하는 게임에 적용하고 게임 작업이 어떤 것인지 경험해볼 수 있죠. 그래서 저희는 항상 프로젝트의 결과를 게임 팀이 제품에 이용할 수 있는 산출물이 되도록 노력합니다.
AIIDE 강연에서는 Hyper Scape와 같은 게임에서 더 "플레이어 같은" 봇을 만들기 위해 테스트하신 방식에 대해 언급하셨는데요. 거기에 대해서도 말씀해주시겠어요?
JR: Hyper Scape에서 몇 가지 테스트를 했습니다. 라이브 서버는 아니었지만, Hyper Scape는 저희가 답을 알고자 하는 질문에 대한 흥미로운 샌드박스가 되어주었습니다. Hyper Scape에서 정말 멋진 점은 3D 환경이 탐색하기가 매우 복잡하고 수직성이 많다는 것입니다. 플레이어에게도 사용할 수 있는 도구가 많죠. 예를 들어, 공중으로 똑바로 올라갈 수 있는 점프 패드와 이중 점프가 있으며 이를 사용하여 건물 꼭대기로 이동할 수 있습니다. 이러한 요소도 결합할 수 있죠. 그래서 게임 개발자나 테스터가 자신이 만든 지도를 통해 플레이어가 모든 것을 탐색할 수 있다는 사실을 인지하는 것은 매우 흥미로운 일입니다.
전통적으로 게임에서는 게임 세계의 모든 횡단 가능한 영역에 대한 일종의 2D 지도인 내비게이션 메시라는 것을 사용하며 이 데이터를 통해 봇은 이동 경로와 도달 방법을 정의할 수 있습니다. 그러나 그 방법으로 테스트하기는 정말 어려웠습니다. 점프 패드 및 이중 점프와 같은 모든 환상적인 액션에 계단이나 경사로로 연결되지 않을 수 있는 수직 바닥을 더하면, 가능한 조합이 폭발적으로 늘어나기 때문이죠. 심층 강화 학습이 합리적이었어요. 왜냐하면, 에이전트를 훈련 루프에 넣을 수 있고. 내비게이션 메시를 사용하지 않고 A 지점에서 B 지점으로 이동하는 방법을 스스로 학습할 수 있으니까요. 따라서 주요 사용 사례는 본질적으로 에이전트에게 이러한 움직임을 가르치고 이를 사용하여 지도를 테스트하고 모든 것에 액세스할 수 있도록 하는 것이었습니다.
다른 게임으로 한 몇몇 테스트에서 흥미로운 결과가 나왔다고 알고 있는데요, 그 얘기를 좀 해주시겠어요?
JR: 실제로 For Honor에서 훈련한 봇을 예로 들 수 있겠네요. 저희는 에이전트가 더 많이 방어하기를 원했기 때문에 방어하는 에이전트에 보너스 보상을 주었습니다. 결국 어떻게 됐냐면, 에이전트가 싸움을 끝내지 않기로 하고 영원히 계속 방어하게 됐어요. 정말 재미있는 결과인데요, 이 프로세스를 통한 에이전트 훈련의 주요 과제 중 하나가 제공하는 설정과 인센티브를 제공하려는 활동이 무엇이든 이론상 최선을 다해 그 과제를 수행하는 방법을 배우는 것이기 때문입니다. 생존이나 방어에 대한 보상을 제공하면 보상을 주기 때문에 계속 그렇게 할 것입니다. 봇이 매번 모든 플레이어를 이길 필요는 없습니다. 그렇죠? 그러면 재미가 없을 테니까 방어와 같은 액션에 약간의 가변성을 추가하는 다른 유형의 행동을 장려해야 합니다.
이러한 작은 보너스 보상을 주는 또 다른 이유는 훈련 과정의 속도를 높일 수 있기 때문입니다. 여기에서는 방어에, 저기에서는 공격에 그렇게 보너스를 주기는 쉽지만, 이러한 모든 보너스가 어떻게 결합될지는 분명하지 않아요. 정말 재미있는 행동으로 이어질 수 있죠. 또 다른 예는 Hyper Scape에서 한 내비게이션 테스트에요. 저희는 에이전트가 가능한 한 빨리 두 지점 사이를 오도록 훈련하고 있었는데요, 아직 전력 질주 기능을 부여하지 않은 상태였죠. 그런데 점프와 약간의 카메라 비틀기를 하면서 이동하면 실제로 걷는 것보다 조금 빠르게 이동할 수 있다는 사실을 알아냈습니다. 그래서 기본적으로 토끼뜀 학습을 지켜봤는데요, 정말 재미있었죠. 이 두 가지 예는 AIIDE 강연에서도 얘기했습니다.
그런 결과가 프로세스에서도 여전히 중요한가요?
JR: 애플리케이션이 무엇인지에 따라 달라요. 저희 실험처럼 게임을 테스트하기 위해서라면, 이러한 결과는 매우 유용하죠. 왜냐하면 제공하는 보상을 기반으로 최적의 행동이 무엇인지 알 수 있으니까요. 학습 중인 사항을 파악하고 동작이 실제로 에이전트가 목표를 달성에 도움이 된다는 사실을 알아낼 수도 있어요. 그게 사람이 인식하지 못한 무언가를 가리킬 수 있으므로 디버깅과 코드가 예상대로 작동하는지 알 수 있죠.
최신 세대의 게임 콘솔, 그리고 클라우드나 스트리밍 서비스 같은 새로운 요소 덕분에 이전에는 게임의 AI로 할 수 없었던 새로운 가능성이 열렸나요?
JR: 네, 확실하게 열렸죠. 역사적으로 말하자면, 딥 러닝 연구는 80년대와 90년대에 시작되었으며 연구자들은 사용할 수 있는 컴퓨팅 자원에 발이 묶였죠. 구세대 콘솔에서 딥 러닝 모델을 실행하려는 경우 로컬에서 수행할 수 없었어요. 계산 문제 때문에 프레임 속도가 죽어버렸으니까요. 사람들이 집에 갖춘 기기의 연산 능력이 비약적으로 증가했고 실제 하드웨어 자체도 무척 향상되었어요. 이러한 요소와 이 분야에 쏟아지는 방대한 양의 연구를 고려하면, 저희는 지금 이러한 문제를 해결할 지점에 있다고 생각해요. 그리고 이러한 환상적인 능력으로 3D 세계의 엄청나게 복잡한 지도를 탐색할 수 있는 봇 같은 존재가 있죠. 지금 이러한 봇은 상당히 효율적으로 실행할 수 있고 하드 코딩할 수 있는 그 어떤 것보다 훨씬 인간처럼 행동할 수 있어요. 그리고 이 복잡한 계산을 모두 수행하는 게임에서 여러 에이전트를 실행할 수 있다고 생각하는 것은 당연한 겁니다. 이제 10년 안에 가능한가 하는 문제가 아니에요. 연구가 있고 하드웨어가 있으며, 지금 위치까지 구축하는 데 오래 걸리지 않았죠.
이러한 기술을 사용할 수 있을 것 같은 다른 애플리케이션에는 무엇이 있을까요?
JR: 가장 자연스러운 애플리케이션은 봇이며, 저희가 봇에 집중하는 이유도 그래서입니다. 저희 그룹은 실제로 Smart Bots Group이라고 하며, 봇에 관심이 아주 많아요. 게임 테스트에 사용되는 봇을 작업하고 있지만 봇에게 환경 탐색을 가르친다면, 이러한 봇은 더 나아가 AI 적으로서 플레이어 앞에 설 수 있다는 건 쉽게 생각해볼 수 있겠죠.
봇 외에도 강화 학습은 다양하게 응용할 수 있는 매우 일반적인 프레임워크입니다. 예를 들어, 서버 관리에 사용해볼 수 있겠죠. 게임용 서버를 호스팅할 때 필요하지 않은 서버가 너무 많으면 문제입니다. 반대로 플레이어는 많은데 서버가 부족하게 배포되어도 문제죠. 이론적으로 에이전트를 훈련하여 순차적 의사 결정을 최적화할 수 있으므로 특정 시간대의 플레이어 수를 확인한 다음 필요에 따라 주어진 순간에 현재 온라인 서버 수를 늘리거나 줄일 수 있습니다.
이 기술의 향후 목표는 무엇인가요?
JR: 게임에 더 많은 사실성을 제공하여 NPC와 봇과 같은 것을 더 인간적으로 만들고 지금까지 불가능했던 문제를 해결할 방법을 계속 연구하는 것입니다. 또한, 이 기술을 게임 디자이너가 사용할 수 있게 하여 이를 통해 플레이어를 대면하는 도구도 만들고 싶어요. 개발자가 사용할 수 있는 레퍼토리의 또 다른 도구가 될 수 있으므로 이러한 봇을 맞춤 설정하고 원하는 작업을 수행할 수 있는 옵션을 제공하는 것이 다음에 달성해야 할 중요한 단계죠. 지금까지 언급한 모든 테스트는 라이브 환경에 적용되지 않았어요. 즉, 아직 플레이어 앞에 내놓지 않았죠. 더 가까운 단계는 이러한 기술을 게임 테스터에게 제공하여 성능 문제부터 게임플레이 메커니즘 등의 문제에 이르기까지 모든 종류의 시나리오 테스트에 사용하는 것이라고 생각합니다.
게임에서 AI와 심층 강화 학습을 구현한다는 건 무슨 의미일까요?
JR: 이 기술을 게임 테스트에만 사용한다면, 이러한 기술은 플레이어에게 제공되지 않을 것이고, 사람들이 AI에 대해 가지고 있는 더 부정적인 추측에 대해서는 신경 쓸 필요가 없을 거에요. 이게 실제로 게임을 테스트하는 사람들이 더 적어진다는 뜻이라며 걱정할 수도 있겠지만, 그건 사실이 아니에요. 이 봇으로 실행할 테스트 유형은 실제 사람이 테스트해야 하는 유형과 근본적으로 다르기 때문이죠. 실제 인간의 상호 작용은 그대로 유지되고, 사람들이 퀘스트와 게임의 다른 재미있는 부분, 게임의 더 재미있는 요소를 계속 테스트할 것입니다.
AI 봇을 게임에 실제로 적용한다는 점에서 저희가 하는 일에 대한 투명성이 정말 중요하다고 생각해요. 곧 게임에서 봇을 만나게 될 것이며, 그게 사람인지 봇인지 알 수 없을 것이라고 걱정하는 사람도 있을 거예요. 상당한 논란의 여지가 있는 문제이므로 봇에 대해서는 완전히 투명해야 하고 플레이어를 속여서는 안 된다고 생각해요. 게임에서 AI를 수용해야 하는 또 다른 이유는 AI가 본질적으로 완벽한 샌드박스이기 때문이죠. 특정 아이디어를 시도하고 어떤 일이 일어나는지 볼 수 있는 좋은 장소이지만, 예상치 못한 결과는 그 게임 안에만 남고 게임 외부의 삶에 실제로 영향을 미치지 않아요. 따라서 사람들은 For Honor 방어 봇이 세계를 장악할 것이라고 두려워할 필요가 없죠. 그냥 게임 속에 살고 있는 재미있는 그런 존재일 뿐이에요.
- Joshua와 나눈 모든 이야기는 AIIDE 2021에서 확인하실 수 있습니다. 그의 연구 및 심층 강화 학습, AI에 대해 더 알아보세요. Ubisoft의 최신 뉴스와 업데이트를 알고 싶으시다면 Ubisoft 뉴스 허브를 확인해주세요.*