Articlehuggingface.co·2023년 4월 23일·0

Asynchronous Robot Inference: Decoupling Action Prediction and Execution

Quick Summary

로봇 정책이 미래 행동 묶음을 예측하는 동안 실행을 멈추는 문제를 줄이기 위해, 글은 행동 예측과 실행을 분리하는 비동기 추론 구조로 지연을 제거하고 더 촘촘한 제어 루프를 만드는 방법을 설명합니다.

Asynchronous Robot Inference: Decoupling Action Prediction and Execution 관련 대표 이미지

🖼️ 인포그래픽

Asynchronous Robot Inference: Decoupling Action Prediction and Execution 내용을 설명하는 본문 이미지

🖼️ 4컷 인포그래픽

Asynchronous Robot Inference: Decoupling Action Prediction and Execution 내용을 설명하는 본문 이미지

💡 한 줄 요약

로봇 정책이 미래 행동 묶음을 예측하는 동안 실행을 멈추는 문제를 줄이기 위해, 글은 행동 예측과 실행을 분리하는 비동기 추론 구조로 지연을 제거하고 더 촘촘한 제어 루프를 만드는 방법을 설명합니다.

📌 핵심 요약

  • 현재 로봇 정책 모델들은 단일 행동보다 여러 시점의 미래 행동 청크를 출력하는 경향이 있으며, 이를 순차적으로 처리하면 새 청크를 계산하는 동안 로봇이 멈추는 지연이 생깁니다.
  • 순차 추론에서는 관측을 캡처하고 정책을 실행해 행동 청크를 얻은 뒤 큐에서 행동을 꺼내 실행하는데, 큐가 비면 다음 추론이 끝날 때까지 로봇이 대기해야 합니다.
  • 비동기 추론은 RobotClient가 현재 행동 큐를 실행하는 동안 PolicyServer가 다음 행동 청크를 계산하게 하여 계산과 실행을 시간적으로 겹칩니다.
  • 이 구조는 gRPC 기반 통신, 로컬 행동 큐, 청크 크기 임계값, 중첩 구간 집계, 서버 측 관측 전처리와 유사도 필터링을 조합해 최신 행동을 계속 갱신합니다.
  • 저자들은 SmolVLA에서 비동기 추론을 도입했으며, 동일한 정책을 사용하면서도 작업 완료 시간이 약 2배 빨라지고 성공률은 비교 가능한 수준을 유지했다고 설명합니다.

🧩 주요 포인트

  1. 현재 로봇 정책 모델들은 단일 행동보다 여러 시점의 미래 행동 청크를 출력하는 경향이 있으며, 이를 순차적으로 처리하면 새 청크를 계산하는 동안 로봇이 멈추는 지연이 생깁니다.
  2. 순차 추론에서는 관측을 캡처하고 정책을 실행해 행동 청크를 얻은 뒤 큐에서 행동을 꺼내 실행하는데, 큐가 비면 다음 추론이 끝날 때까지 로봇이 대기해야 합니다.
  3. 비동기 추론은 RobotClient가 현재 행동 큐를 실행하는 동안 PolicyServer가 다음 행동 청크를 계산하게 하여 계산과 실행을 시간적으로 겹칩니다.
  4. 이 구조는 gRPC 기반 통신, 로컬 행동 큐, 청크 크기 임계값, 중첩 구간 집계, 서버 측 관측 전처리와 유사도 필터링을 조합해 최신 행동을 계속 갱신합니다.
  5. 저자들은 SmolVLA에서 비동기 추론을 도입했으며, 동일한 정책을 사용하면서도 작업 완료 시간이 약 2배 빨라지고 성공률은 비교 가능한 수준을 유지했다고 설명합니다.

🧠 상세 정리

1. 문제의 출발점: 커지는 로봇 정책과 행동 청크

