Instructions to use yrpark/lerobot044_pi05_train_env with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use yrpark/lerobot044_pi05_train_env with LeRobot:
- Notebooks
- Google Colab
- Kaggle
- lerobot044_pi05_train_env
- โ ๏ธ ํต์ฌ ํจ์ 2๊ฐ์ง (๋ ๋ค ์ ํ๋ฉด ํ์ต์ด ์ฆ์ ์คํจ)
- 1. Conda ํ๊ฒฝ ์์ฑ
- 2. lerobot 0.4.4 + pi extra ์ค์น (ํต์ฌ)
- 3. ์ค์น ๊ฒ์ฆ
- 4. pi05_base ๋ฆฌ๋น์ ๊ณ ์ ๋ค์ด๋ก๋ (ํต์ฌ)
- 5. ํ์ต ๋ช ๋ น (์ผ๋ฐ ํ ํ๋ฆฟ, ๋ฉํฐ-GPU)
- 6. ๋ฐ์ดํฐ์
์๊ตฌ์ฌํญ
- 7. ํธ๋ฌ๋ธ์ํ
- ๋ถ๋ก: ๊ฒ์ฆ๋ ํจํค์ง ๋ฒ์
- โ ๏ธ ํต์ฌ ํจ์ 2๊ฐ์ง (๋ ๋ค ์ ํ๋ฉด ํ์ต์ด ์ฆ์ ์คํจ)
lerobot044_pi05_train_env
lerobot 0.4.4 ์์ pi0.5 (pi05) ์ ์ฑ ์ ํ์ธํ๋ํ๊ธฐ ์ํ ํ๊ฒฝ ์ค์น ๊ฐ์ด๋. A100 ๋ฑ ์ ์๋ฒ์์ ๊ทธ๋๋ก ์ฌํํด ์ฌ๋ฌ task๋ฅผ ํ์ตํ ์ ์๋๋ก ์ผ๋ฐํํ ๋ฌธ์์ ๋๋ค.
๊ฒ์ฆ ํ๊ฒฝ: 2ร RTX A6000 (48GB), CUDA driver 12.x, conda. torch 2.10 (cu12.8) ํ ์ A100(sm_80)์์๋ ๊ทธ๋๋ก ๋์ํฉ๋๋ค.
โ ๏ธ ํต์ฌ ํจ์ 2๊ฐ์ง (๋ ๋ค ์ ํ๋ฉด ํ์ต์ด ์ฆ์ ์คํจ)
- ํจ์น๋ transformers๊ฐ ํ์ํ๋ค. ๊ทธ๋ฅ
pip install lerobot==0.4.4๋ง ํ๊ฑฐ๋lerobot[transformers-dep]๋ก ์ค์นํ๋ฉด pi05 ์์ฑ ์ValueError: An incorrect transformer version is used๋ก ์ฃฝ์ต๋๋ค. pi0/pi05 ๋ lerobot ์ด ํจ์นํ transformers ๋ธ๋์น(fix/lerobot_openpi)๋ฅผ ์๊ตฌํฉ๋๋ค โpiextra ๋ก ์ค์น. lerobot/pi05_base๋ฆฌ๋น์ ์ ๊ณ ์ ํด์ผ ํ๋ค. ํ๋ธ์ ์ต์ (main) ์ ์ฒ๋ฆฌ๊ธฐ๋relative_actions_processor์คํ ์ ์ฐ๋๋ฐ ์ด๊ฑด lerobot 0.4.4 ์ ์กด์ฌํ์ง ์์ต๋๋ค (๋์ค ๋ฒ์ ์์ ์ถ๊ฐ๋จ). ๊ทธ๋๋ก ์ฐ๋ฉดKeyError: Processor step 'relative_actions_processor' not found in registry๋ก ์ฃฝ์ต๋๋ค. โ 0.4.4 ์๊ธฐ์ ๋ฆฌ๋น์ 9e55186ad3์ ๋ฐ์์ ๋ก์ปฌ ๊ฒฝ๋ก๋ก ์ง์ .
1. Conda ํ๊ฒฝ ์์ฑ
conda create -n lerobot044 python=3.10 -y
conda activate lerobot044
2. lerobot 0.4.4 + pi extra ์ค์น (ํต์ฌ)
# lerobot core + ํจ์น transformers(fix/lerobot_openpi) + scipy ๋ฅผ ํ ๋ฒ์ ์ค์น
pip install "lerobot[pi]==0.4.4"
pi extra ์ ์(lerobot 0.4.4 pyproject.toml):
pi = ["transformers @ git+https://github.com/huggingface/transformers.git@fix/lerobot_openpi",
"scipy>=1.10.1,<1.15"]
์ค์น ์ git + ๋คํธ์ํฌ ํ์(transformers ๋ฅผ ์์ค์์ ๋น๋). ๋ช ๋ถ ๊ฑธ๋ฆฝ๋๋ค.
์ด๋ฏธ ๋ค๋ฅธ transformers ๊ฐ ๊น๋ฆฐ ํ๊ฒฝ์ด๋ผ๋ฉด ์๋๋ก ๊ฐ์ ๊ต์ฒดํ ์ ์์ต๋๋ค:
pip install "transformers @ git+https://github.com/huggingface/transformers.git@fix/lerobot_openpi" "scipy>=1.10.1,<1.15"
3. ์ค์น ๊ฒ์ฆ
python - <<'PY'
import lerobot, torch, transformers
print("lerobot", lerobot.__version__) # 0.4.4
print("torch", torch.__version__, "cuda", torch.cuda.is_available(), "ndev", torch.cuda.device_count())
print("transformers", transformers.__version__) # 4.53.3 (ํจ์น ๋ฒ์ )
from lerobot.policies.pi05.modeling_pi05 import PI05Policy
from transformers.models.siglip import check
print("siglip check ->", check.check_whether_transformers_replace_is_installed_correctly()) # True ์ฌ์ผ ํจ
PY
siglip check -> True ๊ฐ ๋์ค๋ฉด ํจ์ #1 ํต๊ณผ.
4. pi05_base ๋ฆฌ๋น์ ๊ณ ์ ๋ค์ด๋ก๋ (ํต์ฌ)
# 0.4.4 ํธํ ๋ฆฌ๋น์ (relative_actions_processor ์ถ๊ฐ ์ด์ )์ ๋ก์ปฌ๋ก ๋ฐ๋๋ค
python - <<'PY'
from huggingface_hub import snapshot_download
p = snapshot_download("lerobot/pi05_base", revision="9e55186ad3",
local_dir="/DATA/pi05_base_9e55186") # ๋ก์ปฌ nvme ๊ฒฝ๋ก๋ก ๋ณ๊ฒฝ
print("DONE", p)
PY
- ๋ฆฌ๋น์
9e55186ad3(2026-01-22) = ์ปค๋ฐ7de663972b("Add relative action processor steps", 2026-06-03) ์ง์ . - ์ดํ ํ์ต์์
--policy.pretrained_path=/DATA/pi05_base_9e55186๋ก ์ด ๋ก์ปฌ ๊ฒฝ๋ก๋ฅผ ์ง์ . - (์ฐธ๊ณ ) ์ด ๋ฆฌ๋น์ ์ ์ฒ๋ฆฌ๊ธฐ ์คํ
:
rename_observations_processor, to_batch_processor, normalizer_processor, pi05_prepare_state_tokenizer_processor_step, tokenizer_processor, device_processorโ ์ ๋ถ 0.4.4 ๋ ์ง์คํธ๋ฆฌ์ ์กด์ฌ.
5. ํ์ต ๋ช ๋ น (์ผ๋ฐ ํ ํ๋ฆฟ, ๋ฉํฐ-GPU)
์ฌ๋ฌ task์ ์ฌ์ฌ์ฉํ๋๋ก ๋ณ์๋ง ๋ฐ๊พธ๋ฉด ๋ฉ๋๋ค. DDP๋ accelerate launch ์ฌ์ฉ.
DATAROOT=/DATA/datasets/<task> # LeRobotDataset v3.0 ๋ก์ปฌ ๊ฒฝ๋ก (meta/info.json ํฌํจ)
OUTDIR=/DATA/outputs/pi05_<task>
BASE=/DATA/pi05_base_9e55186 # 4๋จ๊ณ์์ ๋ฐ์ ๋ก์ปฌ pi05_base
export CUDA_VISIBLE_DEVICES=0,1 # A100 ์ฌ๋ฌ ์ฅ์ด๋ฉด 0,1,2,3 ...
NPROC=$(echo "$CUDA_VISIBLE_DEVICES" | tr ',' '\n' | wc -l)
EFFECTIVE_BATCH=32 # ์ด(effective) ๋ฐฐ์น. per-GPU = EFFECTIVE_BATCH/NPROC
BATCH=$(( EFFECTIVE_BATCH / NPROC ))
accelerate launch --num_processes="$NPROC" --mixed_precision=bf16 \
"$(which lerobot-train)" \
--dataset.repo_id=<hub/label-only-ok> \
--dataset.root="$DATAROOT" \
--dataset.video_backend=pyav \
--policy.type=pi05 \
--policy.pretrained_path="$BASE" \
--policy.device=cuda \
--policy.dtype=bfloat16 \
--policy.compile_model=true \
--policy.gradient_checkpointing=true \
--policy.freeze_vision_encoder=false \
--policy.train_expert_only=false \
--policy.tokenizer_max_length=200 \
--policy.push_to_hub=false \
--steps=30000 --save_freq=5000 \
--batch_size="$BATCH" --num_workers=8 --seed=1000 \
--output_dir="$OUTDIR" --job_name=pi05_<task> --wandb.enable=false
๋ฐฐ์น ๊ท์น (์ค์)
lerobot DDP ์์ --batch_size ๋ ํ๋ก์ธ์ค(GPU)๋น ๊ฐ์
๋๋ค.
effective ๋ฐฐ์น = batch_size ร GPU ์. ์) ์ด ๋ฐฐ์น 32 ๋ฅผ 2-GPU๋ก โ --batch_size=16.
A100 80GB ๋ ์ฌ์ ๊ฐ ๋ง์ผ๋ per-GPU ๋ฐฐ์น๋ฅผ ์ฌ๋ ค๋ ๋ฉ๋๋ค.
ํ์ดํผํ๋ผ๋ฏธํฐ (pi05 ๊ธฐ๋ณธ๊ฐ = ์๋์ ๋์ผ, ๋ณ๋ ์ง์ ๋ถํ์)
- optimizer: AdamW, lr
2.5e-5, betas(0.9, 0.95), wd0.01, grad_clip1.0 - scheduler: cosine, warmup
1000, decay30000โ2.5e-6 - chunk_size / n_action_steps =
50,n_obs_steps = 1 - normalization: STATE/ACTION =
QUANTILES, VISUAL =IDENTITY
์ ๊ฐ์
pi05_baseconfig ์์ ์์๋๋ฏ๋ก ๋ช ๋ น์ ๋ฃ์ง ์์๋ ์ฌํ๋ฉ๋๋ค.--steps๋ฅผ ๋ฐ๊พธ๋ฉด scheduler decay ๋ ๊ฐ์ด ๋ง์ถ๊ณ ์ถ์ ๋๋ง--policy.scheduler_decay_steps=<steps>๋ฅผ ์ถ๊ฐํ์ธ์.
6. ๋ฐ์ดํฐ์ ์๊ตฌ์ฌํญ
- LeRobotDataset v3.0 (
meta/info.json์codebase_version: v3.0). - ์นด๋ฉ๋ผ/์ํ/์ก์
feature ๋ policy ์
๋ ฅ๊ณผ ๋ง์์ผ ํจ. (์์๋ก ๊ฒ์ฆํ UR7e abs_ee ์
:
observation.images.third_person,observation.images.eye_in_hand(3,480,640),observation.state(24,),action(22,), 50 fps.) - ์ก์
/์ํ ์ฐจ์์ pi05 ์
max_state_dim=32,max_action_dim=32์ด๋ด๋ฉด ๋จ(ํจ๋ฉ ์ฒ๋ฆฌ). - ๋ก์ปฌ nvme ์ ๋๊ณ
--dataset.root๋ก ์ง์ ๊ฐ๋ฆฌํค๋ ๊ฑธ ๊ถ์ฅ(๋๋ฆฐ ๋คํธ์ํฌ ์คํ ๋ฆฌ์ง ํํผ).
7. ํธ๋ฌ๋ธ์ํ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
ValueError: An incorrect transformer version is used |
ํจ์น ์ ๋ transformers | lerobot[pi] ๋ก ์ค์น(ํจ์ #1) |
KeyError: 'relative_actions_processor' not found in registry |
pi05_base main ๋ฆฌ๋น์ ์ด 0.4.4 ์ ๋ถ์ผ์น | ๋ฆฌ๋น์ 9e55186ad3 ์ฌ์ฉ(ํจ์ #2) |
์ฒซ ์คํ
์ AUTOTUNE/triton_mm... ๋ก๊ทธ๊ฐ ํ์ฐธ ๋์ด |
compile_model=true ์ torch.compile ์๋ฐ์
(์ ์) |
๊ธฐ๋ค๋ฆฌ๊ธฐ. ๋ก๊ทธ๊ฐ Training: N/30000 loss=... ๋ก ๋ฐ๋๋ฉด ์ค์ ์คํ
์์. ์ซ์ผ๋ฉด --policy.compile_model=false |
| CUDA out of memory | per-GPU ๋ฐฐ์น/๋ชจ๋ธ์ด ํผ | EFFECTIVE_BATCH ๋ฎ์ถ๊ธฐ, GPU ๋๋ฆฌ๊ธฐ, gradient_checkpointing=true ์ ์ง, ํ์์ compile_model=false |
๋ถ๋ก: ๊ฒ์ฆ๋ ํจํค์ง ๋ฒ์
lerobot 0.4.4
transformers 4.53.3 (git: fix/lerobot_openpi, ํจ์น)
tokenizers 0.21.4
scipy 1.14.1
torch 2.10.0+cu128
accelerate 1.15.0
av (pyav) 15.1.0
torchcodec 0.10.0
python 3.10