‘도와줘’라는 말만으로 로봇은 무엇을 해야 할지 알 수 있을까

  • AI
  • Robotics
  • Physical ICL

Physical ICL에서 시작해 로봇의 새로운 명령 방식을 생각해보다#

얼마 전 이런 문장을 보았다.

“GPT-6 Astra는 기본적으로 물리적 ICL을 바로 지원해요.”

처음에는 이 문장에서 ‘물리적 ICL’이 무엇인지가 궁금했다.

ICL은 In-Context Learning의 약자다. 모델을 새로 학습시키거나 파인튜닝하지 않고, 지금 주어진 맥락 안에서 예시를 보고 규칙을 파악하는 능력을 말한다.

가장 단순하게 생각하면 이런 식이다.

사과 → 과일 당근 → 채소 바나나 → ?

모델은 앞선 예시를 보고 ‘대상을 종류에 따라 분류하고 있구나’라는 규칙을 알아낸 뒤 바나나를 과일이라고 답할 수 있다.

중요한 점은 모델이 이 작업을 위해 새롭게 훈련된 것이 아니라는 것이다. 현재 주어진 맥락이 일종의 임시 학습 자료가 된다.

그렇다면 여기에 ‘물리적’이라는 말이 붙으면 무엇이 달라질까.

생각보다 간단했다.

텍스트 대신 사람의 행동이 맥락이 되는 것이다.

사람이 탁자 위의 물건을 하나씩 집어 상자에 넣는 모습을 로봇이 본다고 생각해보자.

사람이 물건을 집는다. 상자까지 옮긴다. 상자 안에 내려놓는다. 다시 다른 물건을 집는다.

이 장면 자체가 하나의 예시가 된다.

그리고 로봇이 그 모습을 통해

“지금 하고 있는 일은 흩어진 물건을 저 상자에 정리하는 것이구나.”

라고 알아낼 수 있다면, 텍스트에서 이루어지던 ICL이 물리적 행동으로 확장된 셈이다.

처음에는 여기까지 이해했다.

그런데 곧 다른 의문이 생겼다.

이해하는 것과 몸을 움직이는 것은 다른 문제다#

Astra 같은 모델이 영상을 보고 사람이 무엇을 하고 있는지 이해한다고 하자.

그렇다고 해서 곧바로 로봇의 관절이 움직이는 것은 아니다.

LLM이

“저 컵을 집어서 오른쪽으로 옮겨야 한다.”

라고 이해하는 것과,

실제로 로봇 팔의 여러 관절을 어느 각도로 움직이고, 어느 정도의 속도로 접근하고, 어느 힘으로 컵을 잡아야 하는지는 전혀 다른 문제다.

여기에서 사람의 몸을 떠올렸다.

내가 앞으로 걸어가려고 할 때,

왼쪽 무릎을 몇 도 굽히고, 오른쪽 발목에 어느 정도 힘을 주고, 무게중심을 몇 센티미터 이동시키자.

라고 일일이 의식하지 않는다.

높은 수준에서는 단지

“앞으로 걸어가자.”

라는 목적이 있다.

실제 움직임은 뇌와 운동계, 척수와 여러 제어 회로가 훨씬 낮은 수준에서 처리한다.

로봇도 비슷한 구조로 생각할 수 있을 것 같았다.

상위 모델은

무엇을 해야 하는가

를 판단하고,

로봇 전용 모델은

그 일을 몸으로 어떻게 수행할 것인가

를 결정한다.

그리고 더 낮은 수준의 제어기는

관절과 모터를 실제로 어떻게 움직일 것인가

를 처리한다.

이를 단순화하면 다음과 같다.

Astra 같은 상위 모델 → 과업과 목표를 결정

로봇용 AI / VLA / Robot Policy → 목표를 실제 신체 행동으로 변환

Motor Controller → 관절·모터를 실시간 제어

이렇게 생각하고 나니 이전에 공부했던 다른 개념들이 자연스럽게 떠올랐다.

MCP와 Skills였다.


MCP와 Skills는 로봇에서 어떤 역할을 할까#

