LeRobot v0.6.0, 상상하고 재고 고치는 로봇 학습
Hugging Face의 LeRobot v0.6.0이 묶은 Imagine, Evaluate, Improve 고리를 따라가며 데이터 규격과 평가, 반복 개선이 로봇 학습을 어떻게 바꾸는지 읽어봅니다.
원문 논문 보기
Hugging Face가 공개한 LeRobot v0.6.0: Imagine, Evaluate, Improve를 읽었습니다. 이 릴리스는 로봇 학습을 상상하고 평가하고 개선하는 하나의 닫힌 고리로 묶자는 제안이며, 원문은 제목 아래 연결된 링크에서 볼 수 있습니다.
그렇다면 버전 번호 하나가 왜 고리라는 말을 꺼냈을까요. 저는 이 대목에서 멈췄습니다. 보통 릴리스 노트는 기능 목록으로 읽히는데, 이번에는 기능보다 순서가 먼저 보였기 때문입니다. 상상이 평가로 이어지고 평가가 개선으로 이어진다는 흐름이 전체를 관통하고 있었죠. 그래서 이번 글에서는 목록을 옮기기보다 그 흐름이 실제로 무엇을 바꾸는지 따라가 보겠습니다.
이 릴리스를 그냥 버전업으로 넘기기 어려웠던 이유
안녕하세요, 패트릭입니다. 저는 평소에 릴리스 노트를 볼 때 숫자를 먼저 보지 않고 문장을 먼저 봅니다. 어떤 문제를 풀겠다고 말하는지가 보이면 그다음 숫자도 의미가 생기니까요. 그런데 이번에는 첫 문장부터 방향이 분명했습니다. 로봇을 가르치는 일을 따로따로 두지 않고 한 고리로 묶겠다는 것이었죠.
여러 사람이 함께 일하다 보면 누군가의 말 한마디가 팀 전체의 분위기를 바꾸기도 합니다. 그렇다면 로봇을 가르치는 과정에서도 비슷한 일이 생길까요. 데이터 모으는 팀과 정책 만드는 팀과 평가하는 팀이 서로 다른 말을 쓰면, 한쪽의 성과가 다른 쪽으로 이어지지 않기 때문입니다. 저는 이 지점이 이번 릴리스를 읽게 만든 출발이었다고 봅니다.
제가 이 글에서 가장 흥미롭게 본 부분은 상상이라는 단어의 쓰임입니다. 흔히 상상이라고 하면 막연한 기대를 떠올리지만, 여기서는 꽤 구체적인 장치를 가리킵니다. 직접 해보지 않은 시도를 모델 안에서 미리 돌려보는 일이죠. 이 장치가 평가와 개선 사이에 놓이면, 실패를 기다렸다가 고치는 방식에서 벗어날 수 있습니다. 그래서 저는 버전 번호보다 그 연결을 먼저 보게 됐습니다.
여기서 재미있는 질문이 생깁니다. 상상이 정말 학습에 도움이 될까요, 아니면 그럴듯한 영상을 만드는 데 그칠까요. 이 질문에 답하려면 상상이 무엇으로 만들어지고 어디에 쓰이는지 봐야 합니다. 그 이야기는 뒤에서 차근차근 풀겠습니다.
로봇 학습은 왜 매번 처음부터 헤매게 될까요
로봇 실험을 옆에서 본 분들은 아실 겁니다. 같은 컵 집기라도 로봇이 바뀌거나 카메라 위치가 조금만 달라져도 다시 가르쳐야 하는 경우가 많다는 것을요. 그런데 이 불편은 단순히 로봇이 서툴러서 생기는 일이 아닙니다. 실험마다 데이터 모양이 다르고 기록 방식이 다르며 성공의 기준도 달라서, 이전 시도가 다음 시도로 이어지지 않기 때문입니다.
생각해보면 사람도 비슷하게 배웁니다. 일종의 오답 노트처럼요. 어제 틀린 문제를 오늘 다시 풀 때 어제의 기록이 남아 있어야 같은 실수를 줄일 수 있습니다. 하지만 로봇 학습 현장에서는 이 기록 자체가 파편화되어 있는 경우가 많았습니다. 어떤 팀은 영상을 어떤 식으로 저장하고, 다른 팀은 관절 각도를 또 다른 식으로 저장했죠. 그러다 보니 좋은 시범이 있어도 재사용이 어려웠습니다.
문제는 그다음입니다. 데이터가 흩어지면 평가도 흩어집니다. 같은 정책이라도 누가 어디서 어떻게 쟀는지에 따라 점수가 달라지니까요. 저는 이 숫자보다 그 뒤의 구조가 더 중요하다고 봅니다. 비교할 수 없는 숫자가 쌓이면 무엇을 배웠는지 알기 어렵기 때문입니다. 그래서 이번 릴리스가 데이터 규격과 평가 절차를 함께 다룬다는 점이 눈에 들어왔습니다.
그렇다면 이 흐름은 어디에서 끊을 수 있을까요. 저는 고리를 끊는다는 표현보다 고리를 잇는다는 표현이 더 어울린다고 봅니다. 데이터와 평가가 같은 말을 쓰기 시작하면, 상상과 개선도 그 위에 얹힐 수 있기 때문입니다. 다음 절에서는 그 고리의 전체 모양을 먼저 그리겠습니다.

