로봇 플릿은 장면을 한 번 인코딩하고 필요할 때만 설명하는 공유 기억을 쓴다
Industrial ReMEmbR: Scaling Spatiotemporal Memory to Robot Fleets
무엇인가
이 논문은 창고 로봇 플릿이 매 순간 관찰한 장면을 재사용 가능한 의미 기억으로 남기는 문제를 다룬다. 기존 ReMEmbR은 단일 로봇이 3초 영상 클립마다 캡션을 생성하고 그 캡션 임베딩을 검색 키로 저장했는데, 이 방식은 로봇 수와 운영 시간에 비례해 비용이 늘고 캡션이 언급하지 않은 장면 디테일은 검색에서 놓칠 수 있다. 플릿 관리자는 통로가 반복적으로 막히는 이유를 여러 로봇의 여러 교대 영상에서 찾아야 하지만, 원본 영상을 모든 로봇에서 계속 업로드하고 저장하는 비용 때문에 장면의 의미 맥락이 플릿 전체에 공유되지 않는다.
어떻게 동작하나
Industrial ReMEmbR은 encode once, interpret continuously, elaborate on demand라는 세 원칙으로 이 문제를 푼다. 각 로봇의 Jetson AGX Xavier에서 iw.encode가 3초 세그먼트마다 세 인코더 서비스를 병렬로 실행한다. Cosmos-Embed1은 검색용 768차원 벡터 3 kB를 만들고, Cosmos3-Edge 비전 인코더는 폭 2048의 비전 토큰 60개, 총 247 kB를 만들며, Wan2.2 VAE 인코더는 48×2×30×52 영상 잠재 표현 300 kB를 만든다. 원본 카메라 프레임은 로봇 밖으로 나가지 않고, 이 표현들만 업로드된다. 논문은 같은 인코딩 모델로 이미지 패치에서 사람을 검출해 0으로 만드는 PII 추상화를 지원해 GDPR 배포를 돕는다고 주장한다.
무엇과 다른가
플릿 기억은 Milvus 컬렉션의 한 행에 Cosmos-Embed1 벡터, 로봇 포즈, 촬영 시각, 서버가 계산한 판정을 저장하고, cuVS로 GPU 벡터 인덱스를 가속한다. 비전 토큰과 잠재 표현은 크기가 커서 오브젝트 스토어에 두고 행이 참조한다. 서버의 Nemotron-3-Nano-4B 에이전트는 내용·위치·시간으로 기억을 검색하고, 네 번째 도구로 Cosmos3-Edge 언어 디코더에 캐시된 비전 토큰과 질문을 보낸다. Cosmos3-Edge를 비전-언어 경계에서 쪼개 비전 인코더는 로봇에, 언어 디코더는 온프레미스 서버에 두었기 때문에 쓰기 시점에 캡션을 만들지 않고 질문이 있을 때만 장면을 설명한다. 논문은 캐시 토큰 디코딩이 450회 테스트 모두에서 분할하지 않은 모델 출력을 재현했다고 보고한다. 라이브 의미 교통 지도는 검색 임베딩을 그대로 제로샷 분류기로 재사용한다. 점유 통로와 빈 통로를 설명하는 텍스트 프롬프트들의 평균 프로토타입 p_occ, p_clr을 캐시하고, v^T p_occ > v^T p_clr이면 점유로 판정한다. 이는 두 번의 내적만으로 이뤄지며 별도 탐지기나 캡션 생성기가 필요 없다. 지도 서비스는 10초마다 에이전트를 폴링하고 VDA5050으로 이미 보고된 로봇 포즈를 사용해 구역 상태를 갱신한다.
어떻게 쓰나
실험은 NaVQA와 914프레임 창고 시뮬레이션으로 구성된다. Upgraded ReMEmbR은 Cosmos3-Edge, Nemotron-3-Nano-4B, Cosmos-Embed1 비디오 인덱스로 모델을 교체했고, 검색 재현율은 비슷한 수준을 유지하면서 파싱 불가 답변을 4.5%에서 1.9%로, 첫 시도 파싱 실패를 20.7%에서 13.8%로 줄였다. 에이전트 파라미터는 절반 크기다. NaVQA는 15~30분 길이의 CODa 시퀀스 7개에 걸친 210개 질문으로, 위치 답은 15 m 이내, 시간 답은 2분 이내면 정답이다. 교통 지도 실험은 607개 점유 프레임과 307개 빈 프레임으로 구성되며, 다수 클래스 기준 정확도는 66.4%, 균형 정확도는 50.0%다. 임베딩 판정은 균형 정확도 71.3%로 캡션 기반 최선 대안보다 6.0포인트 높았고, 914프레임 전부를 커버했다. 탐지는 844프레임, 설명은 902프레임만 커버했다. 탐지는 점유 재현율 88.4%지만 빈 통로 재현율 42.3%에 그쳤고, 설명은 빈 통로 재현율 91.1%지만 점유 재현율 27.1%였다. 임베딩 판정은 점유 73.8%, 빈 통로 68.7%로 균형을 잡았다. 에이전트는 원시 판정과 913/914프레임에서 일치했고, 659/914 대 660/914로 거의 같았으며, 대상 기억을 99.6% 검색하고 파싱 불가 답변을 내지 않았다.
전제와 한계
비용 측정도 논문의 핵심 주장이다. 기존 ReMEmbR의 쓰기 시점 캡션 생성은 기억당 평균 4.35초인데, Industrial ReMEmbR의 캐시 토큰 설명은 요청 시 1.25초가 든다. 12초 쓰기 간격으로 100대를 모델링하면 모든 기억에 캡션을 다는 부하는 36.25 GPU 환산인데, 10%만 한 번 설명하면 1.04, 1%면 0.10으로 줄어 34.8배 감소한다. 기억당 평균 3.48회 넘게 설명하지 않으면 지연 설명이 더 싸다. 지도 에이전트는 로봇당 약 0.042 GPU 환산, 100대면 4.2이며, 10% 설명을 더하면 100대 총 5.2 GPU 환산으로 캡션만 다는 36.25보다 낮다. NIM FP8은 동시 요청 1~8개에서 236~1217 토큰/초로 Ollama Q8_0의 203~235 토큰/초보다 높았고, GPU 한 장으로 10초 폴링하는 로봇 24대의 지도 갱신 95%를 20초 안에 처리하며 두 장이면 48대 이상을 처리한다. 저장은 기억당 0.55 MB 오브젝트와 3.2 kB 인덱스 행이 들고, 12초 간격에서 로봇 한 대가 8시간에 1.3 GB, 평균 0.37 Mbit/s를 올린다. 100대면 하루 131 GB 오브젝트와 0.768 GB 인덱스, 한 달 3.9 TB와 23 GB가 된다. 엣지에서는 Cosmos-Embed1이 6프레임에 11.76초로 가장 느려 인코딩 시간을 지배했고, 비전 인코더는 프레임당 196 ms, Wan2.2 VAE는 5프레임 FP32에 6.46초가 걸렸다. 세 인코더는 6.55 GiB를 쓰며 기존 VILA 캡셔너 피크 26.3 GiB보다 메모리를 덜 쓴다. 재구성은 150프레임에서 39.7 dB PSNR, 0.974 SSIM, 0.0052 LPIPS를 냈고, BF16으로 줄여도 저장이 절반이 되며 지표 변화는 0.1% 미만, Wan2.2 디코더 중앙값은 1.76초다. cuVS GPU 정확 검색은 32 동시 질의에서 초당 910건으로 CPU 정확 검색 47건보다 빨랐고, 100만 행에서 19배 차이를 보였다.
개발자 관점에서 이 논문은 다중 로봇 기억 시스템을 쓸 때 쓰기 경로와 질의 경로를 분리하라는 설계 지침을 준다. 엣지에서 원본 영상 대신 검색 임베딩, 비전 토큰, 잠재 표현을 한 번만 만들고, 서버에서는 검색된 기억에 대해서만 VLM 디코더를 호출하며, 검색 임베딩을 별도 제로샷 분류에 재사용하는 방식이다. 인코더, 벡터 인덱스, 오브젝트 스토어, NIM 에이전트, 온디맨드 디코더를 독립 버전 서비스로 두어 각각 확장·교체할 수 있다는 점도 실무적이다. 다만 도입 전에는 Jetson에서 Cosmos-Embed1 인코딩 지연, 지도 폴링 주기가 서버 부하를 좌우한다는 점, 기억당 저장 증가와 월별 누적량, PII 추상화가 실제 규제 요구를 충족하는지, 장면 안의 텍스트가 에이전트에 입력되는 프롬프트 인젝션 위험을 확인해야 한다.
저자들이 밝힌 한계도 분명하다. 프로덕션 배포에는 추가 엔지니어링이 필요하고, Jetson AGX Xavier에서 가장 느린 Cosmos-Embed1이 TensorRT 최적화와 파인튜닝의 첫 대상이다. 에이전트 프로비저닝은 지도 갱신 작업량과 폴링 주기를 함께 고려해야 한다. 저장은 모든 기억을 전부 보관해 선형으로 늘어나며, 100대 기준 모델링에서 한 달 3.9 TB에 이른다. 비용 수치는 12초 쓰기 간격, 8시간 운용, 10% 설명 같은 가정과 단일 GPU 직렬화 추정에 기반하고, 캡션 비용은 배치 없이 계산되어 배치 처리하면 격차가 줄어든다. 또한 카메라가 읽은 장면 속 텍스트가 에이전트 명령처럼 해석될 수 있는 물리적 프롬프트 인젝션을 공격면으로 인정하며, 이를 막는 iw.shield는 개발 중이라고 밝힌다.