LLM이 외부 프로그램을 사용할 때에는 모델과 프로그램 사이에 인터페이스가 필요하다.

로봇도 마찬가지다.

가상의 로봇 제어 인터페이스가 있다고 생각해보자.

get_robot_state()
find_object()
move_to()
grasp()
release()
stop()

상위 모델은 모터에 직접 전압을 보내는 대신 이런 기능들을 호출한다.

이를테면

“노란 컵을 찾아라.”

라고 판단하면 find_object()를 사용하고,

“컵 앞으로 이동하라.”

라고 판단하면 move_to()를 사용한다.

이런 인터페이스를 MCP나 일반적인 Tool API 형태로 연결할 수 있을 것이다.

그러면 MCP는 ‘무엇을 할 수 있는가’를 모델에게 제공하는 층이라고 생각할 수 있다.

반면 Skill은 조금 다르다.

예를 들어 로봇 팔을 사용할 때 다음과 같은 규칙이 있다고 하자.

물체의 위치를 먼저 확인한다. 물체 바로 위까지 접근한 뒤 천천히 내려간다. 깨지기 쉬운 물체는 약한 힘으로 잡는다. 사람이 작업 영역에 들어오면 중단한다.

이것은 새로운 능력을 추가하는 것이 아니라 이미 존재하는 능력을 어떤 방식으로 사용해야 하는지를 알려주는 설명서에 가깝다.

그래서 내가 이해하기에는 다음과 같이 구분할 수 있었다.

MCP / Tool

무엇을 할 수 있는가.

Skill

그것을 어떻게 사용해야 하는가.

그리고 이 둘뿐 아니라 센서, 안전 규칙, 상태 관리, 작업 기억, 실행 결과 확인 같은 것들을 하나로 묶는 전체 실행 구조를 생각하면 ‘하네스’라는 개념도 자연스럽게 들어온다.


그렇다면 기존 로봇 AI 위에 범용 모델을 올릴 수도 있지 않을까#

여기까지 생각하고 나니 또 다른 의문이 생겼다.

이미 로봇의 몸을 움직이는 연구들은 많이 존재한다.

카메라 영상을 보고 물체를 집는 모델도 있고, 로봇 팔을 제어하거나 보행을 수행하는 모델도 있다. Hugging Face의 로보틱스 프로젝트나 Google의 로봇 연구처럼 로봇의 물리적인 행동 자체를 학습시키는 연구도 계속 진행되고 있다.

그렇다면 이런 모델들을 없애고 Astra 하나가 모든 것을 처리해야 할 이유는 없다.

오히려 반대로 생각할 수 있었다.

기존 로봇 AI의 위에 범용 멀티모달 모델을 올리는 것이다.

그러면 역할이 분리된다.

상위의 Astra 같은 모델은

지금 어떤 상황인가? 사람은 무엇을 하고 있는가? 무엇을 해야 하는가?

를 판단한다.

그 아래의 로봇 전용 모델은

그 일을 이 몸으로 어떻게 수행할 것인가?

를 처리한다.

사람의 몸에 비유한다면 상위 모델은 고차원적인 판단을 담당하는 두뇌에 가깝고, 로봇 전용 모델은 운동계에 가깝다.

이 구조를 생각하면서 Physical ICL의 의미도 조금 달리 보이기 시작했다.

ICL은 로봇에게 새로운 팔 움직임을 가르치는 것이 아니라, 현재 상황에서 어떤 과업을 수행해야 하는지를 알아내는 데 사용할 수도 있는 것이다.


‘너는 청소 로봇이야’라고 말하지 않아도 될까#

여기에서 나는 생각을 조금 앞서 나갔다.

사람이 방을 청소하고 있고 로봇이 그 모습을 보고 있다면, 굳이

“너는 청소 로봇이야.”

라고 지정하지 않아도 로봇이

“아, 지금 정리를 하고 있구나. 나도 도와야겠다.”

라고 생각할 수도 있지 않을까?

하지만 이 부분을 조금 더 생각하니 두 가지가 섞여 있었다.

사람이 무엇을 하고 있는지를 이해하는 것

내가 그 일에 개입해야 한다고 결정하는 것은 다른 문제다.

