말로 명령을 내리면 충실히 그 명령을 수행할 수 있는 로봇을 만들고 싶은 것은 많은 공학도들의 꿈이었다. 이 논문은 그 꿈을 게임환경에서 실현하고자 한 연구자들의 첫 시도이다. 말로 내린 명령을 화면을 보고 수행하는 AI Agent를 만든 이들의 시도를 한번 살펴 보자.
제목: [2024] Scaling Instructable Agents Across Many Simulated Worlds
이 논문은 다양한 가상 환경(게임 환경)에서 수집한 [자연어 지사문+게임화면+마우스/키보드 조작] 정보를 사용하여 자연어로 Agent에게 지시를 내리면 그 지시문을 수행하는 Agent를 학습하는 방법을 제시한 논문이다. 즉, Agent의 입력은 지시문과 게임 화면이고 출력은 마우스와 키보드의 control 신호이다. Controllable Behavior Cloning 문제로 이해할 수 있다.
다만, 기존의 Behavior Cloning을 통한 Agent Policy 학습과 가장 큰 차이점은 Agent의 입력에 자연어 지시문이 들어간다는 것과 이미지 입력에 반응하도록 학습함으로써, 이를 하나의 환경(게임)이 아니라 다양한 환경(게임)에서 작동할 수 있도록 만들었다는 점이다. 심지어 경험해 보지 않은 환경(게임)에서도 비록 성능이 떨어지기는 하나 지시문을 실행할 수 있다는 점을 확인하였다.
여기서 보여준 결과는 비교적 단순한 자연어 지시를 수행할 수 있는 것이지만, LLM의 reasoning/Planning과 결합되면 복잡한 Task도 수행할 수 있을 것이다. 다만 제대로 수행하려면 지금보다는 지시문 수행 성공률을 높여야 할 것이다.
이 연구는 사용자의 지시를 받아 화면을 보고 콘트롤하여 지시를 수행하는 Agent를 만들 수 있을까란 질문에 대해 가능성을 보여주었다고 볼 수는 있으나 게임사에서 활용하기에 효율적이지는 않다. 데이터 수집 비용을 무시할 수 없을뿐 아니라 게임에 특화된 지시 수행은 제대로 하기 어렵다. 게임 개발자 입장에서 보면, 게임 정보를 직접 얻을 수도 있고 콘트롤도 키보드/마우스가 아닌 API를 통해서 할 수 있기 때문에 굳이 정확도를 희생하며 화면 인식과 키보드/마우스 제어 방법을 학습 시킬 필요가 없다. 다시 말해, 범용적이지는 않더라도 API를 통해서 게임 상태를 받고 Action을 실행하도록 하는 것이 문제를 더 쉽게 푸는 방법이며, 자연어 지시를 하고 싶다면 Prmitive한 자연어 지시를 수행하는 Option을 스크립트로 작성하거나 강화학습으로 학습을 해서 준비하여 자연어 명령을 Mapping 시키는 것이 합리적이지 않을까 싶다.
기타 참고 사항
이 연구에서는 10개의 연구용 3D world와 상용 게임으로부터 데이터를 수집하였다. 10개의 환경이 적어 보이지만 그 수집 과정에 들어간 들어간 노력은 매우 클 것으로 짐작된다. 그럼에도 불구하고 좀 더 사람에 근접한 성능을 얻기 위해서는 더 다양한 환경에서 더 많고 다양한 조작 데이터를 수집해야 하지 않을까.
실행할 지시문은 대략 10초내에 실행 완료할 수 있는 지시문으로 제약하였다. 실행해야 할 키보드 마우스 조작의 dimension을 제한하기 위함이기도 하지만 다양한 환경에서도 재사용이 가능한 지시문을 구성하기 위함이었다고 한다.
당연한 이야기지만 Navigation이나 색상있는 물체 잡기와 같이 게임마다 공통된 지시는 잘 수행하는 편이지만, 게임마다 특화된 지시문은 실행 성능이 떨어진다. 한게임에 특화하여 학습하면 반대로 게임 공통 지시문의 성능은 떨어지지만 게임 특화 지시문의 수행 성능은 올라간다.
Video model은 pretrain된 것을 가져와서 Behavior Cloning 과정에 fine-tuning하였다. 실험을 통해 scratch로 video model을 학습하는 것보다 pretrain된 모델을 사용하는 것이 성능이 더 좋음을 확인하였다.
Bahavior Cloning과 함께 Goal completion prediction도 auxiliary objective로 같이 학습하였다.
inference시 agent의 Language Conditionality 개선에 사용되는 Calssifier-Free Guidance(CFG)는 여기서도 효과를 발휘하였다. CFG는 Policy output에 Conditioned Policy output과 Non-conditioned Policy output의 차이의 일정 비율만큼 더 증가 시켜 좀 더 Language condition을 잘 따르게 하는 방법이다.
당연한 이야기지만 수행해야 할 지시문에 따라 난이도도 다양하고 실제로 성공률도 다양하게 나왔다.