그렇다면 상상하고 재고 고치는 고리를 닫으면 어떨까요
이번 릴리스의 문장은 단순합니다. 상상하고, 평가하고, 개선한다는 것이죠. 그런데 이 단순함 뒤에는 꽤 단단한 문제의식이 있습니다. 로봇 학습이 세 단계로 찢어져 있으면 각 단계의 성과가 버려진다는 것입니다. 상상은 논문 속 그림으로 남고, 평가는 각자의 스프레드시트로 남고, 개선은 다음 학생의 몫으로 남는 식이죠.
저는 여기서 멈칫했습니다. 고리를 닫는다는 말이 말처럼 쉽지 않다는 것을 알기 때문입니다. 상상의 결과가 평가의 입력이 되려면 형식이 맞아야 하고, 평가의 결과가 개선의 입력이 되려면 실패의 원인이 보여야 합니다. 그래서 이 고리는 철학이 아니라 규격의 문제이기도 합니다. 어떤 데이터를 어떤 형식으로 남기고, 어떤 조건에서 무엇을 쟀는지를 적어두지 않으면 고리는 돌지 않습니다.
이 차이는 생각보다 중요합니다. 그런데 표면적으로는 상상하고 재고 고치면 된다는 단순한 말로 들리는데, 막상 붙여보면 형식이 먼저 걸리기 때문입니다. 상상이 만든 궤적은 실제 시범과 같은 형식으로 다뤄져야 학습에 쓸 수 있고, 그래서 평가도 오프라인 점수와 실제 주행을 같은 선상에서 말해야 합니다. 저는 이 두 정렬이 맞아떨어질 때 비로소 개선이 다음 데이터를 고르는 구체적인 일이 된다고 봅니다. 그렇다면 이 정리는 누구의 손을 덜어줄까요.
그렇다면 이 고리는 누구에게 가장 먼저 도움이 될까요. 저는 작은 실험을 반복하는 팀을 떠올렸습니다. 큰 로봇이 없어도 책상 위에서 매일 조금씩 고쳐나가는 팀이죠. 그런 팀에게는 멋진 신기능 하나보다 매일 돌릴 수 있는 고리 하나가 더 귀합니다. 이번 릴리스가 낮은 비용의 팔과 재현 가능한 설정을 함께 이야기하는 이유도 여기에 있다고 봅니다.
보지 않은 시도를 머릿속으로 먼저 돌려보는 일
이제 상상이라는 말을 조금 더 들여다보겠습니다. 여기서 상상은 learned world model을 가리키는데, 쉽게 말하면 세상이 어떻게 반응할지를 미리 그려보는 모형입니다. 컵을 이렇게 밀면 어떻게 움직일지, 손목을 이렇게 돌리면 카메라 화면이 어떻게 바뀔지를 영상이나 행동 궤적의 형태로 만들어내는 것이죠. 직접 로봇을 움직이지 않고도 시도를 불려낼 수 있습니다.
왜 이런 장치가 필요할까요. 이유는 로봇 시간 때문입니다. 사람과 달리 로봇은 한 번 시도하는 데 물리적인 시간이 들고, 실패하면 물건을 떨어뜨리거나 장치를 고쳐야 할 때도 있습니다. 그래서 실제 시도만으로 배우면 속도가 느려질 수밖에 없는데, 상상이 잘 작동하면 그 병목을 조금 우회할 수 있습니다. 잘 될 것 같은 방향을 미리 골라 실제 시도는 아껴 쓰는 것이죠.
여기서는 조금 조심해서 읽을 필요가 있습니다. 상상이 만든 영상은 그럴듯해 보일 수 있지만, 그럴듯함과 맞음은 다른 일이기 때문입니다. 영상 속 컵이 매끈하게 움직였다고 해서 실제 마찰과 무게까지 맞았다는 뜻은 아닙니다. 저는 그래서 상상의 결과를 독립된 성과로 읽기보다 평가와 붙여서 읽었습니다. 만든 궤적이 실제 정책의 학습에 도움이 됐는지, 계획 단계에서 더 나은 선택을 이끌었는지가 더 중요하기 때문입니다.
그렇다면 상상은 언제 가장 유용할까요. 저는 데이터가 부족한 초반과 위험한 시도를 피하고 싶은 중반을 꼽고 싶습니다. 초반에는 시범 몇 개로 방향을 잡아야 하고, 중반에는 실패 비용이 큰 구간을 건너야 하니까요. 물론 상상이 실제 데이터를 대체하지는 않습니다. 다만 어디에 실제 시도를 쓸지를 정해주는 나침반이 될 수 있죠. 이 나침반이 평가와 연결될 때 비로소 고리의 첫 칸이 채워집니다.