Physical ICL을 통해

“이 사람은 방을 정리하고 있다.”

라고 알아내는 것은 가능하다고 하더라도,

그 사실만으로

“그러므로 내가 정리를 시작해야 한다.”

라는 목표가 자동으로 생기는 것은 아니다.

누군가 서랍을 정리하고 있다고 해서 로봇이 자기 마음대로 다른 서랍까지 열어 정리하기 시작한다면 오히려 곤란하다.

여기에는 인간의 요청이나 상위 목표가 필요하다.

그래서 상황을 조금 바꾸어 보았다.


사람이 단지 “도와줘”라고 말한다면?#

사람이 방을 정리하고 있다.

바닥에는 장난감과 책이 흩어져 있다.

사람은 장난감을 상자에 넣고 책을 책장으로 옮기고 있다.

그때 사람에게서 짧은 말이 나온다.

“도와줘.”

이 경우에는 이야기가 상당히 달라진다.

“도와줘”라는 말에는 구체적인 행동 지시가 없다.

무엇을 집어야 하는지, 어디로 옮겨야 하는지, 무엇부터 해야 하는지도 지정되어 있지 않다.

기존의 로봇에게는 지나치게 모호한 명령일 수 있다.

하지만 환경을 이해할 수 있는 상위 모델이라면 현재 맥락을 이용할 수 있다.

사람이 장난감을 상자에 넣고 있다. 책은 책장으로 옮기고 있다. 아직 바닥에는 정리할 물건이 남아 있다.

이 상황을 보고 모델은

“현재 이 사람은 방을 정리하고 있다.”

라고 판단할 수 있다.

그리고 자신의 능력을 확인한다.

“나는 물건을 찾을 수 있다.” “물건을 집을 수 있다.” “상자까지 옮길 수 있다.”

그러면 가능한 과업이 만들어진다.

장난감을 상자에 넣기 책을 책장으로 옮기기 바닥에 남은 물건 정리하기

여기에서 하나를 선택해 실행할 수도 있고, 상황이 애매하다면 사람에게 다시 물을 수도 있다.

“장난감을 정리할까요, 책을 책장에 넣을까요?”

이 지점에서 내가 흥미롭게 느낀 것은 사람이 행동을 명령하지 않았다는 점이다.

사람은 단지

“도와줘.”

라고 의도를 전달했다.

구체적으로 무엇을 해야 하는지는 로봇이 현재 상황에서 만들어냈다.


결국 인간은 Why를 말하고, 모델이 What을 만드는 것 아닐까#

이 구조를 조금 단순화하면 다음과 같이 볼 수 있다.

사람:

“도와줘.”

의도 또는 목표 제공

상위 모델:

“현재 정리 작업 중이고, 내가 장난감을 정리하는 것이 적절하겠다.”

과업 선택

로봇 전용 모델:

“저 장난감을 집으려면 팔을 이렇게 움직이면 된다.”

동작 생성

모터 제어기:

실제 관절과 모터를 움직임.

즉 인간은 점점 How를 설명하지 않아도 된다.

어쩌면 What조차 상당 부분 설명하지 않아도 된다.

인간이 제공하는 것은 점점 더 높은 수준의 의도와 목적이 된다.

그리고 이 생각을 하다가 초기 LLM을 사용할 때의 프롬프트가 떠올랐다.


초기 LLM에서 우리는 자연어로 프로그램을 작성하고 있었다#

초기 LLM을 사용할 때에는 프롬프트 작성법이 매우 중요했다.

좋은 결과를 얻으려면 모델에게 상당히 상세하게 설명해야 했다.

역할을 지정한다.

“너는 전문 분석가다.”

해야 할 작업을 순서대로 지정한다.

“먼저 내용을 요약하고, 다음으로 장단점을 분석하고, 마지막으로 결론을 작성하라.”

출력 형식도 정한다.

“표로 작성하고 다섯 개 항목으로 정리하라.”

하지 말아야 할 것도 지정한다.

결국 사용자는 자연어로 모델의 작업 절차를 상당 부분 설계하고 있었다.

어떤 의미에서는 프롬프트 자체가 작은 프로그램이었다.