글은 최근 로봇 정책이 점점 더 크고 무거워지는 동시에, 한 번에 다음 단일 행동만 예측하기보다 여러 미래 시점의 행동 청크를 출력하는 흐름에서 문제를 제기합니다. ACT, OpenVLA, PI0, SmolVLA 같은 모델은 관측이 주어졌을 때 일정 길이의 행동 시퀀스를 내놓는 방식으로 동작할 수 있습니다. 이런 방식은 로봇이 몇 단계 앞의 행동을 이미 알고 있다는 장점이 있지만, 새 행동 청크를 계산하는 동안 실행 루프가 멈추면 실제 작업에서는 지연과 반응성 저하로 이어집니다. 저자들은 이 문제가 단순한 구현상의 불편이 아니라, 작업 완료 시간과 실패 후 회복 능력에 직접 영향을 주는 제어 구조의 문제라고 설명합니다.

2. 순차 추론의 기본 흐름과 한계

순차 추론에서는 먼저 현재 관측을 캡처하고, 정책 π에 관측을 넣어 미래 행동들의 시퀀스를 얻은 다음, 이 행동들을 큐에 넣고 하나씩 꺼내 실행합니다. 큐가 비어 있으면 다음 행동 청크가 계산될 때까지 기다리고, 큐가 남아 있으면 기존 행동을 계속 수행합니다. 문제는 정책 실행 단계 동안 로봇이 유휴 상태가 된다는 점입니다. 모델이 커질수록 추론 지연은 커지고, 상호작용 시간이 보통 1/fps 수준으로 짧은 로봇 제어에서는 이 지연이 전체 실행 시간을 쉽게 지배할 수 있습니다. 글에서는 ACT 모델을 2021년 MacBook Pro에서 사용할 때 추론 지연이 약 100ms, 30fps 기준 약 3프레임에 해당하는 사례를 들어 이런 스파이크를 보여줍니다.

3. 유휴 시간과 낮은 반응성이 만드는 실제 실행 문제

순차 방식의 첫 번째 결과는 작업 완료 시간이 길어진다는 것입니다. 로봇은 다음 행동 청크가 계산될 때마다 기다려야 하므로, 실제로 움직일 수 있는 시간과 계산 때문에 멈춰 있는 시간이 번갈아 발생합니다. 두 번째 문제는 반응성 부족입니다. 큐에 행동이 남아 있을 때는 넓은 의미의 오픈루프 방식으로 이전 예측을 계속 실행하고, 큐가 비면 완전히 멈춘 상태가 됩니다. 글의 예시에서는 물체 잡기에 실패한 뒤에도 순차 추론은 기존 행동 청크를 계속 실행하지만, 비동기 추론은 새 관측을 바탕으로 다시 계획하고 새로운 행동 청크를 수행할 수 있음을 보여줍니다.

4. 비동기 추론의 핵심 아이디어

비동기 추론은 행동 예측과 행동 실행을 분리해 유휴 구간을 제거하려는 접근입니다. RobotClient는 최신 관측을 PolicyServer로 스트리밍하고, 서버가 추론을 수행하는 동안 클라이언트는 현재 큐에 있는 행동을 계속 실행합니다. 새 행동 청크가 도착하면 기존 큐의 남은 행동과 합쳐지고, 루프는 다시 반복됩니다. 핵심은 로봇이 이미 앞으로 몇 타임스텝 동안 무엇을 할지 알고 있으므로, 서버가 더 신선한 행동을 계산하는 동안 멈출 필요가 없다는 점입니다. 이 구조는 계산과 실행을 시간적으로 겹치게 만들어 제어 루프를 더 촘촘하게 하고, 결과적으로 로봇이 추론을 기다리지 않게 합니다.

5. 두 구성요소로 나뉜 시스템 아키텍처