정책은 달라도 데이터의 말은 같아야 합니다
로봇을 움직이는 정책 쪽을 보면 이번 릴리스는 익숙한 이름들을 품고 있습니다. ACT와 Diffusion Policy, 그리고 SmolVLA 같은 모방 학습 계열이죠. 그런데 저는 이름보다 그 아래에 깔린 규격이 더 눈에 들어왔습니다. 바로 LeRobotDataset 형식과 Hugging Face Hub를 통한 공유입니다. 정책이 달라도 같은 형식의 데이터를 읽고 같은 방식으로 나눌 수 있다는 것이죠.
이렇게 말하면 당연하게 들릴 수도 있습니다. 하지만 당시 현장에서는 꽤 귀한 변화였죠. 로봇마다 관절 개수가 다르고 카메라 구성이 다르며 저장 주기도 제각각이었기 때문입니다. 형식이 다르면 코드를 조금 고치는 정도로 끝나지 않습니다. 데이터를 다시 손보고, 전처리를 다시 짜고, 평가 조건을 다시 맞춰야 합니다. 그래서 형식을 맞추는 일은 사소한 정리가 아니라 연구의 속도를 바꾸는 일입니다.
개인적으로 인상 깊었던 점은 공유의 방향입니다. 데이터와 정책을 Hub에 올려 다른 팀이 그대로 받아 쓸 수 있게 한 것이죠. 이렇게 되면 작은 팀도 남이 모은 시범 위에서 출발할 수 있습니다. 물론 데이터가 있다고 해서 모든 환경에 바로 붙는 것은 아닙니다. 카메라 각도나 조명, 물건의 질감이 다르면 성능이 흔들릴 수 있죠. 그럼에도 같은 형식이라는 것만으로 재현의 문턱은 확실히 낮아집니다.
좋은 건 알겠는데, 이걸 실제로 어떻게 이어갈까요. 저는 이렇게 봅니다. 같은 형식 위에서는 정책 비교가 조금 더 정직해집니다. ACT가 잘한 것인지 데이터가 좋았던 것인지, Diffusion Policy가 흔들린 것인지 평가 조건이 달랐던 것인지를 가려내기 쉬워지기 때문입니다. 이 가려냄이 다음 절의 평가 이야기로 자연스럽게 이어집니다.
점수가 같아 보여도 같은 실험이 아닐 때가 많죠
같은 모델에 같은 질문을 던져도 결과가 크게 달라질 수 있다는 것을 경험으로 알고 있죠. 로봇 평가는 그보다 더 흔들립니다. 누가 측정했는지, 조명이 어땠는지, 컵 위치를 얼마나 바꿨는지, 몇 번을 시도했는지에 따라 결과가 달라지기 때문입니다. 그래서 이번 릴리스가 오프라인 지표와 시뮬레이션 주행, 실제 평가 절차를 함께 묶은 대목은 유심히 볼 만합니다.
오프라인 지표는 빠릅니다. 저장된 데이터 위에서 예측이 얼마나 빗나갔는지를 재면 되니까요. 하지만 빠르다는 이유로 충분하지는 않습니다. 오프라인에서 잘 맞는 정책이 실제 테이블 위에서 떨리는 경우도 있기 때문입니다. 반면 실제 평가는 느리지만 믿음이 갑니다. 다만 느리다 보니 자주 돌리기 어렵죠. 그래서 시뮬레이션 주행이 사이에 놓입니다. 실제보다는 가볍고 오프라인보다는 구체적인 중간 지대인 셈입니다.
여기서 재미있는 질문이 생깁니다. 세 가지 평가가 서로 다른 말을 하면 무엇을 믿어야 할까요. 저는 이렇게 읽었습니다. 어느 하나가 정답이 아니라 세 개의 간격이 정답에 가깝다는 것입니다. 오프라인과 시뮬레이션이 좋았는데 실제만 나쁘다면 환경 차이를 의심할 수 있고, 시뮬레이션부터 나쁘다면 정책의 방향을 의심할 수 있죠. 평가를 겹겹이 두는 일은 점수를 모으는 일이 아니라 원인을 좁히는 일입니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 이 평가를 남도 돌릴 수 있을까요. 조건과 설정, 체크포인트와 로그가 함께 남아 있어야 남의 점수와 내 점수를 같은 선에 둘 수 있습니다. 이번 릴리스가 설정과 체크포인트, 시각화 도구를 강조한 이유는 그래서 실무적입니다. 점수 하나보다 점수가 나온 과정을 통째로 공유해야 비교가 되기 때문입니다.

