강제되는 부분: meta/data/videos 3분류 기본 골격, meta/info.json의 스키마 규약 — 안 지키면 LeRobotDataset 로딩 자체가 실패
확장 가능한 부분: info.json, episodes.jsonl(v2.1) / episodes/*.parquet(v3.0)에 커스텀 필드 추가는 자유 (예: AgiBotWorld의 key_frame, instruction_segments, GalaxeaVLA의 커스텀 feature명)
data/, videos/ 폴더 자체는 정해진 형식을 그대로 따라야 함(확장 대상 아님)
3. Fine-tuning 되는 가중치의 위치
outputs/train/{job_name}/checkpoints/{step 또는 last}/pretrained_model/ ├── config.json # 정책 설정 직렬화 ├── model.safetensors # ← 실제 가중치 파일 (torch.nn.Module 파라미터) └── train_config.json # 학습에 쓰인 전체 파라미터
실제로 이 파일 안에 저장된 학습 대상 가중치 (ACT 기준)
구성 요소 내용 사용 시점
ResNet-18
conv 필터들 (ImageNet pretrained에서 시작, 추가 학습됨)
학습·추론
CVAE 인코더
[CLS] 임베딩, projection layer, BERT 스타일 transformer(Wq/Wk/Wv/Wo, FFN), z 계산 linear layer
학습만
CVAE 디코더 입력단
이미지/관절/z projection layer, positional embedding
학습·추론
CVAE 디코더 융합(인코더)
transformer encoder(Wq/Wk/Wv/Wo, FFN)
학습·추론
CVAE 디코더 출력(디코더)
k개 위치 쿼리, cross-attention 가중치, FFN, 출력 projection
학습·추론
ACT(~80M) 규모: ResNet만 pretrained에서 시작하고, 나머지는 전체가 학습 대상 (파라미터 적어서 "일부만 얼리기" 전략 잘 안 씀)
수십억 파라미터급 모델(pi0.5, GR00T 등)은 전체 fine-tuning 부담이 커서, LoRA(Low-Rank Adaptation) 같은 기법을 씀
원리: 원본 가중치 W는 고정(freeze)하고, "변화량(ΔW)"을 훨씬 작은 두 행렬 A(512×r), B(r×512)의 곱으로 근사해서 그 A, B만 학습
"저랭크(low-rank)"는 이 변화량이 실제로는 몇 가지 핵심 패턴만으로 충분히 표현 가능하다는 수학적 근거
ACT처럼 작은 모델은 이 기법이 굳이 필요 없어 — 전체 fine-tuning 자체가 이미 가벼움
(추가) ACT 같은 작은 모델도 "나눠서" 학습하는 경우
ACT(~80M) 규모에서는 보통 전체를 다 학습하지만, 그럼에도 일부만 학습시키는(나머지는 얼리는) 경우
나누는 이유
무엇을 얼리나
목적
데이터가 적을 때
ResNet(비전 백본)
과적합 방지, pretrained 지식 보존 — 데이터가 적을 때 이미 잘 학습된 ResNet의 지식을 보존하기 위한 것
기존 작업에서 신규 작업으로 확장
초기 레이어들
학습 시간 단축, 기존 지식 유지
여러 작업을 하나의 베이스로 관리하고 싶을 때
전체 원본
LoRA처럼 작업별 어댑터만 교체 (드묾)
핵심: ACT 규모에서 "나눈다"의 가장 현실적이고 흔한 이유는 LoRA의 원래 목적(자원 절약)이 아니라, 데이터가 적을 때 이미 잘 학습된 ResNet의 지식을 보존하기 위한 것 LoRA 자체는 파라미터가 훨씬 큰 모델(VLA류)에서 자원 절약을 위해 쓰는 게 일반적이고, ACT처럼 작은 모델에서는 "얼릴지 말지"의 판단 기준이 "자원"보다는 "데이터 양과 과적합 방지"에 더 가깝다.
첫댓글- z(32차원, style variable)는 "이 시범이 어떤 스타일이었는지"(접근 각도, 속도 등)를 담은 값 위 문장의 물리적 의미가 무엇인지 찾아볼것 전문가의 시범동작을 측정한 데이터의 평균,분산을 학습하는게 아니고 모든 궤적에 공통적인 특징(잠재변수z로 정의)을 학습한다고 함 훈련데이터의 각 궤적의 시작점과 목표점의 위치가 모두 다르지만 시작위치에서 목표점을 향해가려는 특징은 모든 훈련 궤적 데이터에서 공통임 결국 CVAE 모델은 이 공통적인 특징의 통계적 분포를 학습한다고 함 그럼 어떻게 하면 이런 특성을 학습하게 할수 있는지 로스함수의 관점에서 설명해볼것
- 학습 중 KL divergence로 z들의 분포가 표준정규분포(평균 0)에 가깝도록 강제됨 KL divergence 로스함수는 두개의 확률분포의 차이를 수치화한 로스함수임 따라서 로스를 0으로 만들면 서로다른 2개의 확률분포를 비슷하도록 만든다는 의미 위에서 학습한 모든 훈련 궤적데이터의 공통점을 수치화한 z벡터가 평균이 0이 되도록 분포를 변형한다는 의미
첫댓글 - z(32차원, style variable)는 "이 시범이 어떤 스타일이었는지"(접근 각도, 속도 등)를 담은 값
위 문장의 물리적 의미가 무엇인지 찾아볼것
전문가의 시범동작을 측정한 데이터의 평균,분산을 학습하는게 아니고 모든 궤적에 공통적인 특징(잠재변수z로 정의)을 학습한다고 함
훈련데이터의 각 궤적의 시작점과 목표점의 위치가 모두 다르지만 시작위치에서 목표점을 향해가려는 특징은 모든 훈련 궤적 데이터에서 공통임
결국 CVAE 모델은 이 공통적인 특징의 통계적 분포를 학습한다고 함
그럼 어떻게 하면 이런 특성을 학습하게 할수 있는지 로스함수의 관점에서 설명해볼것
- 학습 중 KL divergence로 z들의 분포가 표준정규분포(평균 0)에 가깝도록 강제됨
KL divergence 로스함수는 두개의 확률분포의 차이를 수치화한 로스함수임 따라서 로스를 0으로 만들면 서로다른 2개의 확률분포를 비슷하도록 만든다는 의미
위에서 학습한 모든 훈련 궤적데이터의 공통점을 수치화한 z벡터가 평균이 0이 되도록 분포를 변형한다는 의미