Embodied AI란?
이 글을 읽으면 좋을 것 같은 사람
- 에이전트(로보틱스, 게임, 데스크탑 제어 등) 연구/개발에 관심 있으신 분
- ML 연구자/엔지니어로서 CV, NLP 등 기존의 메이저한 ML 분야를 넘어 새로 떠오를 분야를 탐험하는 것에 관심 있으신 분
- 앞으로 현실에서 얻은 데이터를 사용할 시간이 온다고 생각하시는 분
안녕하세요, 저는 WoRV팀에서 Machine Learning Engineer로 근무중인 최수환이라고 합니다. 이번에는 Embodied AI라는 분야에 대해 간단히 소개해드리려고 합니다. 오늘 작성하는 글은 그 방대한 분량과 요구하는 지식에 비해 알량한 제 식견을 통해 작성한 글이기에, 이상하거나 틀린 부분이 있더라도 관대하게 넘어가거나 적극적인 피드백을 주시면 감사하겠습니다. 커피챗이나 메일 항상 환영합니다.
Embodied AI란?
Embodied AI가 무엇인지에 대해 모두가 동의하는 하나의 정의는 없는 것 같습니다. 그래도 간단히 말하자면 "물리적 실체를 가지고 환경과 상호작용하는 인공지능"을 Embodied AI라고 이야기할 수 있을 것 같습니다. 또 일반적으로 Embodied Agent라는 표현과 거의 구분되지 않고 쓰입니다.
다만, 제 마음에 더 드는 정의를 제시하자면, embodied agent란 다음과 같이 정의할 수 있을 것 같습니다.
agent that can behave and live in a environment
핵심은 환경 속에서 행동을 할 수 있다는 겁니다. 이러한 embodied agent의 예시로는 게임을 하는 에이전트, 로봇, 데스크탑이나 웹, 안드로이드를 제어하는 에이전트가 있습니다. 제가 마음대로 한 정의에서 '물리적인 실체'는 별로 중요치는 않고, 실제로 이러한 정의는 많은 연구 맥락에서 무리 없이 사용되는 듯합니다.
앞으로 제가 이야기할 내용의 일부는 다음의 두 강의에서 기인합니다. Google과 NVIDIA의 연사가 하는 강연인데, Embodied AI에 대해 잘 모르시는 분이 시청하시면 아주 많은 도움을 얻을 수 있으리라 생각합니다.
- Stanford CS25: V3 I Low-level Embodied Intelligence w/ Foundation Models (Fei Xia, Google DeepMind, 2023.12)
- Google에서 진행한 많은 robotics foundation model에 대한 연구들을 소개합니다.
- Stanford CS25: V3 I Generalist Agents in Open-Ended Worlds (Jim Fan, NVIDIA AI, 2023.12)
- Generalist agent로의 비전과 NVIDIA에서 로보틱스와 마인크래프트 관련해서 한 많은 연구들을 소개합니다.
From Internet AI to Embodied AI
이제는 인터넷에서 얻은 데이터만을 사용할 시대(Internet AI era)를 넘어 환경과 상호작용하며 얻은 데이터를 사용할 시대(Embodied AI era)가 올 것이라는 말로, Stanford CS25: V3 I Low-level Embodied Intelligence w/ Foundation Models 에서 언급했었고 인상적으로 들은 문구라 제가 지속적으로 인용하고 있는 문구입니다. 이게 무슨 말일까요?
현재의 인공지능 기술은 인터넷에서 수집한 데이터에 매우 크게 의존하고 있습니다. 그 이유는 간단한데 데이터를 scaling 할 수 있는 현존하는 유일한 방법이 인터넷에서 데이터를 수집하는 것이기 때문입니다. 인터넷에 존재하는 데이터의 양을 감안했을 때 LLM이 사용할 데이터가 2026~2032년 또는 그 이전에 고갈될 것이라는 결과를 낸 연구도 존재합니다.
그리고 모두에게 잘 알려진 사실은 아니지만, 데이터를 인터넷에 크게 의존한다는 사실 때문에 인공지능이 할 수 있는 태스크의 종류도 한정됩니다. 현존하는 LLM, MLLM(Multimodal LLM)이 만능 모델 같아 보여 Embodied Question Answering(환경에 대한 이해를 요구하는 질의응답 태스크)도 잘 할 것 같다고 생각할 수 있지만, OpenEQA에서는 그렇지 않고 현존하는 "가장 사람에 가까워 보이는" 최선두의 모델들도 사람에 한참 미치지 못함을 보였습니다.
BLINK에서도 사람이 "눈 깜짝할 사이"(BLINK) 정말 쉽게 처리할 수 있는 relative depth estimation, spatial reasoning 등 Embodied Agent에 필요한 태스크들을 현존 최고의 MLLM들이 사람보다 훨씬 못함을 보였습니다.
이러한 배경 하에서, embodied agent를 만들면 할 수 있는 태스크의 폭이 크게 늘어납니다. 무엇보다 중요한 것은 인공지능이 직접 "행동"을 해서 환경(현실 등)에 관여할 수 있게 되기에 생산할 수 있는 가치의 폭이 엄청나게 커질 거라는 사실입니다.
- 로봇 팔의 형태로 인간이 공장, 식당 등에서 하는 노동을 대체할 수도 있으며
- 이동 로봇의 형태로 배달, 서빙, 과수원 농약 뿌리기 등 다양한 노동을 대체할 수도 있고
- 차량 운전을 하여 자율주행을 실현할 수도 있으며
- 데스크탑 제어를 하여 컴퓨터로 하는 노동을 대체할 수도 있고
- 생산성보다는 entertainment의 영역이지만, 게임을 대신 할 수도 있습니다.
이전의 Internet AI 시대의 인공지능이 classification, detection, captioning, segmentation과 같은 태스크를 할 수 있는 것에 비하면 너무나도 할 수 있는 일이 많습니다.
Today's topic: generalist agent
오늘 제가 이 글에서 메인으로 다룰 내용은 generalist agent입니다. 저가 가장 주목하고 관심 가지고 있는 분야이기도 하며 또한 WoRV 팀의 연구 방향을 정함에 있어 크게 참고하고 있는 방향이기도 합니다. 그럼, generalist agent가 뭘까요? Generalist agent라는 용어도 연구적으로 넓은 합의가 이루어진 단어는 아닙니다만, Jim Fan이 강연에서 언급한 정의에 제 주관을 더해 서술해보겠습니다.
Specialist agents to Generalist agent
이전의 연구들은 generalist agent가 아닌 specialist agent를 다뤘습니다. 아마 이 글의 독자분들은 바둑으로 인간을 이긴 Alphago와 스타크래프트로 인간을 이긴 Alphastar에 대해서는 들어보셨을 겁니다.
이들은 RL(Reinforcement Learning)에 기반해 학습했으며, 학습하는 태스크는 단 한 가지(승리)이고, 학습에 사용하는 보상은 아주 잘 정의됩니다(승리하면 보상을 준다).
이 모델들은 단 하나의 목표를 가지고 있으며, 그 목표를 잘 수행하지만, 거꾸로 말해 그것밖에 못합니다. 이에 반해, generalist agent는 사람과 같이 여러 태스크를 동시에 수행할 수 있으며, 이러한 태스크를 수천 수만번 반복하지 않더라도 몇 번의 시행착오를 통해 수행할 수 있습니다.
SIMA: A generalist AI agent for 3D virtual environments
제가 embodied agent 이야기를 할 때 무조건 소개하는 연구가 있는데, DeepMind에서 2024년 3월에 공개한 SIMA입니다.
이들은 여러 종류의 상용 비디오 게임과 연구 환경에서 키보드/마우스와 모니터 데이터를 모으고, 모니터 입력에 대해 키보드/마우스 출력을 예측하는 에이전트(SIMA)를 학습시켰습니다. 이들은 여기에 더해, language prompt를 레이블링해 자연어의 형태로 에이전트의 행동을 가이드했습니다. 이 에이전트는 나무를 캐는 사람을 조종할 수도 있고, 우주선을 조종하며 소행성을 부술 수도 있습니다.
또한 이들은 모델의 이름에 "Scalable"과 "Instructable"을 넣었습니다. SketchDrive 소개 글에서 언급했듯 저는 이 두 속성을 매우 중요하게 바라보고 있는데요, 이 두 속성은 embodied agent 연구를 처음 접하는 사람이라면 간과하기 쉬운 속성이기도 합니다.
특히 Instructable에 대해 간과하기 쉬운데, 사람들은 막연히 "그냥 아무튼 잘 하는 에이전트"를 원하지만 많은 게임은 하나의 단일하고 자명한 목표를 가지고 있지 않습니다. 사람들은 누구나 자신이 인지하지 못했더라도 마음 한편에 모델이 어떤 식으로 행동을 해야 할지 좋겠다, 라는 생각을 가지고 있습니다. 이를 모델에게 전달하지 않았는데 모델이 그렇게 행동하기를 비는 것은 절대 불가능한 태스크를 시키는 셈입니다. 이러한 에이전트의 특성은 에이전트 연구에 있어 적절한 태스크 정의를 어렵게 만드는 원인이기도 하며, 저는 기존 딥러닝 기반 주행 연구들의 태스크 정의(목적지 이미지 기반 주행, 자연어 지시 기반 주행 등)가 적절하지 않게 되어 있다고 판단하여 이러한 점을 개선한 연구를 SketchDrive에서 진행했습니다.
Architecture of Agent
ML 연구자라면 embodied agent라는 연구에 대해 처음 들어봤다면 아마 무슨 아키텍처를 쓸 지가 가장 궁금할 것 같습니다. 위에서 언급한 SIMA에서는 multimodal이지만 MLLM이나 LLM에 기반하지는 않은 아키텍처를 사용합니다.
하지만 2023년 연구인 RT-2에서 구글은 이미 MLLM에 기반한 좋은 아키텍처를 제안했습니다. 더 정확히는 아키텍처에 변경조차 없습니다. MLLM은 이미 시각과 언어를 이해할 수 있기에 action modality만 더하면 되는데요, action을 입출력으로 사용하기 위해 RT-2에서는 token expansion을 사용했습니다. text tokenizer에 대응하는 action tokenizer을 만들고 action도 discrete token의 배열로 표현하는 겁니다. 그 이후 해야 하는 일은 그에 대응하는 LLM의 embedding
과 lm_head
크기의 조정 뿐입니다.
이 구조는 이미 잘 작동하며 DriveLM과 같은 자율주행 연구에서도 차용하고 있습니다.
Why do tokenize?
아마 처음 이 연구를 접하신 분이면 continuous action은 regression head를 달아서 예측하면 되지, 왜 tokenize해서 classification하는지 궁금하실 수도 있습니다. 그에 대한 해답과 그럴 수밖에 없는 이유는 BeT에서 언급하는데, 예시를 들어 간단히 설명하겠습니다.
앞에 장애물이 있고요, 좌나 우로 움직이는 게 정답입니다. 이 상황에서 regression으로 학습하면, streering action output은 무슨 값이 나올까요? 좌로도, 우로도 안 회전한다입니다. 좌와 우의 평균이 0이기 때문이죠.
regression, 특히 l2 regression은 output distribution이 Gaussian임을 전제합니다. multimodal action distribution은 multimodal(봉우리가 여러개)임에 반해 Gaussian은 unimodal(봉우리가 1개)이기 때문에, Gaussian은 multimodal distribution을 근사하기에 매우 적합하지 않습니다. 이에 반해 classification loss를 주면 multi-modal action distribution을 학습할 수 있습니다.
향후 VQ-BeT와 같은 연구에서 개선된 토크나이즈 방법이 제안되기도 합니다만, 저희는 waypoint prediction(주행 로봇이 어디로 가야 할 지 2차원 좌표 예측)에서는 단순한 K-Means clustering으로도 충분한 것을 확인했습니다.
Key is Data & Env
사실 아키텍처는 가장 안 중요한 부분입니다. 지금의 MLLM에 token expansion만 해도, 성능 여하는 모르겠지만 입출력 형식을 맞추는 데는 아무 지장이 없습니다.
에이전트 연구를 하는데 마땅한 환경이 없다고 해봅시다. 실제로, 여러분이 환경이 존재치 않은 태스크에 대한 연구를 시작하고 싶다고 하면 일어날 수 있는 일입니다. 이 경우는 LLM 연구를 하고 싶은데 인터넷이 없는 것보다 더 심각한 문제입니다. 왜냐면, 인터넷이 없으면 학습 데이터만 못 모으지 LLM을 일단 만들기만 하면 (직접 평가 셋을 만들어서라도) 평가는 할 수 있습니다. 근데 에이전트 연구를 하는데 환경이 없으면 데이터도 못 만들고 평가도 못합니다.
데이터가 없는 경우 무슨 문제가 일어나는지는 딱히 길게 말할 필요가 없을 거라 생각합니다. 하지만 유감스럽게도 이는 에이전트 연구 맥락에 있어 아주 흔한 일입니다. 에이전트 연구를 하는 곳도 별로 없고, 오픈소스로 하는 곳은 더더욱 없기에 오픈소스로 데이터를 구하기는 매우 힘듭니다. 있더라도 인간이 만들지 않은 저퀄리티 데이터거나 여러분이 원하는 조건이 만족되지 않았을 가능성이 매우 큽니다.
정말 유감스러운 부분은 데이터와 환경, 둘이 에이전트 연구를 시작함에 있어 가장 중요함에도 이미 존재하는 closed-source 연구들은 이들을 숨기고 있다는 사실입니다.
WoRV팀은 이러한 사실을 인지하고, 여러 환경에서 ML 리서처가 원하는 데이터를 바로 수집할 수 있는 파이프라인을 구축했습니다. 환경의 범주는 현실과 시뮬레이터를 모두 포함합니다. (현실은 시뮬레이터 중 하나일 뿐입니다.) 이를 구현함에 있어 아이디어보다는 엔지니어링 실력이 정말 중요하다는 것을 느꼈고, 이 분야의 최선두에 뛰어드는 누구든지 같은 부담을 느낄거라 생각합니다. 이에 대한 내용은 아래 글에 적어뒀습니다.
다행인 점은, 앞으로 에이전트 연구에 참가하고 관심 가지는 사람이 많아지고, 에이전트 코드베이스에 있어 범용적인 구조가 보급이 되면 훨씬 연구를 시작하고 발전시켜나가기 쉬워질 것이라는 사실입니다.
마무리하자면...
이 글에서 다루고 싶었으나 못 다룬 내용이 많습니다. 에이전트 연구/개발을 시작하고서 고민하고 배운 내용들이 정말 많았으나 이 글에는 이 연구를 전혀 모르는 사람이 가볍게 읽고 관심을 가질 수 있을 정도로 정말 적은 내용만을 다뤘습니다.
이 글을 읽고 Embodied AI, Embodied Agent에 관심 가지게 되셨으면 좋겠습니다. 관련 연구에 관련해 가볍게라도 이야기하고 싶으신 분들은 언제든 커피챗을 환영하고 있으며, 채용 페이지의 커피챗 링크를 통해 편하게 연락 주시면 됩니다. 감사합니다.