Skip to content

학습 체크포인트 v0.1 (책 6~8부)

Choose a tag to compare

@ady95 ady95 released this 16 Sep 13:49
· 21 commits to main since this release

《로봇 없이 시작하는 Physical AI 따라하기》 6~8부에서 필자가 학습한 체크포인트입니다. 학습을 건너뛰고 평가 실습부터 진행할 때 씁니다.

사용법 (예제 저장소 루트에서):

R=https://github.com/ady95/physicalai_tutorial/releases/download/v0.1-checkpoints

# 6-8: ACT 2차
wget $R/act_so101_v2_10k.tar.gz
mkdir -p outputs/train/act_so101_v2/checkpoints/last
tar xzf act_so101_v2_10k.tar.gz -C outputs/train/act_so101_v2/checkpoints/last
MUJOCO_GL=egl python ch06/eval_act.py --checkpoint outputs/train/act_so101_v2/checkpoints/last/pretrained_model --episodes 20

# 7-4: SmolVLA 파인튜닝
wget $R/smolvla_so101_v2_10k.tar.gz
mkdir -p outputs/train/smolvla_so101_v2/checkpoints/last
tar xzf smolvla_so101_v2_10k.tar.gz -C outputs/train/smolvla_so101_v2/checkpoints/last
MUJOCO_GL=egl python ch07/eval_smolvla.py --checkpoint outputs/train/smolvla_so101_v2/checkpoints/last/pretrained_model --episodes 20

# 8-1-1: 3색 블록 SmolVLA
wget $R/smolvla_multicolor_v2_20k.tar.gz
mkdir -p outputs/train/smolvla_multicolor_v2/checkpoints/020000
tar xzf smolvla_multicolor_v2_20k.tar.gz -C outputs/train/smolvla_multicolor_v2/checkpoints/020000
MUJOCO_GL=egl python ch08/eval_multicolor.py --checkpoint outputs/train/smolvla_multicolor_v2/checkpoints/020000/pretrained_model --episodes-per-color 10
MUJOCO_GL=egl python ch08/diagnose_language.py --checkpoint outputs/train/smolvla_multicolor_v2/checkpoints/020000/pretrained_model
파일 내용 책의 결과 (기본 옵션)
act_so101_v2_10k.tar.gz ACT, 117 episode 데이터셋, 10,000 스텝 (6-7, 6-8) 20회 중 13회 성공 (65%)
smolvla_so101_v2_10k.tar.gz SmolVLA 파인튜닝, 117 episode 데이터셋, 10,000 스텝 (7-4) 20회 중 6회 성공 (30%)
smolvla_multicolor_v2_20k.tar.gz SmolVLA 파인튜닝, 3색 블록 179 episode 데이터셋, 20,000 스텝 (8-1-1) 성공 0 · 오답 0 · 실패 30. 언어 일치 18/60, 문장에 따라 바뀐 배치 4/20

필자가 새로 clone한 예제 저장소에서 위 명령을 그대로 실행해 표의 숫자가 똑같이 나오는 것을 확인했습니다(RTX 3060). GPU 종류가 다르면 조금 달라질 수 있습니다.

SmolVLA 평가와 noise seed

SmolVLA는 행동을 만들 때마다 무작위 noise에서 출발합니다. 예제 저장소의 평가 스크립트는 episode(또는 블록 배치)마다 noise seed를 고정하므로 같은 체크포인트면 같은 결과가 나옵니다. 시작 seed는 --noise-seed 로 바꿀 수 있습니다.

seed에 따라 결과가 크게 흔들립니다. 7-4의 117 episode 모델은 seed 0, 100, 200에서 각각 30%, 35%, 5%였고, 60회 평균 23%입니다(43 episode 모델도 평균 23%). 8-1-1의 3색 모델은 seed 100에서 성공 1 · 오답 2, seed 200에서 0 · 0이었습니다.

8-1-1의 3색 블록 체크포인트에 대하여

성공률이 0%에 가까운 체크포인트를 일부러 함께 올립니다. 8-1과 8-1-1은 "왜 안 되는지를 재는 방법"을 다루는 장이고, 그 진단을 독자가 학습 없이 직접 재현해 볼 수 있어야 하기 때문입니다.

데이터를 두 배(86 → 179 episode), 학습을 두 배(10,000 → 20,000 스텝)로 늘려 학습 손실은 0.031에서 0.013으로 떨어졌지만, 같은 장면·같은 noise에서 문장만 바꿨을 때 손이 가는 블록은 20개 배치 중 4개에서만 바뀌었고 명령과의 일치 비율은 우연 수준이었습니다. 자세한 해석과 원인 가설은 책 8-1-1에 있습니다.

🤖 Generated with Claude Code