dsta022/Loop-Engineering-for-VLA

Toolkit for collecting, merging, auditing, visualizing, and publishing RGB/RGB-D LeRobot VLA datasets.

Loop Engineering for VLAnything – 고품질 비전-언어-액션 로봇 데이터셋 구축을 위한 툴킷

무엇인가요

  • 연구자들이 비전-언어-액션 (VLA) 모델(예: lerobot 생태계 내 모델)을 위한 다중 모달 로봇 학습 데이터셋을 기록, 병합, 감사, 확장, 그리고 반복 개선할 수 있도록 해주는 오픈소스 파이썬 툴킷입니다.
  • 표준 RGB만 있는 LeRobot 데이터셋 손실 없는 깊이 사이드카를 포함하는 RGB-D 데이터셋과 호환되며, 현재 개발 중인 시각-촉각 모드도 지원합니다.
  • 기본적으로 모델 독립적입니다. 무거운 모델 가중치를 불러오지 않고, 나중에 평가기, 어노테이터, 또는 정책 학습기 등을 플러그인으로 추가할 수 있습니다.

왜 중요한가요

  • 고품질 VLA 데이터는 얻기 어렵고, 비디오, 깊이, 또는 액션 로그의 작은 오류도 하류 학습을 망가뜨릴 수 있습니다.
  • 이 툴킷은 모든 아티팩트(비디오, 관절 상태, 언어 캡션, 인간 피드백)를 일등 사이드카로 취급하여 원본 기록을 절대 수정하지 않아, 감사 가능하고 재현 가능한 데이터를 보장합니다.
  • 보수적이고 규칙 기반의 품질 감사를 제공하여 명백히 손상된 에피소드는 자동으로 제거하고, 경계 사례는 인간 검토를 위해 표시합니다.

핵심 구성 요소

영역 엔트리포인트 (CLI) 기능
기록 vla-merge, vla-audit, … (아래 표 참조) 프레임워크에 의존하지 않는 레코더로 SO-100/SO-101 로봇 암 및 Orbbec, Intel RealSense, 또는 일반 OpenCV 카메라와 직접 통신합니다. 선택적 깊이 사이드카와 인간 지도 정책 피드백을 포함한 LeRobot-v3.0 호환 데이터셋을 생성합니다.
병합 vla-merge 여러 LeRobot 데이터셋(RGB만, RGB-D 등)을 하나의 물리적 데이터셋으로 통합하고, 인덱스, 메타데이터, 깊이 파일을 재작성합니다.
감사 vla-audit 결정론적 구조적 검사(메타데이터, 타임스탬프, 비디오 디코딩, 깊이 PNG 무결성)에 더해, 선택적 의미적 검사도 제공합니다. 정책 체크포인트 또는 사용자 정의 평가기로 에피소드가 작업 설명을 얼마나 잘 따르는지 점수를 매깁니다.
정리 vla-clean 감사에서 생성된 유지/검토/삭제 목록을 기반으로 깨끗한 데이터셋을 구축합니다.
언어 확장 vla-enrich 내장된 운동학 어노테이터 또는 사용자 제공 언어 어노테이터 플러그인을 사용하여 트래잭터리-언어 사이드카(하위 작업, 이벤트, 상태 설명)를 추가합니다.
피드백 수집 vla-feedback-build 배포된 정책에 대한 인간의 개입을 기록하고, 사이드카로 저장한 후, 나중에 학습 세트에 병합합니다.
정책 반복 vla-iterate 간단한 학습-평가-승격-배포 루프로, 어떤 lerobot 체크포인트에도 연결 가능합니다.
업로드 vla-push 최종 데이터셋을 Hugging Face에 푸시합니다(리포지토리에는 사용 가능한 HF 데이터셋 DerekLX/lerobot_derek_depth가 포함되어 있습니다).
유틸리티 도구 vla-completeness, vla-calibrate, vla-depth-vis, vla-task-studio, vla-language-studio 데이터셋의 건전성 검사, 임계값 캘리브레이션, 깊이 시각화, 인터랙티브 프로파일/어노테이션 편집을 위한 보조 도구입니다.

시작 방법

  1. Python 3.12 이상을 설치하고, conda 환경을 생성한 후 ffmpeg를 추가합니다(비디오 처리에 필수).
  2. 필요한 레코딩 확장 기능을 포함하여 리포지토리를 편집 가능 모드로 설치합니다. 예시:
    conda create -n vla python=3.12 -y && conda activate vla
    conda install -c conda-forge ffmpeg -y
    pip install -e "[record]"   # 나중에 [realsense] 또는 [orbbec]로 카메라 SDK 옵션 종속성 추가 가능
    
  3. record/ 스크립트를 사용하여 새로운 에피소드를 기록합니다(RGB 또는 RGB-D). Orbbec 카메라 예시:
    python record/rgbd_record/find_cameras.py orbbec
    python record/rgbd_record/record.py --config_path=record/rgbd_record/configs/record_rgbd.yaml
    
  4. 여러 원시 데이터셋을 vla-merge로 하나의 통합 폴더로 병합합니다.
  5. 구조적 감사(vla-audit)를 실행하여 keep_episodes.txt, review_episodes.txt, drop_episodes.txt를 생성합니다.
  6. (옵션) 내장된 semantic_backends.vla_checkpoint_evaluator와 같은 의미적 평가기 플러그인을 연결하여 정책 체크포인트와 비교해 에피소드를 점수 매깁니다.
  7. vla-enrich를 사용하여 유지된 에피소드에 언어 사이드카를 추가합니다.
  8. 배포된 정책에 대한 인간 피드백을 수집한 경우, vla-feedback-build로 피드백 데이터셋을 생성하고, 다음 학습 라운드를 위해 vla-iterate에 다시 입력합니다.
  9. 최종 감사된 데이터셋을 vla-push로 Hugging Face에 푸시합니다.

누가 사용해야 하나요

  • 재현 가능한 데이터 엔지니어링 파이프라인을 필요로 하는 비전-언어-액션 또는 ** embodiment AI** 모델을 구축하는 연구자.
  • 이미 lerobot 데이터 포맷을 사용하고 있으며, 깊이 또는 촉각 사이드카를 추가하고 싶지만 기존 코드를 다시 작성하고 싶지 않은 로봇 연구소.
  • 클로즈드 루프 데이터 수집 루프를 원하는 팀: 기록 → 감사 → 확장 → 학습 → 피드백 수집 → 반복.

핵심 설계 원칙

  1. 보수적인 결정 – 단지 명백한 실패만 제거하고, 모호한 사례는 검토 대상으로 표시.
  2. 사이드카 우선 – 깊이, 언어, 피드백, 심지어 학습 가중치도 핵심 데이터셋 외부에 저장되어 원본 기록을 보호.
  3. 플러그인 가능하고 기본적으로 모델 독립적 – 기본 설치에는 가중치가 포함되지 않음. 평가기, 어노테이터, 정책은 간단한 module:attribute 플러그인 문자열로 추가 가능.

문서 및 커뮤니티

  • 전체 정적 웹사이트(https://dsta022.github.io/Loop-Engineering-for-VLA/)에서 플레이북, 플러그인 계약, 감사 전략 문서를 제공합니다.
  • CI는 Linux 및 Windows에서 합성 데이터로 유닛 테스트를 실행합니다.
  • 리포지토리에는 예제 설정 파일, 합성 테스트 세트, 사용 가능한 Hugging Face 데이터셋이 포함되어 있습니다.

위 모든 세부 정보는 리포지토리의 README에서 직접 가져왔으며, 추가 기능은 추측되지 않았습니다.

관련