LeRobot documentation

Wall-OSS-0.5

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Wall-OSS-0.5

Wall-OSS-0.5는 XSquare Robot의 4B 비전-언어-액션 모델입니다. Qwen2.5-VL 비전-언어 백본과 연속적인 flow-matching 액션 전문가를 결합합니다.

LeRobot는 wall_oss_05 정책 유형과 lerobot/wall-oss-0.5 체크포인트를 통해 Wall-OSS-0.5를 제공합니다.

wall_oss_05와 기존 wall_x 정책은 서로 다른 WALL 릴리스를 대상으로 합니다. Wall-OSS-0.5 체크포인트와 함께 wall_oss_05를 사용하세요.

모델 개요

Wall-OSS-0.5는 카메라 관측값, 로봇 상태, 자연어 작업을 조건으로 동작을 생성합니다. 이 정책은 flow matching을 사용하여 연속 동작의 청크를 예측합니다. 그 비전-언어 전문가(expert)는 캡셔닝, 시각 질의응답, grounding, 언어 하위 작업에 대한 텍스트 생성도 수행할 수 있습니다.

발행된 모델은 다음을 사용합니다:

  • 26차원의 정규화된 상태 및 동작 표현
  • 32단계 액션 청크;
  • q01/q99 범위 정규화;
  • 10단계 플로우 샘플러
  • 시각 및 언어 입력을 위한 Qwen2.5-VL.

기본 체크포인트는 배포 전에 대상 로봇 및 작업 데이터셋으로 파인튜닝하는 데 사용됩니다.

LeRobot 통합의 범위

  • policy.type=wall_oss_05의 표준 구성 및 Hub 체크포인트 로딩.
  • Qwen2.5-VL의 네이티브 비전-언어 처리 및 Wall 액션 전문가.
  • 연속 x-prediction flow 학습 및 10단계 Euler 샘플링.
  • 레시피 기반 텍스트 교차 엔트로피 및 텍스트/액션 결합 미세 조정.
  • VQA, grounding, 캡션, 언어 하위 작업에 대한 네이티브 텍스트 생성.
  • LeRobot의 인터랙티브 롤아웃를 통한 직접 텍스트 생성.
  • LeRobot q01/q99 프로세서를 사용하여 정규화된 26D 상태 및 동작 입력
  • lerobot-train를 사용한 파인튜닝과 표준 정책 API를 통한 추론.

설치 요구 사항

Wall-OSS-0.5는 CUDA를 지원하는 NVIDIA GPU가 필요합니다. 정책 의존성과 함께 LeRobot을 설치하세요:

pip install "lerobot[wall_oss_05]"

LeRobot 소스 체크아웃의 경우:

uv sync --extra wall_oss_05

이 정책은 LeRobot에 네이티브로 구현되어 있습니다. 정책 관련 의존성은 Transformers뿐이며, 별도의 Wall-X 체크아웃은 필요하지 않습니다. 레시피 기반 처리에는 dataset extra도 필요합니다. 언어 쿼리 또는 학습을 위해 uv sync --extra wall_oss_05 --extra training을 설치하세요(학습에는 dataset 지원이 포함됩니다). dataset extra 없이 액션만 처리하려면 --policy.recipe=null을 설정하세요.

체크포인트

변형LeRobot 체크포인트사용 목적
Base 4Blerobot/wall-oss-0.5Canonical 26D 미세 조정 및 배포

체크포인트에는 정책 구성, Qwen 프로세서 및 토크나이저, 모델 가중치, 저장된 LeRobot 전/후처리기, 정규화 통계, 변환 메타데이터가 포함되어 있습니다. 이는 기본 체크포인트이므로, 작업 수준 결과를 보고하기 전에 대상 로봇 및 작업을 대상으로 파인튜닝을 수행해야 합니다.

사용

다음과 같이 정책을 선택합니다:

--policy.type=wall_oss_05

다음으로 LeRobot 체크포인트에서 초기화합니다:

--policy.path=lerobot/wall-oss-0.5

저장된 LeRobot 체크포인트를 평가하거나 배포할 때는 --policy.path=your-org/your-finetuned-checkpoint를 사용하세요.

텍스트 및 VQA

Wall-OSS-0.5는 공유된 정책 텍스트 계약을 사용합니다. 런타임은 query_kind와 query_text를 제공하고, 일반적인 정책 입력 프로세서를 실행합니다:

request = {
    **observation,
    "query_kind": "vqa",
    "query_text": "Which object is closest to the right gripper?",
}
processed_batch = preprocessor(request)
answer = policy.generate_text(processed_batch)

