← 목록으로
TL;DR
- 260611 재학습 시도(jobs 14378~14382): midA / midB / mid_dinov2 / mid_clip / mid_vit 5 트랙 전부 즉시 실패
- 원인:
resume=False인 상태에서 이전 실행이 남긴 빈 출력 디렉토리 존재 → FileExistsError
- 조사 결과:
checkpoints/가 완전히 비어 있음 — 실질적 학습 0 step, 디렉토리만 생성된 상태
- base 트랙만 정상(ckpt 020000 존재). mid 5 트랙은 빈 디렉토리 삭제 후 재제출 필요
1 배경/목적 (왜)
260606 디스크 정리 사고로 frappe 전 트랙 ckpt ~200GB가 삭제됐다. 이후 코드를 .claude jsonl에서 복구하고, 260608 세션에서 mid 6 트랙 재학습을 jobs 12966~12971로 제출했다. base(12966)는 7h38min 정상 완료했으나, mid 5 트랙(12967~12971)은 비정상적으로 단시간에 COMPLETED 상태가 됐다.
단시간 완료가 실제 학습인지, 에러로 인한 즉시 종료인지 확인하기 위해 260611에 재제출(jobs 14378~14382)을 시도했다.
선행 이상 징후: 260608 당시 mid_vit(12971)은 CANCELLED, 나머지 mid 4 트랙은 "단시간 완료(이상)"으로 기록됐으나 ckpt 검증은 이루어지지 않았음.
2 작업 내용 (어떻게)
260611 09:28에 mid 5 트랙 재학습 jobs 제출:
sbm "bash scripts/finetune_pi05_frappe.sh midA" --qos=own --gres=gpu:4 ... → job 14378
sbm "bash scripts/finetune_pi05_frappe.sh midB" --qos=own --gres=gpu:4 ... → job 14379
sbm "bash scripts/finetune_pi05_frappe.sh mid_dinov2" --qos=own --gres=gpu:4 ... → job 14380
sbm "bash scripts/finetune_pi05_frappe.sh mid_clip" --qos=own --gres=gpu:4 ... → job 14381
sbm "bash scripts/finetune_pi05_frappe.sh mid_vit" --qos=own --gres=gpu:4 ... → job 14382
각 job은 시작 후 1~2분 만에 종료됐다. 260612에 SLURM 출력 파일과 checkpoint 디렉토리를 직접 조사해 원인을 확인했다.
에러 메시지 (frappe_midA_14378.out)
Traceback (most recent call last):
...
raise FileExistsError(
FileExistsError: Output directory
/home/nas_main/taewoongkang/repos/Robotics/GR00T-Dreams/outputs/pi05_frappe_midA
already exists and resume is False.
Please change your output directory so that
/home/nas_main/taewoongkang/repos/Robotics/GR00T-Dreams/outputs/pi05_frappe_midA
is not overwritten.
동일한 FileExistsError가 midB, mid_dinov2, mid_clip, mid_vit 모두에서 발생했다(각 rank 0~3 전부 exit code 1).
3 결과 (수치)
| Job ID | Track | 경과 시간 | SLURM State | checkpoints/ 내용 | 실질 학습 |
| 12966 (1차) | base | 7h38min | COMPLETED | 020000/ + last/ | ✅ 20K step 정상 |
| 14378 (2차) | midA | 00:01:46 | COMPLETED | (비어 있음) | ❌ 즉시 crash |
| 14379 (2차) | midB | 00:01:49 | COMPLETED | (비어 있음) | ❌ 즉시 crash |
| 14380 (2차) | mid_dinov2 | 00:00:28 | COMPLETED | (비어 있음) | ❌ 즉시 crash |
| 14381 (2차) | mid_clip | 00:00:26 | COMPLETED | (비어 있음) | ❌ 즉시 crash |
| 14382 (2차) | mid_vit | 00:01:26 | COMPLETED | (비어 있음) | ❌ 즉시 crash |
root cause: 1차 재학습(12967~12971)이 학습 시작 전 출력 디렉토리만 생성하고 crash했음. 학습 코드가 시작 시 output_dir를 미리 만들고 resume=False로 실행되므로, 2차 제출이 기존 디렉토리를 발견하고 즉시 FileExistsError를 발생시킴.
1차 crash 원인 미확인: 12967~12971이 왜 단시간에 종료됐는지(SLURM output 파일이 남아 있다면 확인 가능)는 260612 현재 미조사. 가능성: 디렉토리 관련 예외, GPU 할당 문제, 또는 preempt.
현재 checkpoint 디렉토리 상태
GR00T-Dreams/outputs/
pi05_frappe_base/ → checkpoints/020000/ + last/ ✅ 정상
pi05_frappe_midA/ → wandb/ 만 존재, checkpoints/ 없음 ❌
pi05_frappe_midB/ → wandb/ 만 존재, checkpoints/ 없음 ❌
pi05_frappe_mid_clip/ → wandb/ 만 존재, checkpoints/ 없음 ❌
pi05_frappe_mid_dinov2/ → wandb/ 만 존재, checkpoints/ 없음 ❌
pi05_frappe_mid_vit/ → wandb/ 만 존재, checkpoints/ 없음 ❌
4 Takeaway
- 260606 데이터 손실 복구 작업에서 base만 실제 재학습됐고 mid 5 트랙은 여전히 ckpt가 없는 상태다.
- SLURM COMPLETED 상태가 학습 성공을 의미하지 않는다 — job shell이 정상 종료해도 내부 training 코드가 crash하면 COMPLETED로 보인다. checkpoint 존재 여부를 직접 확인해야 한다.
- 재학습 재시도 전에 빈 출력 디렉토리를 삭제하거나
resume=True를 명시해야 한다.
재제출 권장 방법
가장 안전한 방법은 빈 디렉토리를 삭제 후 재제출:
rm -rf GR00T-Dreams/outputs/pi05_frappe_mid{A,B,_clip,_dinov2,_vit}
# 그 후 동일 sbm 명령으로 재제출
또는 학습 스크립트에 --resume true 플래그를 추가하면 디렉토리가 있어도 이어서 학습한다(step 0부터 시작). 단, 학습 코드가 resume 모드를 지원하는지 먼저 확인 필요.
5 Next Steps
- 즉시: 1차 재학습(12967~12971)의 SLURM output 파일을 확인해 원래 crash 원인 파악
- 즉시:
rm -rf GR00T-Dreams/outputs/pi05_frappe_mid{A,B,_clip,_dinov2,_vit} 실행
- 즉시: mid 5 트랙 3차 재제출 (각 ~3.7h, own 8 GPU, 2개씩 순차 → 총 ~10h)
- midA / midB 동시 제출 → 완료 후 mid_dinov2 / mid_clip → 완료 후 mid_vit
- 제출 후 SLURM output 실시간 확인:
tail -f frappe/slurms/frappe_midA_<jid>.out
- mid 5 트랙 완료 후: 24-task eval (base + midA + midB + mid_dinov2/clip/vit 6개 × 480 episodes, 각 ~10h)
- eval 완료 후: 이전 결과(midA 67.1% best)와 재현성 비교 → MoE v4 재도전 여부 결정