5.8 학습 파이프라인

5.8.1 데이터 사전 점검

python code/inspect_lerobot_v3.py \
  --repo-id USER/my_so101_dataset \
  --revision DATASET_COMMIT_SHA \
  --episode 0

환경 의존 예제이며 설치한 LeRobot API에 따라 import 경로가 달라질 수 있다. --revision에는 이동하는 main 대신 dataset commit SHA를 사용한다. 최소 점검 항목은 다음과 같다.

  • 모든 camera key와 resolution
  • state/action shape와 dtype
  • NaN/Inf, joint limit 초과
  • timestamp 역전과 frame gap
  • episode length 분포
  • task string과 실제 행동 일치
  • normalization stats의 합리성

5.8.2 기본 fine-tuning 예

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/my_so101_dataset \
  --dataset.revision=${DATASET_COMMIT_SHA} \
  --batch_size=16 \
  --steps=20000 \
  --output_dir=outputs/train/so101_smolvla \
  --job_name=so101_smolvla \
  --policy.device=cuda

공식 예시는 더 큰 batch를 제시하기도 하지만 VRAM에 맞춰 작은 값에서 시작한다. gradient accumulation을 쓸 경우 effective batch를 기록한다. “epoch 50”보다 dataset 크기와 batch에 독립적인 update step이 실험 비교에 편리할 수 있다.

5.8.3 LoRA 예

lerobot-train \
  --policy.path=lerobot/smolvla_base \
  --dataset.repo_id=${HF_USER}/my_so101_dataset \
  --dataset.revision=${DATASET_COMMIT_SHA} \
  --steps=20000 \
  --batch_size=16 \
  --peft.method_type=LORA \
  --peft.r=16 \
  --peft.lora_alpha=32 \
  --output_dir=outputs/train/so101_smolvla_lora

위 명령은 예시다. 정확한 flag는 고정한 LeRobot commit의 --help로 확인한다.

5.8.4 monitoring

training loss만 보지 않는다.

  • validation action loss
  • dimension별 action error
  • predicted action smoothness와 limit violation
  • fixed offline episode replay
  • 실제/시뮬레이션 closed-loop task success
  • variation별 성공률과 failure taxonomy

checkpoint 선택은 validation loss 최소점과 실제 success가 다를 수 있다. 최소한 두 지표를 함께 기록한다.

이 장의 예제 코드·설정 파일 (5)

이 장의 자가 점검·가상실습