저자들은 비동기 추론을 RobotClient와 PolicyServer라는 두 구성요소로 설계합니다. RobotClient는 로봇 온보드에서 실행되며 관측을 스트리밍하고, 로컬 행동 큐를 유지하며, 큐에 있는 행동을 실제로 수행합니다. PolicyServer는 정책을 호스팅하고 관측을 추론에 맞게 준비한 뒤 행동 청크를 다시 보내며, 로봇에 할당된 자원보다 더 강한 계산 자원을 사용할 수 있습니다. 두 구성요소는 같은 머신이 아니라 네트워크로 연결된 서로 다른 머신에서 동작할 수도 있습니다. 통신에는 gRPC를 사용하며, 글은 gRPC가 비교 가능한 REST API보다 약 5배 빠른 성능을 보장한다고 설명합니다.

6. gRPC와 저지연 통신의 역할

아키텍처에서 gRPC는 단순한 통신 수단이 아니라 제어 루프를 촘촘하게 유지하는 핵심 요소로 제시됩니다. gRPC는 HTTP/2 기반이며 protocol buffers를 사용하기 때문에 낮은 지연의 바이너리 메시징과 양방향 스트림을 기본적으로 제공합니다. 저자들은 로컬 네트워크에서 SmolVLA를 NVIDIA RTX 4090에 호스팅했을 때 왕복 지연을 100ms 미만으로 유지할 수 있었다고 설명합니다. RobotClient는 관측을 gRPC로 PolicyServer에 보내고, PolicyServer는 관측을 추론 가능한 형태로 준비한 뒤 행동 청크를 반환합니다. 이러한 구조 덕분에 로봇은 서버 추론이 끝날 때까지 멈추지 않고 현재 큐의 행동을 소비할 수 있습니다.

7. RobotClient의 큐 관리와 행동 청크 집계

RobotClient는 로컬 행동 큐의 길이를 계속 감시하고, 큐 길이가 설정된 청크 크기 임계값 아래로 내려가면 새 관측을 서버로 보냅니다. 이 임계값은 최대 청크 크기에 대한 비율로 표현되며, 계산 부하와 반응성 사이의 균형을 조절하는 트리거 조건 역할을 합니다. 관측은 단일 RPC가 아니라 스트리밍 방식으로 전송되는데, 고해상도 다중 카메라 캡처 같은 관측 데이터가 일반적인 최대 메시지 크기인 4MB를 넘을 수 있기 때문입니다. 새 행동 청크가 도착하면 클라이언트는 현재 큐에 남아 있는 행동과 들어온 청크의 중첩 구간을 집계합니다. 이때 단순 교체나 시간 가중치를 둔 혼합 같은 전략을 사용할 수 있고, 사용자가 aggregate_fn 형태의 맞춤 함수를 제공해 중첩 타임스텝별 처리 방식을 바꿀 수 있습니다.

8. PolicyServer의 관측 처리와 불필요한 추론 억제

PolicyServer는 RobotClient로부터 관측을 받은 뒤, 추론에 사용할 수 있도록 관측 정리 과정을 수행합니다. 글은 이 과정이 키 매칭, 전처리, 추론 준비의 세 단계로 구성된다고 설명합니다. 준비된 관측은 마지막으로 추론에 사용된 관측과 비교되며, 너무 비슷한 관측을 반복 처리해 유사한 행동을 계속 만들고 다시 유사한 관측으로 돌아가는 루프를 피하기 위한 목적입니다. 비교에는 로봇의 변화량을 빠르게 근사할 수 있는 joint-space 유사도가 사용됩니다. 이 지표는 물체 위치 변화나 외란처럼 환경의 동적 변화에는 적응적이지 않지만, 저자들은 대부분의 경우 불필요한 추론과 상태 붕괴를 피하는 데 효과적인 절충이라고 설명합니다.

9. deadlock 회피와 최신 관측 처리 원칙