실패를 보고 다음 데이터를 고르는 일
평가까지 왔다면 이제 개선의 차례입니다. 여기서 개선은 막연한 더 열심히가 아닙니다. 미세 조정과 실패 분석, 그리고 다음 데이터를 모으는 일을 묶은 절차에 가깝습니다. 어디서 틀렸는지를 보고, 그 장면을 메울 데이터를 정하고, 사람의 손으로 고친 시범을 다시 넣는 흐름이죠. human-in-the-loop라는 말이 가리키는 것도 바로 이 장면입니다.
이 과정을 책상 위 장면으로 옮겨보겠습니다. 오후에 로봇이 컵을 자꾸 놓친다고 해보죠. 로그를 열어보면 특정 각도에서 손목이 망설이는 구간이 보입니다. 그 구간만 잘라 다시 시범을 보이고, 고친 시범을 소량 섞어 다시 학습시킵니다. 다음 날 아침 같은 자리에서 다시 재보면 놓치는 횟수가 줄었는지 바로 알 수 있죠. 이렇게 되면 개선은 커다란 재학습이 아니라 매일의 손질이 됩니다.
그런데 이 손질이 잘 되려면 실패가 보여야 합니다. 그래서 기록과 시각화가 중요합니다. 언제 어디서 확신이 떨어졌는지, 어떤 관측에서 행동이 갈라졌는지를 볼 수 있어야 다음 시범을 어디에 보탤지 정할 수 있기 때문입니다. 저는 이 대목에서 저희가 새로운 AI 아키텍처를 볼 때도 benchmark 숫자만 보지는 않는다는 생각을 다시 했습니다. 실제로 무엇이 바뀌었고, 그 변화가 다음 데이터를 어떻게 바꾸는지를 함께 보게 되죠.
그렇다면 사람의 손길은 어디까지 필요할까요. 전부 사람이 고치면 느리고, 전부 자동으로 돌리면 이상한 방향으로 굳을 수 있습니다. 그래서 저는 사람이 고치는 시범을 귀한 자원으로 보고, 그 자원을 어디에 쓸지를 평가가 정해주는 구조가 이상적이라고 봅니다. 실패가 잦은 구간에 먼저 쓰고, 이미 잘되는 구간에는 아껴 쓰는 것이죠. 이렇게 되면 데이터 수집은 양의 경쟁이 아니라 위치의 경쟁이 됩니다.