vqa는 호출자의 질문을 보존합니다. next_subtask는 WallOSS05Config가 소유한 레시피를 적용합니다. 이 정책은 generate_text(processed_batch)를 상속하고 supports_text_generation 및 generate_text를 오버라이드합니다. 생성 과정은 체크포인트의 연결된 Qwen 어휘 헤드와 비전-언어 전문가를 사용하며, 별도의 VLM을 호출하지 않습니다.

Wall의 동작 예측을 조건부화하기 위해 언어 런타임이 서브태스크를 생성할 수 있습니다:

lerobot-rollout \
  --policy.path=your-org/your-finetuned-wall-oss-0.5 \
  --policy.device=cuda \
  --task="clear the table" \
  --interactive=true

/start 이후에는 /vqa <question>, /autosteer <goal>, 또는 /subtask <text>를 사용하세요.

Wall은 유용한 embodied VQA 및 grounding 기능을 유지하지만, 로봇 관측에 특화되어 있으며 범용 VLM을 대체할 목적으로 설계되지 않았습니다.

데이터 요구 사항

Wall-OSS-0.5는 내부적으로 표준 26D 상태 및 액션 레이아웃으로 동작합니다. 더 좁은 상태 및 액션 특징은 해당 데이터셋의 통계값으로 정규화된 후, 모델에 맞게 26D로 zero-padding됩니다. 패딩된 액션 차원은 학습 손실 계산에서 제외됩니다. 출력은 정규화 해제 전에 데이터셋의 액션 폭으로 잘립니다. 예를 들어, 8D 상태와 7D 액션을 가진 경우 7D 액션이 반환됩니다. postprocess_action_dim을 사용하면 추가적인 출력 크롭을 적용할 수 있습니다. 패딩은 관절 좌표나 컨트롤러 규약을 재매핑하지 않으므로, 호환되는 값을 제공해야 합니다.

camera_key_mapping을 사용하여 이미지 입력을 구성합니다. 이 매핑은 각 LeRobot 이미지 특성을 Wall 카메라 슬롯과 연결합니다. 기본 체크포인트는 face_view와 right_wrist_view를 사용합니다.

데이터셋 작업 문자열은 정책의 언어 지시사항으로 전달됩니다. 기록, 학습, 평가 시 일관된 작업 설명을 사용하세요.

상태 및 동작 q01/q99 정규화는 저장된 LeRobot preprocessor와 postprocessor에 의해 처리됩니다. 추론 시에는 체크포인트와 함께 저장된 통계가 복원됩니다. lerobot-train으로 파인튜닝을 수행하면 학습 데이터셋의 통계가 사전 학습된 프로세서의 통계를 대체하며, 새로운 체크포인트와 함께 저장됩니다.

게시된 체크포인트는 네이티브 LeRobot 정책 상태 딕셔너리 및 현재 pre/postprocessor 형식을 사용합니다. 가중치는 분산 수집(distributed gathers) 및 메인 프로세스 쓰기 게이트를 포함한 공유 정책 영속성 코드를 통해 로드 및 저장됩니다. 설정은 안정적인 토크나이저 자산 참조를 유지하며, 어떤 작업 디렉터리에서도 로드할 수 있습니다.

학습

LeRobot의 표준 학습 명령을 사용하여 기본 체크포인트를 미세 조정합니다:

학습 명령어 예시

lerobot-train \
  --dataset.repo_id=your-org/your-dataset \
  --policy.path=lerobot/wall-oss-0.5 \
  --policy.repo_id=your-org/wall-oss-0.5-your-task \
  --output_dir=outputs/train/wall_oss_05 \
  --job_name=wall_oss_05_finetune \
  --policy.device=cuda \
  --batch_size=1 \
  --steps=20000

Wall-OSS-0.5는 4B 파라미터 모델이므로 작은 배치 크기부터 시작하세요. 사용 가능한 GPU 메모리에 따라 배치 크기를 늘리거나, 분산 학습 구성을 통해 그라디언트 축적을 사용하세요.

카메라 이름이 다른 데이터셋의 경우, 해당 기능 키를 Wall 카메라 슬롯에 매핑합니다. 예를 들어, top과 wrist에 대해 다음 옵션을 추가합니다:

--policy.camera_key_mapping='{"observation.images.top":"face_view","observation.images.wrist":"right_wrist_view"}'

Fine-tuning은 데이터셋에서 카메라 형상과 상태/행동 폭을 해결하며, --policy.path로 기본 체크포인트를 로드하는 경우에도 마찬가지입니다.

언어 주석으로 학습

WallOSS05Config가 소유한 레시피는 기본적으로 LeRobot의 선택적 언어 컬럼을 사용합니다. 이 레시피의 조인트 서브태스크 레시피는 하나의 인과적 시퀀스에서 어시스턴트 응답과 연속 액션 청크를 감독합니다:

lerobot-train \
  --dataset.repo_id=your-org/your-language-annotated-dataset \
  --policy.path=lerobot/wall-oss-0.5 \
  --policy.use_language_recipe=true \
  --policy.text_loss_weight=0.1 \
  --policy.flow_loss_weight=1.0 \
  --policy.device=cuda \
  --batch_size=1 \
  --steps=20000

Recipe 스트림은 각 샘플에 대해 어떤 목표가 실행되는지 결정합니다:

  • 대상화된 어시스턴트 턴은 다음 토큰 텍스트 교차 엔트로피를 수신합니다;
  • low_level 턴은 연속적인 흐름-행동 감독을 받으며;
  • low_level 레시피에 타겟팅된 어시스턴트 턴이 포함된 경우, 액션 토큰이 감독된 텍스트에 주의를 기울이면서 두 손실을 모두 받습니다.

대상 assistant 페이로드와 해당 <|im_end|> 토큰만 언어 레이블로 사용됩니다. 사용자 프롬프트, 패딩, 이미지, 고유수용성 감각(proprioception), 연속 동작 쿼리 토큰은 텍스트 교차 엔트로피에서 마스킹됩니다. 주석이 없는 행은 원래의 동작 전용 프롬프트와 손실을 유지합니다. use_language_recipe=false를 설정하면 주석 렌더링을 비활성화하고, recipe=null을 설정하면 두 레시피 렌더러 모두를 비활성화합니다. 명시적으로 recipe_path를 지정하면 내장된 레시피를 덮어씁니다. 새로운 미세 조정에서는 해당 레시피와 학습 통계로부터 프로세서를 다시 구축하며, 재개된 학습 및 롤아웃에서는 체크포인트에 저장된 프로세서와 통계를 복원합니다.

언어 열 및 레시피에서 어노테이션 스키마와 레시피 구조를 확인하세요. recipe_path는 명시적인 외부 YAML 오버라이드를 가리킬 수 있으며, LeRobot은 공유된 기본 레시피 파일을 제공하지 않습니다.

주요 구성 매개변수

매개변수기본값설명
pretrained_name_or_pathlerobot/wall-oss-0.5토크나이저 및 이미지 프로세서 자산 소스
tokenizer_revisionNone가중치 리비전과 별도로 지정할 수 있는 선택적 기본 토크나이저 고정
chunk_size32각 청크당 예측되는 액션의 수
n_action_steps32재계획 전에 실행된 예측된 동작의 수
camera_key_mapping얼굴과 오른손 손목 뷰이미지 특징 키를 모델 카메라 슬롯과 연결합니다
use_language_recipetruepolicy config에 저장된 레시피를 활성화합니다
recipe_pathNone선택 사항: 명시적 외부 레시피 오버라이드
text_loss_weight0.1감독된 어시스턴트 토크로스 엔트로피의 가중치
flow_loss_weight1.0연속 흐름-행동 손실의 가중치
tokenizer_max_length1000최대 결합 시선-언어-액션 토큰 시퀀스 길이
deviceautoWall-OSS-0.5에는 cuda를 사용합니다

평가 및 추론

policy 경로로 Hub 저장소 또는 로컬 디렉터리를 전달하여, 표준 LeRobot 평가 또는 로봇 rollout 워크플로에서 fine-tuned checkpoint를 사용하세요.

Wall-OSS-0.5는 flow sampler를 사용하여 연속적인 action chunk를 생성합니다. 현재 policy는 연속 flow branch를 지원하며, autoregressive action branch는 노출되어 있지 않습니다.

각 청크는 카메라 이미지를 인코딩하고 관찰/텍스트 접두사를 한 번만 사전 채웁니다. 10개의 오일러 단계는 접두사의 키와 값을 재사용하고 동작 토큰만 디코딩합니다. 캐시는 각 새로운 관찰에 대해 다시 구축됩니다.

지원되는 시뮬레이터의 경우, lerobot-eval을 통해 파인튜닝된 체크포인트와 환경별 옵션을 제공합니다:

lerobot-eval \
  --policy.path=your-org/your-finetuned-wall-oss-0.5 \
  --policy.device=cuda \
  --env.type=<environment> \
  --env.task=<task> \
  --eval.batch_size=1 \
  --eval.n_episodes=10

기본 체크포인트를 작업별 정책인 것처럼 평가하지 마세요. 정규화된 표현, 정규화 통계, 작업 분포는 파인튜닝된 체크포인트와 일치해야 합니다.

참고

라이선스

Wall-OSS-0.5와 Wall-X는 Apache 2.0 라이선스 하에 배포됩니다.

Update on GitHub