하지만 모델의 능력이 발전하면서 조금씩 상황이 달라졌다.

사용자가 모든 사고 과정과 작업 순서를 세세하게 지정하기보다,

무엇을 원하는지, 어떤 조건이 중요한지를 알려주고 나머지 수행 방법은 모델에게 맡기는 방식이 더 자연스러워지고 있다.

지나치게 세세한 지시가 오히려 모델이 더 좋은 방법을 찾는 것을 제한하는 경우도 생긴다.

이를 단순화하면 이런 변화라고 생각할 수 있다.

초기에는

How까지 지시한다.

점차

What을 지시한다.

그리고 더 발전하면

Why와 목표를 전달한다.


로봇에서도 같은 변화가 시작되는 것 아닐까#

여기에서 처음의 Physical ICL 이야기로 다시 돌아왔다.

과거의 로봇에게 일을 시킨다고 생각하면 매우 구체적인 명령이 필요했다.

팔을 앞으로 움직여라. 그리퍼를 열어라. 컵을 잡아라. 오른쪽으로 옮겨라.

조금 더 발전하면 다음과 같은 수준이 된다.

“이 컵을 싱크대로 옮겨.”

그 다음은

“식탁을 정리해.”

그리고 환경을 충분히 이해하고 현재 사람의 행동을 맥락으로 사용할 수 있다면 언젠가는

“좀 도와줘.”

정도의 말까지 올라갈 수 있다.

이때 로봇은 명령문만 보는 것이 아니다.

사람이 무엇을 하고 있는지 보고,

주변 환경을 살피고,

현재 행동의 목적을 추론하고,

자신이 할 수 있는 일을 확인한 뒤,

실행 가능한 과업을 만든다.

필요하다면 사람에게 다시 질문한다.

Physical ICL은 이 과정에서 중요한 역할을 할 수 있다.

사람이 모든 규칙을 언어로 설명할 필요 없이, 현재 행동 자체가 로봇에게 맥락이자 예시가 되기 때문이다.


프롬프트에서 의도로#

처음에는 단지 ‘Physical ICL’이라는 생소한 표현이 무엇인지 알고 싶었다.

그런데 개념을 하나씩 따라가다 보니 질문은 다른 곳에 도착했다.

앞으로 인간은 로봇에게 어디까지 설명해야 할까?

지금까지 우리는 컴퓨터에게 일을 시키려면 컴퓨터가 이해할 수 있는 방식으로 작업을 잘게 쪼개야 했다.

프로그래밍은 그것을 아주 엄밀한 언어로 표현하는 방법이었고, 초기 LLM 시대의 프롬프트 엔지니어링은 어느 정도 그것을 자연어로 옮겨놓은 모습처럼 느껴지기도 한다.

하지만 모델이 환경을 보고, 사람의 행동을 이해하고, 도구의 사용법을 알고, 자신의 능력까지 파악할 수 있게 된다면 인간이 담당해야 하는 부분은 계속 위로 올라갈 수 있다.

“이것을 잡고 저곳으로 옮겨.”

에서

“여기를 정리해.”

로,

그리고

“좀 도와줘.”

로.

그때 중요한 로봇 지능은 얼마나 많은 행동 명령을 외우고 있느냐가 아닐 것이다.

현재 상황에서 사람이 무엇을 원하는지 이해하고, 그것을 자신의 몸으로 수행할 수 있는 과업으로 바꾸며, 확신하지 못할 때는 행동하기 전에 질문할 수 있는 능력이 더 중요해질 것이다.

그렇게 생각하고 나니 Physical ICL은 단순히 ‘사람의 행동을 보고 따라 하는 로봇 기술’보다 조금 더 큰 변화의 일부처럼 보인다.

나는 그것을 지금 이렇게 이해하고 있다.

로봇에게 행동을 프로그래밍하는 인터페이스에서, 로봇에게 의도를 전달하는 인터페이스로의 변화.

어쩌면 LLM에서 이미 한 번 경험하기 시작한 변화가, 이제 물리적인 몸을 가진 AI에서도 시작되고 있는 것인지 모른다.