값싼 팔이 연구실을 바꾸는 방식
이제 시선을 로봇本体가 아니라 팔로 돌려보겠습니다. 이번 릴리스는 SO-100과 SO-101 같은 저비용 팔을 전면에 둡니다. 언뜻 보면 보급형 장비를 얹은 것처럼 보이지만, 저는 이 선택이 고리 전체와 맞물린다고 봅니다. 상상과 평가와 개선이 매일 돌아가려면, 매일 돌릴 수 있는 몸이 필요하기 때문입니다.
값싼 팔이 있으면 실험의 문법이 바뀝니다. 큰 장비를 예약하고 기다리는 대신 책상 위에서 바로 돌릴 수 있죠. 학생 한 명이 오후에 아이디어를 떠올리면 저녁에 시범을 모아 밤에 학습시키고 아침에 다시 재볼 수 있습니다. 이 속도는 논문 한 편 이상의 의미를 가집니다. 시도의 횟수가 늘면 실패의 기록도 늘고, 실패가 늘면 다음 데이터도 더 정확해지기 때문입니다.
물론 값싼 장비에는 한계가 있습니다. 힘이 약하고 정밀도가 떨어지며 오래 쓰면 마모도 생깁니다. 그래서 여기서 얻은 결과가 큰 로봇에 그대로 옮겨간다고 말하기는 어렵습니다. 여기서는 조금 조심해서 읽을 필요가 있습니다. 작은 팔 위의 성공은 큰 팔 위의 성공을 보장하지 않기 때문입니다. 다만 연구의 재현이라는 측면에서는 분명한 장점이 있습니다. 같은 장비와 같은 설정을 가진 팀끼리는 결과를 주고받기가 훨씬 쉽습니다.
질문도 바뀌었습니다. 무엇을 살 수 있는가에서 무엇을 매일 돌릴 수 있는가로 말이죠. 저는 이 변화가 로봇 연구의 저변을 넓힌다고 봅니다. 장비가 싸지면 참여자가 늘고, 참여자가 늘면 데이터 형식이 더 빨리 굳고, 형식이 굳으면 비교가 쉬워집니다. 결국 값싼 팔은 값싼 실험이 아니라 잦은 실험을 사는 일입니다. 그 잦음이 고리를 돌리는 연료가 됩니다.

