[서비스개발팀 전동준]
Facebook AI 에서 실제 환경과 가상 환경에서 사용할 수 있는 로봇 개발을 위한 Droidlet 플랫폼을 지난달 28일에 공개했습니다. 공개된 코드는 아직 문서화와 튜토리얼이 완전히 정리되어 있지 않지만, Facebook에서 기존에 있던 코드에서 활발히 업데이트 되고 있는 오픈소스입니다.
실제 환경에서 작동하는 로봇은 환경에 대한 인지와 사용자의 명령에 대해 정확한 인식이 이루어져야 잘 작동할 수 있습니다. 이런 로봇 에이전트 프로그래밍을 돕기 위해서 Facebook이 Droidlet을 공개하였고, 공개된 코드는 실제 환경에서 사용할 수 있는 LocoBot 이나 가상 환경에서 로봇 개발을 위해 Minecraft 게임과 연동할 수 있도록 하고 있습니다. 로봇이나 게임에서의 에이전트 제어를 하는 end-2-end의 코드로 구성되어 있지만 모듈로 구성되어 있기 때문에 학습된 ML 모델등을 만들어서 Droidlet과 연동하여 새로운 지능형 로봇을 만들 수도 있을 것 같습니다.
Mincraft는 오픈월드 세상에서 block 단위로 이루어진 다양한 오브젝트와 플레이어나 동물과 같은 논-플레이어 캐릭터(mobs)등과 상호작용 할 수 있는 게임입니다. Facebook AI는 예전부터 NLU Task등의 실험 환경을 위해서 Mincraft 게임을 이용하였습니다. (Why Build an Assistant in Minecraft?)
CraftAssist는 Minecraft 환경에서의 지능형 에이전트 개발을 위한 프레임워크를 제안하고 있습니다. CraftAssist는 다른 플레이어들과의 대화, 오브젝트 상호작용을 통한 건물이나 물건을 만드는 액션을 도출하기 위해서 대화 매니저나 메모리등의 구조를 사용하고 있습니다. 구조화된 데이터를 통해서 Minecraft에서 사용할 수 있는 에이전트 개발을 돕고 있습니다. Droidlet의 다른 모듈들과 유기적으로 사용할 수 있게 CraftAssist가 소스에 포함되어 있습니다.
Doridlet를 이용해서 Minecraft의 에이전트를 만들어 보았습니다. Facebook에서 NLU 모델도 제공하고 있었고, 사용자가 채팅으로 대화를 치면 서버를 통해서 NLU 모델에 전달되고, 모델은 에이전트의 행동을 제어할 수 있게 액션을 출력하여 특정 행동을 수행할 수 있었습니다. 영상에서 보는 것처럼 간단한 대화나 도형과 물건 만들기등을 기본적으로 수행할 수 있었습니다.
요즘 가상 세계인 “메타버스”가 각광받고 있는데, 이 메타버스 환경에서 사용자들에게 더 실제적인 경험을 주고, 더 실제감이 느껴지는 가상 환경 조성을을 위해서는 이런 지능형 에이전트가 필요합니다. Droidlet 은 다양한 지능형 에이전트들을 만들고 실험해볼 수 있는 환경 제공에 도움이 많이 될 것 같습니다.
github: https://github.com/facebookresearch/droidlet
paper: https://arxiv.org/abs/2101.10384