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가 다를 수 있다. 최소한 두 지표를 함께 기록한다.