이 릴리스를 오해하기 쉬운 한 가지
여기까지 읽으면 이런 요약이 떠오를 수 있습니다. 상상만 하면 데이터가 필요 없다는 것이죠. 하지만 이는 이번 릴리스가 말하는 바와 거리가 멉니다. 상상은 실제 시범을 대신하는 장치가 아니라 실제 시범을 어디에 쓸지 정해주는 장치에 가깝기 때문입니다. 만든 궤적이 실제와 어긋나면 정책은 그 어긋남을 그대로 배울 수 있죠.
비슷한 오해가 평가에도 붙습니다. 도구가 생겼으니 점수만 모으면 된다는 생각입니다. 그런데 도구는 점수를 쉽게 만들 뿐, 무엇을 쟀는지를 정해주지는 않습니다. 같은 이름의 지표라도 어떤 장면에서 몇 번을 쟀는지가 다르면 비교가 되지 않습니다. 그래서 저는 도구보다 기록을 먼저 봅니다. 조건과 설정이 함께 남아 있지 않은 점수는 다음 개선으로 이어지기 어렵기 때문입니다.
또 하나 짚고 싶은 오해는 정책 이름에 관한 것입니다. ACT나 Diffusion Policy, SmolVLA가 들어갔다고 해서 특정 정책이 정답이라는 뜻은 아닙니다. 형식이 같아지면 정책은 갈아끼울 수 있는 부품이 되는데, 이번 릴리스가 진짜로 겨냥한 것은 부품 하나가 아니라 부품을 갈아끼울 수 있는 틀이라고 봅니다. 오늘이 아니라 다음 정책이 들어와도 같은 고리가 돌아가게 만드는 일이죠.
겉보기에 단순한 요약일수록 한 번 더 묻게 됩니다. 그래서 이 고리는 무엇으로 증명될까요. 저는 답을 멀리서 찾지 않았습니다. 상상이 실제 학습을 도왔는지, 평가가 남과 비교 가능한 형태로 남았는지, 개선이 다음 데이터의 위치를 바꿨는지, 그 세 가지로 보면 된다고 봅니다. 이 질문들에 답할 수 있을 때 릴리스는 목록이 아니라 습관이 됩니다.
그래서 다음에는 무엇을 지켜봐야 할까요
앞에서 미뤄뒀던 질문으로 돌아올 차례입니다. 이 고리는 실제로 돌까요. 저는 반쯤은 돌기 시작했고 반쯤은 아직 손볼 곳이 남았다고 봅니다. 형식이 생긴 것은 분명한 진전이지만, 형식이 곧 질을 보장하지는 않기 때문입니다. 같은 형식의 시범이라도 어떤 장면을 얼마나 담았는지에 따라 학습의 결과는 크게 달라질 수 있죠.
제가 앞으로 보고 싶은 것은 세 가지입니다. 여기서 첫째로 볼 것은 상상의 쓰임인데, 만든 궤적이 실제 데이터와 섞였을 때 어느 비율에서 도움이 되고 어느 지점에서 해가 되는지가 더 구체적으로 드러나야 하기 때문입니다. 그런 다음 둘째는 평가의 겹인데, 오프라인과 시뮬레이션과 실제 사이의 간격이 어떤 과제에서 좁고 어떤 과제에서 넓은지가 쌓이면 다음 팀은 어디에 시간을 써야 할지 알 수 있습니다. 그래서 셋째는 개선의 기록인데, 실패를 어떻게 잘라 다음 시범으로 이었는지에 대한 사례가 쌓이면 고리는 문서가 아니라 손놀림이 됩니다. 저는 이 세 조각이 모여야 고리가 도는지 말하는 버릇이 생긴다고 봅니다.
실제 시스템 관점에서 보면 다음 질문이 바로 생깁니다. 이 고리를 매일 돌리는 데 드는 비용은 얼마일까요. 상상을 돌리는 계산, 평가를 돌리는 시간, 시범을 다시 모으는 수고가 합쳐지면 만만치 않을 수 있습니다. 그래서 저는 계산과 시간과 수고를 함께 적는 보고가 늘어나길 바랍니다. 무엇이 좋아졌는지뿐 아니라 무엇을 들여서 좋아졌는지가 보여야 남도 따라 할 수 있기 때문입니다.
그렇다면 사람의 역할은 무엇일까요. 저는 사람이 고리 밖에서 구경하는 존재가 아니라 고리 안에서 방향을 고르는 존재로 남는다고 봅니다. 어디를 상상하고 무엇을 재고 어느 실패를 먼저 고칠지를 정하는 일이죠. 상상과 평가와 개선이 맞물릴수록, 그 선택의 감각이 더 중요해집니다. 이번 릴리스가 남긴 가장 긴 질문도 결국 그 대목에 있다고 봅니다. 매일 돌릴 수 있는 고리를 손에 쥔 우리는, 다음에는 어디를 먼저 고칠 것인가요.

참고 자료
- LeRobot v0.6.0: Imagine, Evaluate, Improve · huggingface.co
리뷰 원문