본문으로 건너뛰기

선수 지식과 준비물

이동 로봇의 언어 미션으로 확장할 때는 M18.04 작업 상태와 M18.06 주행-조작 전환을 먼저 연결한다. 이 장의 관절 행동 벡터를 베이스 속도 명령으로 그대로 재사용하지 않는다. 행동의 단위·좌표계·유효 시간·중단 의미를 채널별로 정의하고, 정책 출력·미션 요청·실제 도착/조작 성공을 따로 기록한다.

E4의 M20 데이터 파이프라인, M21 모방학습, M22 언어·시각·행동과 실행 감독에서 이 장의 선수 개념을 단위별 계산·실습·문제로 보충한다. M27 엣지 실행과 M30 배포·평가를 거쳐 M32.02 팔 캡스톤의 요구사항·실험표를 작성한다. 교안을 읽고 합성 기록을 분석한 결과와 실제 학습·장비 실증을 구분한다.

PyTorch·손실·역전파는 M11.01, 텐서·데이터 로더·저장은 M11.02, 시연 분할·누수는 M11.03에서 보충한다. M11.04 표현 모델과 M11.06 실험 추적을 이 장의 VLA 구조·추론 지연과 연결한다. E3의 작은 CPU 예제는 실제 VLA 학습·성능 검증을 대신하지 않는다.

정책의 관절 목표를 실제 제어기로 넘기는 부분은 M07.03 포화·샘플링, M07.05 제어 계층·궤적, M07.06 필터·지연과 이어 읽는다. 행동 목표를 잘 예측했다는 결과가 구동기의 추종·접촉·정지 성능까지 보장하지 않으며, M08.06 구동 인터페이스 계약으로 명령 의미와 단위를 명시한다.

기초 복귀: M01.02 가상환경·로그, M01.05 재현 환경, M02.04 확률·공분산, M02.05 최적화가 필요하다. E1은 PyTorch·Transformer 전체를 가르치지 않으므로 아래 tensor/attention 용어가 낯설면 후속 M11의 ML 기초를 먼저 학습한다. E1 완료만으로 이 장의 모든 선수가 충족되는 것은 아니다. GPU 없는 학습자는 데이터 분할·정규화 계산·기록 해석을 수행하고 실제 모델 학습·성능 검증과 구분한다.

선수 지식

  • PyTorch의 tensor, module, optimizer, dataloader
  • Transformer의 self-attention과 cross-attention
  • 확률분포, 조건부확률, 평균·표준편차
  • 제4장의 센서 timestamp 정렬과 episode 수집 구조

기준 환경

  • Ubuntu 24.04 LTS
  • Python 가상환경 또는 uv
  • CUDA 호환 NVIDIA GPU(학습 시 권장)
  • Hugging Face 계정과 token(비공개 Hub 저장소를 사용할 경우)
  • LeRobot repository의 고정 commit 또는 태그

설치 명령은 프로젝트의 현재 문서를 우선한다. SmolVLA 추가 의존성은 공식 문서에서 다음과 같이 안내된다.

# 아래 블록 전체를 실행한다. 실패하면 별도 셸이 중단되어 뒤 설치를 실행하지 않는다.
(
  set -eu
  : "${LEROBOT_REVISION:?공식 문서와 검증한 LeRobot 커밋 또는 태그를 지정하세요}"
  git clone https://github.com/huggingface/lerobot.git
  cd lerobot
  git checkout --detach "$LEROBOT_REVISION"
  python3 -m venv .venv
  . .venv/bin/activate
  python -m pip install -e ".[smolvla,peft]"
  git rev-parse HEAD
  lerobot-train --help
)

이 블록은 별도 셸에서 실행하므로 끝나면 원래 디렉터리·환경으로 돌아온다. 성공한 경우에만 이후 작업 셸에서 cd lerobot와 . .venv/bin/activate로 해당 환경에 들어간다. revision이 없거나 존재하지 않는 태그라면 그 오류부터 해결하고, venv나 패키지 설치가 완료되었다고 간주하지 않는다. 마지막 두 명령의 출력을 실험 기록에 저장한다. latest 또는 main만 기록하면 같은 실험 환경을 다시 만들 수 없다.

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

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