서버 측 유사도 필터링이 있더라도, 어떤 관측을 반드시 처리해야 하는지에 대한 최종 통제는 RobotClient가 유지합니다. 클라이언트가 must_go=True로 태그를 붙여 보낸 관측은 유사도 기준과 무관하게 처리되며, 이는 deadlock을 피하기 위한 중요한 장치로 설명됩니다. 또한 PolicyServer가 항상 최신 관측을 처리하도록, 이전 관측 처리가 성공적으로 끝날 때까지 들어오는 관측을 막는 방식이 사용됩니다. 이를 위해 서버의 큐를 활용해 서버가 처리 준비가 되기 전에는 관측이 누적되지 않도록 합니다. 제공된 원문 범위에서는 클라이언트가 1/fps초마다 서버에 ping을 보내지만, 이전 관측 처리 상태에 따라 실제 처리 큐에 들어가는 시점이 제어된다는 흐름까지 제시됩니다.

10. 성능 효과와 실제 적용 의미

글은 비동기 추론을 통해 동일한 정책을 사용하면서도 실행 지연을 줄이고 더 적응적인 제어를 얻을 수 있다고 주장합니다. SmolVLA에서 이 방식을 도입한 결과, 작업 성공률은 비교 가능한 수준을 유지하면서 작업 완료 시간이 약 2배 빨라졌다고 설명합니다. 이는 단순히 추론 서버를 빠르게 만드는 문제가 아니라, 예측과 실행을 분리해 로봇이 추론을 기다리지 않도록 만드는 구조적 변화에서 나온 효과입니다. 순차 방식이 실패 후에도 기존 행동 청크를 계속 수행하는 반면, 비동기 방식은 현재 실행 중인 청크가 소진되기 전에 새 관측을 보내고 업데이트된 행동을 받아 회복 시도를 할 수 있습니다. 따라서 이 글의 핵심 메시지는 행동 청크 기반 로봇 정책에서 비동기화가 작업 속도와 반응성을 동시에 개선하는 실용적 제어 패턴이라는 점입니다.

🧾 핵심 주장 / 시사점

  • 행동 청크를 출력하는 정책에서는 모델 자체의 정확도뿐 아니라, 청크를 언제 갱신하고 실행 큐와 어떻게 결합하는지가 실제 로봇 성능을 크게 좌우합니다.
  • 비동기 추론의 장점은 추론 속도를 무한히 높이는 데 있지 않고, 현재 행동 실행 시간과 다음 행동 계산 시간을 겹쳐 로봇의 유휴 시간을 구조적으로 제거하는 데 있습니다.
  • 관측 유사도 필터링, must_go 태그, 청크 임계값, 중첩 집계 함수처럼 작은 제어 장치들이 결합되어야 비동기 구조가 빠르면서도 불필요한 추론이나 deadlock을 피할 수 있습니다.

✅ 액션 아이템

  • 비동기 추론은 RobotClient의 큐 실행과 PolicyServer의 다음 청크 계산을 겹치도록 구조를 재배치한다.
  • 청크 크기 임계값, 중첩 구간, 큐 보강 시점을 함께 조정해 대기 구간이 최소인 동작 흐름을 설계한다.
  • gRPC 통신, 로컬 행동 큐, 관측 전처리, 유사도 필터링 조합의 파라미터를 정해 SmolVLA와 동일 정책 조건에서 2배 단축 효과를 재확인한다.

❓ 열린 질문

  • 청크 길이와 중첩 구간 임계값은 어떤 규칙으로 조정해야 계산·실행 병목을 가장 빨리 완화할 것인가?
  • 관측 전처리와 유사도 필터링이 최신 행동 갱신을 과도하게 억제하는지 어떤 정량 지표로 판단할 것인가?
  • 2배 완료 시간 단축 효과가 과업별로 달라질 때, 어떤 장면·지형 조건에서 성능 편차를 우선 비교할 것인가?

관련 문서

공통 태그와 주제 흐름을 기준으로 같이 보면 좋은 문서를 이어서 제안합니다.