LeRobot v0.6.0: Imagine, Evaluate, Improve

๐Ÿ“ ์š”์•ฝ

LeRobot v0.6.0์€ ๋กœ๋ด‡ ํ•™์Šต ๋ฃจํ”„๋ฅผ ๋‹ซ๋Š” ๋ฐ ์ค‘์ ์„ ๋‘” ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๋กœ, ๋ฏธ๋ž˜๋ฅผ ์ƒ์ƒํ•˜๋Š” ์ •์ฑ…, ์„ฑ๊ณต์„ ๊ฐ์ง€ํ•˜๋Š” ๋ณด์ƒ ๋ชจ๋ธ, ์‹คํŒจ๋ฅผ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋กœ ํ™œ์šฉํ•˜๋Š” ๋ฐฐํฌ CLI, ๊ทธ๋ฆฌ๊ณ  ๋ฒค์น˜๋งˆํ‚น์„ ์œ„ํ•œ ์—ฌ์„ฏ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊นŠ์ด ๊ฐ์ง€, VLM ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ์…‹ ์ฃผ์„, ์‚ฌ์šฉ์ž ์ง€์ • ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ, ํด๋ผ์šฐ๋“œ ํ›ˆ๋ จ, ๊ฐ„์†Œํ™”๋œ ์„ค์น˜ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ์—…๋ฐ์ดํŠธ๋Š” VLA-JEPA, LingBot-VA, FastWAM๊ณผ ๊ฐ™์€ ์ƒˆ๋กœ์šด ์ •์ฑ…์„ ํฌํ•จํ•˜๋ฉฐ, GR00T N1.7, MolmoAct2, EO-1, Multitask DiT, EVO1 ๋“ฑ ๊ธฐ์กด VLA ๋ชจ๋ธ ์Šคํ† ์–ด๋ฅผ ํ™•์žฅํ–ˆ์Šต๋‹ˆ๋‹ค. Robometer์™€ TOPReward์™€ ๊ฐ™์€ ๋ณด์ƒ ๋ชจ๋ธ์€ ๋กœ๋ด‡ ์„ฑ๊ณต์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ์…‹ ๊ธฐ๋Šฅ์€ ํ–ฅ์ƒ๋œ ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ, ๊นŠ์ด ์„ผ์„œ ์ง€์›, ์–ธ์–ด ์ฃผ์„ ๊ธฐ๋Šฅ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.


์ด๋ฒˆ ์ƒˆ๋กœ์šด ๋ฆด๋ฆฌ์Šค๋Š” ๋กœ๋ด‡ ํ•™์Šต ๋ฃจํ”„๋ฅผ ๋‹ซ๋Š” ๊ฒƒ์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ํ–‰๋™ํ•˜๊ธฐ ์ „์— ๋ฏธ๋ž˜๋ฅผ ์ƒ์ƒํ•˜๋Š” ์ •์ฑ…, ๋กœ๋ด‡์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ณด์ƒ ๋ชจ๋ธ, ์‹คํŒจ๋ฅผ ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฐํฌ CLI, ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“  ๊ฒƒ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ์„ฏ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฒค์น˜๋งˆํฌ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ๊นŠ์ด ๊ฐ์ง€, VLM ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ์…‹ ์ฃผ์„, ์‚ฌ์šฉ์ž ์ง€์ • ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ, HF Jobs์—์„œ์˜ ํด๋ผ์šฐ๋“œ ํ›ˆ๋ จ, ํ›จ์”ฌ ๋” ๊ฐ€๋ฒผ์›Œ์ง„ ์„ค์น˜ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์›”๋“œ ๋ชจ๋ธ: ๋ฏธ๋ž˜๋ฅผ ์ƒ์ƒํ•˜๋Š” ์ •์ฑ…

๋กœ๋ณดํ‹ฑ์Šค ์„ธ๊ณ„๋Š” ํฐ ์งˆ๋ฌธ์„ ๋˜์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์›”๋“œ ๋ชจ๋ธ์ด ๋กœ๋ด‡ ์ •์ฑ…์— ์‹ค์ œ๋กœ ๋„์›€์ด ๋ ๊นŒ์š”? v0.6.0์€ ๊ทธ ์งˆ๋ฌธ์— ๋‹ตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋„๋ก LeRobot์— ์„ธ ๊ฐ€์ง€ ์ •์ฑ…์„ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ •์ฑ…์€ ํ›ˆ๋ จ์˜ ์ผ๋ถ€๋กœ ๋ฏธ๋ž˜๋ฅผ ์ƒ์ƒํ•˜๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋ฉฐ, ๊ฐ ์ •์ฑ…์€ ๊ทธ ์ƒ์ƒ์„ ํ•ฉ๋ฆฌ์ ์ธ ๋น„์šฉ์œผ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

VLA-JEPA

VLA-JEPA๋Š” ์†Œํ˜• VLA(Qwen3-VL-2B ๊ธฐ๋ฐ˜)์—๊ฒŒ ํ–‰๋™์„ ๋ฐฐ์šฐ๋Š” ๋™์•ˆ ์ž ์žฌ ๊ณต๊ฐ„์—์„œ ๋ฏธ๋ž˜๋ฅผ ์˜ˆ์ธกํ•˜๋„๋ก ๊ฐ€๋ฅด์นฉ๋‹ˆ๋‹ค. ํ›ˆ๋ จ ์ค‘์—๋Š” JEPA ์›”๋“œ ๋ชจ๋ธ์ด ๋ชจ๋ธ ์ž์ฒด์˜ ํ–‰๋™์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํ”„๋ ˆ์ž„์„ ์˜ˆ์ธกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ์˜ ๋น„๊ฒฐ์€ ์ถ”๋ก  ์‹œ ์›”๋“œ ๋ชจ๋ธ์ด ์‚ฌ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ถ”๊ฐ€์ ์ธ ์ถ”๋ก  ๋น„์šฉ ์—†์ด ์›”๋“œ ๋ชจ๋ธ์˜ ๊ฐ๋…์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DROID ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๋ฒ ์ด์Šค๋ฅผ ํฌํ•จํ•˜์—ฌ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์„ธ ๊ฐœ์˜ ์ฒดํฌํฌ์ธํŠธ๊ฐ€ Hub์— ์žˆ์Šต๋‹ˆ๋‹ค.

lerobot-train \
  --policy.path=lerobot/VLA-JEPA-Pretrain \
  --dataset.repo_id=${HF_USER}/my_dataset \
  --policy.repo_id=${HF_USER}/my_finetuned_policy

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ VLA-JEPA ๋ฌธ์„œ์™€ ๋…ผ๋ฌธ์„ ํ™•์ธํ•˜์„ธ์š”.

LingBot-VA

LingBot-VA๋Š” ํ•œ ๋‹จ๊ณ„ ๋” ๋‚˜์•„๊ฐ‘๋‹ˆ๋‹ค. ์ด๋Š” ๋น„๋””์˜ค์™€ ํ–‰๋™์„ ์ฒญํฌ๋ณ„๋กœ ํ•จ๊ป˜ ์˜ˆ์ธกํ•˜๋Š” ์ž๋™ ํšŒ๊ท€ ๋น„๋””์˜ค-ํ–‰๋™ ๋ชจ๋ธ๋กœ, ์‹ค์ œ ๊ด€์ฐฐ์„ ๋‹ค์‹œ ์ž…๋ ฅํ•˜์—ฌ ์ƒ์ƒ์„ ํ˜„์‹ค์— ๊ธฐ๋ฐ˜ํ•˜๋„๋ก ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋ด‡์ด ์ƒ์ƒํ•œ ๊ฒƒ์„ ์ €์žฅํ•˜๊ณ (--policy.save_predicted_video=true) ์‹ค์ œ๋กœ ์ผ์–ด๋‚œ ์ผ๊ณผ ๋น„๊ตํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ถ”๋ก ์€ ๋‹จ์ผ 24–32 GB GPU์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์ˆ ์ ์ธ ์„ธ๋ถ€ ์‚ฌํ•ญ์€ ๋ฌธ์„œ์™€ ๋…ผ๋ฌธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

LingBot-VA imagined rollout vs real rollout

FastWAM

FastWAM์€ ๋…ผ๋ฌธ ์ œ๋ชฉ์—์„œ ์งˆ๋ฌธํ•ฉ๋‹ˆ๋‹ค. ํ–‰๋™ ์›”๋“œ ๋ชจ๋ธ์ด ํ…Œ์ŠคํŠธ ์‹œ๊ฐ„ ๋ฏธ๋ž˜ ์ƒ์ƒ์„ ํ•„์š”๋กœ ํ• ๊นŒ์š”? ์ด๋Š” ์•ฝ 50์–ต ๊ฐœ์˜ ๋น„๋””์˜ค ์ƒ์„ฑ ์ „๋ฌธ๊ฐ€์™€ ์†Œํ˜• ํ–‰๋™ ์ „๋ฌธ๊ฐ€๋ฅผ ๋‹จ์ผ ๋„คํŠธ์›Œํฌ๋กœ ๋ฌถ์–ด ๋ชจ๋ธ์ด ๋ง ๊ทธ๋Œ€๋กœ ์ž์‹ ์˜ ๋กค์•„์›ƒ์„ ๊ฟˆ๊พธ๋Š” ๋ฒ•์„ ๋ฐฐ์šฐ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ถ”๋ก  ์‹œ์—๋Š” ๊ฟˆ์„ ๊พธ๋Š” ๊ณผ์ •์„ ์™„์ „ํžˆ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์ง์ ‘ ํ–‰๋™ ์ฒญํฌ๋ฅผ ๋…ธ์ด์ฆˆ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. lerobot/fastwam_base์—์„œ ๋ฏธ์„ธ ์กฐ์ •ํ•˜๊ณ  ๋ฌธ์„œ์—์„œ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฝ์–ด๋ณด์„ธ์š”.

VLA: ๋ชจ๋ธ ์Šคํ† ์–ด๊ฐ€ ๊ณ„์† ์„ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค

GR00T N1.7

NVIDIA GR00T ํ†ตํ•ฉ์„ NVIDIA์˜ ์ตœ์‹  ํฌ๋กœ์Šค-์— ๋ณด๋””๋จผํŠธ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ์ธ GR00T N1.7๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ–ˆ์Šต๋‹ˆ๋‹ค. N1.7์€ ์ด์ „ VLM์„ Cosmos-Reason2-2B(Qwen3-VL ๊ธฐ๋ฐ˜)๋กœ ๊ต์ฒดํ•˜๊ณ  ํ”Œ๋กœ์šฐ ๋งค์นญ ํ–‰๋™ ํ—ค๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ €ํฌ ํ†ตํ•ฉ์€ NVIDIA์˜ ์›๋ž˜ Isaac-GR00T ๊ตฌํ˜„๊ณผ ๋™์ผํ•œ ์ž…๋ ฅ, ๋™์ผํ•œ ์ถœ๋ ฅ์œผ๋กœ ๊ธฐ๋Šฅ ์ผ์น˜ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์ณค์Šต๋‹ˆ๋‹ค. Flash-attention์ด ์ด์ œ ์„ ํƒ ์‚ฌํ•ญ์ด๋ฏ€๋กœ pip install 'lerobot[groot]'๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘๋™ํ•˜๋ฉฐ NVIDIA์˜ ๊ฒŒ์‹œ๋œ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ง์ ‘ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

[!NOTE] GR00T N1.7์€ LeRobot์˜ N1.5๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. N1.5๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ lerobot==0.5.1์„ ๊ณ ์ •ํ•˜์„ธ์š”.

MolmoAct2

Allen Institute for AI์˜ ๋น„์ „-์–ธ์–ด-ํ–‰๋™ ๋ชจ๋ธ์ธ MolmoAct2๊ฐ€ LeRobot์— ์ด์‹๋˜์–ด ์ „์ฒด ๋ผ์ดํ”„์‚ฌ์ดํด(๋ฏธ์„ธ ์กฐ์ •(์ „์ฒด ๋˜๋Š” LoRA), ํ‰๊ฐ€, ์‹ค์ œ ๋กœ๋ด‡ ๋ฐฐํฌ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์ • ์ˆ˜์ •์ด ์ ์šฉ๋œ ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฒดํฌํฌ์ธํŠธ๋Š” SO-100/101์—์„œ ์ œ๋กœ์ƒท์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

lerobot-rollout \
  --policy.path=lerobot/MolmoAct2-SO100_101-LeRobot \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.cameras='{cam0: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, cam1: {type: opencv, index_or_path: 2, width: 640, height: 480, fps: 30}}' \
  --task="pick up the red cube" --duration=30

์ถ”๋ก ์€ bf16์—์„œ ์•ฝ 12GB์— ๋“ค์–ด๊ฐ€๋ฉฐ, LoRA ๋ฏธ์„ธ ์กฐ์ •์€ ๋‹จ์ผ 24GB GPU์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. ์ „์ฒด ๋ฐฐํฌ ๊ฐ€์ด๋“œ๋Š” MolmoAct2 ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MolmoAct2 Zero-Shot in LeRobot

EO-1

์ธํ„ฐ๋ฆฌ๋ธŒ๋œ ๋น„์ „-ํ…์ŠคํŠธ-ํ–‰๋™ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ์ƒ์œ„์—์„œ ์‚ฌ์ „ ํ›ˆ๋ จ๋œ VLA์ธ EO-1์ด LeRobot์— ํ•ฉ๋ฅ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. Qwen2.5-VL-3B ๋ฐฑ๋ณธ๊ณผ ํ”Œ๋กœ์šฐ ๋งค์นญ ํ–‰๋™ ํ—ค๋“œ๋ฅผ ๊ฐ–์ถ˜ ์ด ๋ชจ๋ธ์€ ๋…ผ๋ฌธ ์ €์ž ์ค‘ ํ•œ ๋ช…์ด ๊ธฐ์—ฌํ–ˆ์Šต๋‹ˆ๋‹ค. --policy.type=eo1์„ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œ์ค€ lerobot-train ์›Œํฌํ”Œ๋กœ๋กœ ํ›ˆ๋ จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฌธ์„œ ๋ฐ ๋…ผ๋ฌธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

Multitask DiT

Multitask Diffusion Transformer ์ •์ฑ…์€ TRI Large Behavior Models ๋ ˆ์‹œํ”ผ๋ฅผ LeRobot์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. CLIP ๋น„์ „ ๋ฐ ์–ธ์–ด ์ž„๋ฒ ๋”ฉ์œผ๋กœ ์ปจ๋””์…”๋‹๋œ ์•ฝ 4์–ต 5์ฒœ๋งŒ ๊ฐœ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ํ™•์‚ฐ ํŠธ๋žœ์Šคํฌ๋จธ๋กœ, ์ž์—ฐ์–ด๋ฅผ ํ†ตํ•ด ์„ ํƒ๋œ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ํ•˜๋‚˜์˜ ๋ชจ๋ธ์ด ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค. ํ™•์‚ฐ ๋ฐ ํ”Œ๋กœ์šฐ ๋งค์นญ ๋ชฉ์ ์„ ๋ชจ๋‘ ์ง€์›ํ•˜๋ฉฐ, ์ง์ ‘ ํ›ˆ๋ จํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ž‘์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

EVO1

VLA๊ฐ€ ๋ฐ˜๋“œ์‹œ ๊ฑฐ๋Œ€ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค. EVO1์€ 0.77B ๋งค๊ฐœ๋ณ€์ˆ˜์— ์ •์ฑ…์„ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, InternVL3-1B ๋ฐฑ๋ณธ๊ณผ ํ”Œ๋กœ์šฐ ๋งค์นญ ํ–‰๋™ ํ—ค๋“œ๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด ๋ฏธ์„ธ ์กฐ์ •ํ•˜๊ณ  ์ ๋‹นํ•œ GPU์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‹คํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํžˆ ์ž‘์Šต๋‹ˆ๋‹ค. 2๋‹จ๊ณ„ ๋ฏธ์„ธ ์กฐ์ • ๋ฐ ์‹ค์‹œ๊ฐ„ ์ฒญํฌ ์ง€์›์„ ๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. EVO1 ๋ฌธ์„œ ๋ฐ ๋…ผ๋ฌธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ณด์ƒ ๋ชจ๋ธ: ๋กœ๋ด‡์ด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ๋ฅผ ์•„๋Š” ๊ฒƒ

์„ฑ๊ณต ํƒ์ง€ ๋ฐ ์ง„ํ–‰ ์ƒํ™ฉ ์ถ”์ •์€ ๋กœ๋ด‡ ํ•™์Šต ๋ฃจํ”„์—์„œ ๋ˆ„๋ฝ๋œ ๋ถ€๋ถ„์ด๋ฉฐ, v0.6.0์€ ์ด๋ฅผ ์œ„ํ•œ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. LeRobot์€ ์ด์ œ ์ •์ฑ… API๋ฅผ ๋ฏธ๋Ÿฌ๋งํ•˜๋Š” ํ†ตํ•ฉ ๋ณด์ƒ ๋ชจ๋ธ API(lerobot.rewards)๋ฅผ ๊ฐ€์ง€๋ฉฐ, ํ•˜๋‚˜์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋’ค์— ๋„ค ๊ฐ€์ง€ ๋ณด์ƒ ๋ชจ๋ธ(HIL-SERL ๋ณด์ƒ ๋ถ„๋ฅ˜๊ธฐ, SARM ๋ฐ ๋‘ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Robometer

Robometer๋Š” ์‚ฌ์ „ ํ›ˆ๋ จ๋œ ๋ฒ”์šฉ ๋ณด์ƒ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค. lerobot/Robometer-4B๋ฅผ LeRobot ๋ฐ์ดํ„ฐ์…‹์— ์ง€์‹œํ•˜๋ฉด ์ž‘์—…๋ณ„ ํ›ˆ๋ จ ์—†์ด๋„ ์›์‹œ ๋น„๋””์˜ค์™€ ์–ธ์–ด ์ง€์นจ์—์„œ ์ž‘์—… ์ง„ํ–‰ ์ƒํ™ฉ๊ณผ ์„ฑ๊ณต์„ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Qwen3-VL-4B๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ๋ฐฑ๋งŒ ๊ฐœ ์ด์ƒ์˜ ๋กœ๋ด‡ ๊ถค์  ๋ฐ์ดํ„ฐ์…‹(RSS 2026 ๋…ผ๋ฌธ)์— ๋Œ€ํ•œ ๊ถค์  ๋น„๊ต๋ฅผ ํ†ตํ•ด ํ›ˆ๋ จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

LeRobot Robometer

TOPReward

TOPReward๋Š” ์ „ํ˜€ ๋ณด์ƒ ๊ฐ€์ค‘์น˜ ์—†์ด ์™„๋ฒฝํ•œ ์ œ๋กœ์ƒท์ž…๋‹ˆ๋‹ค. ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ VLM(Qwen3-VL)์„ ๋ž˜ํ•‘ํ•˜๊ณ  ๊ถค์  ๋น„๋””์˜ค์™€ ์ž‘์—… ์ง€์นจ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ "True" ํ† ํฐ์˜ ๋กœ๊ทธ ํ™•๋ฅ ์„ ์ฝ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ VLM์€ ๋ณด์ƒ ํ•จ์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๋‘ ๋ชจ๋ธ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ์…‹์— ํ”„๋ ˆ์ž„๋ณ„ ์ง„ํ–‰๋ฅ  ๊ณก์„ ์„ ์ž‘์„ฑํ•˜๋Š” ๋ ˆ์ด๋ธ”๋ง ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ, ๋ณด์ƒ ์ธ์‹ ํ–‰๋™ ๋ณต์ œ(RA-BC), ๋ฐ์ดํ„ฐ์…‹ ํ’ˆ์งˆ ๊ฒ€์‚ฌ ๋ฐ ์ง„ํ–‰๋ฅ  ์˜ค๋ฒ„๋ ˆ์ด ๋น„๋””์˜ค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Robometer ๋ฐ TOPReward ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ์…‹: ๋” ๋น ๋ฅธ ๋กœ๋”ฉ, ๋” ํ’๋ถ€ํ•œ ๋ฐ์ดํ„ฐ

๋‚˜๋งŒ์˜ ์ฝ”๋ฑ, ๋‚˜๋งŒ์˜ ๊ทœ์น™

๋” ์ด์ƒ ๋…นํ™”๊ฐ€ ํ•˜๋‚˜์˜ ํ•˜๋“œ์ฝ”๋”ฉ๋œ ์ฝ”๋ฑ์—๋งŒ ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด --dataset.rgb_encoder.* ์˜ต์…˜์€ ์ „์ฒด ์ธ์ฝ”๋”ฉ ํ‘œ๋ฉด(์ฝ”๋ฑ, ํ’ˆ์งˆ, ํ”ฝ์…€ ํ˜•์‹, GOP, ์‚ฌ์ „ ์„ค์ •)์„ ๋…ธ์ถœํ•˜๋ฉฐ, vcodec=auto๋Š” NVENC, VideoToolbox, VAAPI, QSV์™€ ๊ฐ™์€ ํ•˜๋“œ์›จ์–ด ์ธ์ฝ”๋”๋ฅผ ํƒ์ƒ‰ํ•œ ํ›„ ๊ธฐ๋ณธ ์†Œํ”„ํŠธ์›จ์–ด AV1 ์ธ์ฝ”๋”๋กœ ๋Œ€์ฒด๋ฉ๋‹ˆ๋‹ค. ๊ธฐ์กด ๋ฐ์ดํ„ฐ์…‹์˜ ๊ฒฝ์šฐ, ํ•˜๋‚˜์˜ ๋ช…๋ น์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค์‹œ ์ธ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

lerobot-edit-dataset \
    --repo_id ${HF_USER}/my_dataset \
    --operation.type reencode_videos \
    --operation.rgb_encoder.vcodec h264 \
    --operation.rgb_encoder.crf 23

์ „์ฒด ๋‚ด์šฉ์€ ๋น„๋””์˜ค ์ธ์ฝ”๋”ฉ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊นŠ์ด ์ง€์›, ์—”๋“œ ํˆฌ ์—”๋“œ

Intel RealSense๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  use_depth: true๋ฅผ ์„ค์ •ํ•˜๋ฉด LeRobot์ด ๊นŠ์ด ๋งต์„ ์—”๋“œ ํˆฌ ์—”๋“œ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๋ฐ€๋ฆฌ๋ฏธํ„ฐ ๋‹จ์œ„๋กœ ์บก์ฒ˜๋˜๊ณ  RGB ์นด๋ฉ”๋ผ์™€ ํ•จ๊ป˜ ์†Œํ˜• 12๋น„ํŠธ ๊นŠ์ด ๋น„๋””์˜ค ์ŠคํŠธ๋ฆผ์œผ๋กœ ์••์ถ•๋˜๋ฉฐ, ํ›ˆ๋ จ ์‹œ ๋ฌผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋‹ค์‹œ ๋””์ฝ”๋”ฉ๋ฉ๋‹ˆ๋‹ค. ๊นŠ์ด๋Š” ๋…นํ™” ์ค‘๊ณผ lerobot-dataset-viz์—์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ Œ๋”๋ง๋˜๋ฉฐ, SO-100/101, Koch, OpenArm, reBot, Unitree G1 ๋“ฑ์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

LeRobot Depth Camera

๋Œ€๊ทœ๋ชจ ์–ธ์–ด ์ฃผ์„

๋ฐ์ดํ„ฐ์…‹์ด ์—ํ”ผ์†Œ๋“œ๋‹น ํ•˜๋‚˜์˜ ์ž‘์—… ๋ฌธ์ž์—ด์— ๊ตญํ•œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. LeRobot ๋ฐ์ดํ„ฐ์…‹์€ ์ด์ œ ํ’๋ถ€ํ•œ ์–ธ์–ด ์ฃผ์„(ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์ฐํžŒ ํ•˜์œ„ ์ž‘์—…, ๊ณ„ํš, ๋ฉ”๋ชจ๋ฆฌ, ์ˆ˜์ •, ์Œ์„ฑ ๋ฐ ์นด๋ฉ”๋ผ๋ณ„ VQA ์Œ)์„ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ €์žฅํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด lerobot-annotate CLI๋Š” VLM์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ํ”ผ์†Œ๋“œ๋ฅผ ์‹œ์ฒญํ•˜๋ฉด์„œ ์ž๋™์œผ๋กœ ์ด๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.

lerobot-annotate \
    --repo_id=${HF_USER}/my_dataset \
    --new_repo_id=${HF_USER}/my_dataset_annotated \
    --vlm.model_id=Qwen/Qwen2.5-VL-7B-Instruct \
    --push_to_hub=true

๊ทธ๋Ÿฐ ๋‹ค์Œ YAML ๋ ˆ์‹œํ”ผ ๊ณ„์ธต์€ ์ƒ˜ํ”Œ ์‹œ๊ฐ„์— ์ด๋Ÿฌํ•œ ์ฃผ์„์„ ์ฑ„ํŒ… ์Šคํƒ€์ผ ํ›ˆ๋ จ ๋ฉ”์‹œ์ง€๋กœ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‚ด์ผ์˜ ์žฅ๊ธฐ, ๋Œ€ํ™”ํ˜• ๋กœ๋ด‡ ์ •์ฑ…์ด ํ›ˆ๋ จํ•  ๋ฐ์ดํ„ฐ์™€ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. HF Jobs๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ™•์žฅํ•˜๊ณ  ์ฃผ์„ ํŒŒ์ดํ”„๋ผ์ธ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

์ตœ๋Œ€ 2๋ฐฐ ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ

๋น„๋””์˜ค ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•œ ํ›ˆ๋ จ์ด ์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ๋Œ€ ์•ฝ 2๋ฐฐ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์นด๋ฉ”๋ผ ํ”„๋ ˆ์ž„์ด ๋ณ‘๋ ฌ๋กœ ๋””์ฝ”๋”ฉ๋˜๊ณ , ๋ฐ์ดํ„ฐ ๋กœ๋” ์›Œ์ปค๋Š” ์†Œํ˜• uint8 ํ”„๋ ˆ์ž„์„ ์ „์†กํ•˜๋ฉฐ(ํ”„๋กœ์„ธ์Šค ๊ฐ„ ๋ฉ”๋ชจ๋ฆฌ 4๋ฐฐ ๊ฐ์†Œ), ์˜๊ตฌ ์›Œ์ปค๋Š” ์—ํฌํฌ ์ „๋ฐ˜์— ๊ฑธ์ณ ๋””์ฝ”๋” ์บ์‹œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ์…‹์˜ ํ•˜์œ„ ์ง‘ํ•ฉ(episodes=[...]) ๋กœ๋”ฉ์€ ๋ช‡ ๋ถ„์—์„œ ๋ช‡ ๋ฐ€๋ฆฌ์ดˆ(๋ฒค์น˜๋งˆํฌ์—์„œ 275์ดˆ์—์„œ 0.06์ดˆ๋กœ)๋กœ ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ๋ง๋„ ์ด์ œ ๊ฒฐ์ •๋ก ์ ์ด๊ณ  ์žฌ๊ฐœ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ค‘๋‹จ๋œ ํ›ˆ๋ จ์€ ์ƒ˜ํ”Œ ๋‹จ์œ„๋กœ ์ •ํ™•ํ•˜๊ฒŒ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๋ฒค์น˜๋งˆํฌ: ๋ชจ๋“  ๊ฒƒ์„ ํ‰๊ฐ€ํ•˜๋Š” ๋‹จ์ผ CLI

v0.5.0์€ LeRobot์„ VLA์˜ ํ‰๊ฐ€ ํ—ˆ๋ธŒ๋กœ ์ž๋ฆฌ๋งค๊น€ํ–ˆ์œผ๋ฉฐ, v0.6.0์€ ์—ฌ์„ฏ ๊ฐœ์˜ ์ƒˆ๋กœ์šด ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋ฒค์น˜๋งˆํฌ๋ฅผ ํ†ตํ•ด ์ด๋ฅผ ํ˜„์‹ค๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๋ฒค์น˜๋งˆํฌ๋Š” ๋™์ผํ•œ lerobot-eval CLI๋ฅผ ํ†ตํ•ด ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๋ฒค์น˜๋งˆํฌ์—๋Š” ๋ฌธ์„œ ํŽ˜์ด์ง€, Docker ์ด๋ฏธ์ง€, ๊ทธ๋ฆฌ๊ณ  CI์—์„œ ์—ฐ๊ธฐ ํ…Œ์ŠคํŠธ๋œ SmolVLA ๊ธฐ๋ณธ ์ฒดํฌํฌ์ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • LIBERO-plus๋Š” ์กฐ๋ช…๊ณผ ์นด๋ฉ”๋ผ ์‹œ์ ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ž‘์„ฑ๋œ ์ง€์นจ์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ผ๊ณฑ ๊ฐ€์ง€ ์ถ•์— ๊ฑธ์ณ ์•ฝ 10,000๊ฐœ์˜ ๋ณ€ํ˜•๋œ LIBERO๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ VLA๋ฅผ ์ŠคํŠธ๋ ˆ์Šค ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ์ •์ฑ…์ด ์–ธ์ œ ์‹คํŒจํ•˜๋Š”์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค.
  • RoboTwin 2.0์€ SAPIEN์—์„œ 50๊ฐ€์ง€ ์ด์ธ์ˆ˜ ์กฐ์ž‘ ์ž‘์—…์„ ๋‹ค๋ฃจ๋ฉฐ, ๊ด‘๋ฒ”์œ„ํ•œ ๋„๋ฉ”์ธ ๋ฌด์ž‘์œ„ํ™”๊ฐ€ ์ ์šฉ๋˜์—ˆ๊ณ  Hub์—๋Š” 100,000๊ฐœ ์ด์ƒ์˜ ์ฆ‰์‹œ ํ›ˆ๋ จ ๊ฐ€๋Šฅํ•œ ๊ถค์ ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • RoboCasa365๋Š” ๋ชจ๋ฐ”์ผ ์กฐ์ž‘๊ธฐ์—์„œ ์ ˆ์ฐจ์ ์œผ๋กœ ์ƒ์„ฑ๋œ 2,500๊ฐœ์˜ ์ฃผ๋ฐฉ์—์„œ 365๊ฐ€์ง€ ์ฃผ๋ฐฉ ์ž‘์—…์„ ๋‹ค๋ฃจ๋ฉฐ, ์ด๋Š” ํ˜„์žฌ ๋ผ์ธ์—… ์ค‘ ๊ฐ€์žฅ ํฐ ์ž‘์—… ํ‘œ๋ฉด์ž…๋‹ˆ๋‹ค.
  • RoboCerebra๋Š” ์–ธ์–ด ๊ธฐ๋ฐ˜ ์ค‘๊ฐ„ ์ง€์นจ์— ๋”ฐ๋ผ 3~6๊ฐœ์˜ ํ•˜์œ„ ๋ชฉํ‘œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ํ”ผ์†Œ๋“œ๋กœ ์žฅ๊ธฐ ํ–‰๋™์„ ํ‰๊ฐ€ํ•˜๋ฉฐ, 6,660๊ฐœ์˜ ์—ํ”ผ์†Œ๋“œ ๋ฐ์ดํ„ฐ์…‹์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • RoboMME๋Š” ๊ธฐ์–ต๋ ฅ ์‹œํ—˜์ž…๋‹ˆ๋‹ค. ์ •์ฑ…์ด ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์„ธ๊ณ , ์ˆจ๊ฒจ์ง„ ๋ฌผ์ฒด๋ฅผ ์ถ”์ ํ•˜๊ณ , ์‹œ์—ฐ๋œ ์ ˆ์ฐจ๋ฅผ ๋ชจ๋ฐฉํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? 4๊ฐ€์ง€ ๊ธฐ์–ต๋ ฅ ์Šค์œ„ํŠธ์— ๊ฑธ์ณ 16๊ฐ€์ง€ ์ž‘์—…์ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • VLABench๋Š” ๋ฌผ๋ฆฌ ์งˆ๋ฌธ๋ถ€ํ„ฐ ์ปคํ”ผ ๋“์ด๊ธฐ์™€ ๊ฐ™์€ ๋ณตํ•ฉ ์ž‘์—…๊นŒ์ง€ ์กฐ์ž‘์—์„œ ์ง€์‹๊ณผ ์ถ”๋ก ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.
lerobot-eval \
  --policy.path=lerobot/smolvla_robotwin \
  --env.type=robotwin \
  --env.task=beat_block_hammer \
  --eval.n_episodes=100 --eval.batch_size=1

์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ ๋ฐฑ์—”๋“œ๋Š” ์ž์ฒด ์„ค์น˜ ๋‹จ๊ณ„์™€ ํŠน์ • ์‹œ์Šคํ…œ ์ข…์†์„ฑ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฌธ์„œ ํŽ˜์ด์ง€์—๋Š” ์ •ํ™•ํ•œ ๋ ˆ์‹œํ”ผ๊ฐ€ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ๋ฒค์น˜๋งˆํฌ๋Š” ์„ค์ •์„ ๊ฑด๋„ˆ๋›ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ Docker ์ด๋ฏธ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

LIBERO, Meta-World, NVIDIA IsaacLab-Arena์™€ ํ•จ๊ป˜ํ•˜๋ฉด ์ด์ œ ํ•œ ์ง€๋ถ• ์•„๋ž˜ ์•„ํ™‰ ๊ฐ€์ง€ ๋ฒค์น˜๋งˆํฌ ์ œํ’ˆ๊ตฐ์ด ์žˆ์œผ๋ฉฐ, ์ƒˆ๋กœ์šด ์ƒˆ๋กœ์šด ๋ฒค์น˜๋งˆํฌ ์ถ”๊ฐ€ ๊ฐ€์ด๋“œ๋Š” ์ž์ฒด ๋ฒค์น˜๋งˆํฌ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •ํ™•ํ•˜๊ฒŒ ๋ฌธ์„œํ™”ํ•ฉ๋‹ˆ๋‹ค. ํ‰๊ฐ€ ์†๋„๋„ ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ํ‰๊ฐ€๋Š” ์ด์ œ ๋น„๋™๊ธฐ ๋ฒกํ„ฐํ™” ํ™˜๊ฒฝ์„ ๊ธฐ๋ณธ์œผ๋กœ ํ•˜๋ฉฐ, ์ตœ๋Œ€ 2๋ฐฐ ๋น ๋ฅธ ์†๋„๋กœ ๋ฒค์น˜๋งˆํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

LeRobot benchmarks

ํ›ˆ๋ จ ๋ฐ ์ถ”๋ก 

lerobot-rollout: ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ณ„๋„ CLI

์ •์ฑ… ๋ฐฐํฌ๋Š” ์ด์ „์—๋Š” lerobot-record ์œ„์— ๋ง๋ถ™์ด๋Š” ๋ฐฉ์‹์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด lerobot-rollout CLI๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ฐ€๋Šฅํ•œ ์ „๋žต๊ณผ ์ถ”๋ก  ๋ฐฑ์—”๋“œ(๋А๋ฆฐ ํ˜ธํ™˜ VLA๋ฅผ ์œ„ํ•œ ์‹ค์‹œ๊ฐ„ ์ฒญํฌ ํฌํ•จ)๋ฅผ ํ†ตํ•ด ๋ฐฐํฌ๋ฅผ ์ž์ฒด ์›Œํฌํ”Œ๋กœ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค. base ์ „๋žต์€ ์ •์ฑ…์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. sentry๋Š” ์ง€์†์ ์œผ๋กœ ๊ธฐ๋กํ•˜๊ณ , ์—ํ”ผ์†Œ๋“œ๋ฅผ ์ˆœํ™˜ํ•˜๋ฉฐ, ์ง„ํ–‰ํ•˜๋ฉด์„œ Hub์— ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. highlight๋Š” ๋ง ๋ฒ„ํผ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ํ‚ค๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋งˆ์ง€๋ง‰ N์ดˆ๋ฅผ ์ €์žฅํ•˜์—ฌ ํฅ๋ฏธ๋กœ์šด ์ˆœ๊ฐ„์„ ๋†“์น˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. episodic์€ ํด๋ž˜์‹ ์—ํ”ผ์†Œ๋“œ/๋ฆฌ์…‹ ๊ธฐ๋ก ์›Œํฌํ”Œ๋กœ๋ฅผ ๋ฏธ๋Ÿฌ๋งํ•ฉ๋‹ˆ๋‹ค. dagger๋Š” ๋ฐฐํฌ๋ฅผ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘์œผ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

DAgger ์ „๋žต์„ ์‚ฌ์šฉํ•˜๋ฉด ์ •์ฑ…์ด ์‹คํ–‰๋˜๋Š” ๊ฒƒ์„ ๋ณด๊ณ , ์ž˜๋ชป๋˜์—ˆ์„ ๋•Œ ํ‚ค(๋˜๋Š” USB ํ’‹ ํŽ˜๋‹ฌ)๋ฅผ ๋ˆ„๋ฅด๊ณ , ๋ฆฌ๋” ์•”์œผ๋กœ ์ œ์–ดํ•˜์—ฌ ์ˆ˜์ •์„ ๊ธฐ๋กํ•œ ํ›„ ๋‹ค์‹œ ์ œ์–ด๊ถŒ์„ ๋„˜๊น๋‹ˆ๋‹ค. ์ž‘๋™์‹ ๋ฆฌ๋”๋Š” ์ œ์–ด๊ถŒ์„ ๋„˜๊ธฐ๊ธฐ ์ „์— ํŒ”๋กœ์›Œ์˜ ์ž์„ธ๋กœ ๊ตฌ๋™๋˜๋ฏ€๋กœ ํ•ธ๋“œ์˜ค๋ฒ„๊ฐ€ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๋ชจ๋“  ์ˆ˜์ • ํ”„๋ ˆ์ž„์—๋Š” intervention ํ”Œ๋ž˜๊ทธ๊ฐ€ ํƒœ๊ทธ๋˜๋ฉฐ, ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ์…‹์€ ๋‹ค์Œ ๋ฏธ์„ธ ์กฐ์ •์„ ์œ„ํ•ด ์ค€๋น„๋ฉ๋‹ˆ๋‹ค.

lerobot-rollout \
    --strategy.type=dagger \
    --policy.path=${HF_USER}/my_policy \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --teleop.type=so101_leader \
    --teleop.port=/dev/ttyACM1 \
    --dataset.repo_id=${HF_USER}/dagger_corrections \
    --dataset.single_task="Grasp the block"

๋ฐฐํฌ, ์ˆ˜์ • ์ˆ˜์ง‘, ๋ฏธ์„ธ ์กฐ์ •, ๋ฐ˜๋ณต: ๋กœ๋ด‡ ํ•™์Šต ํ”Œ๋ผ์ดํœ ์€ ์ด์ œ CLI ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ๋ฐฐํฌ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด์„ธ์š”.

FSDP: GPU๋ณด๋‹ค ํฐ ๋ชจ๋ธ ํ›ˆ๋ จ

๋กœ๋ด‡ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ์€ ๋‹จ์ผ GPU๋ฅผ ๋„˜์–ด์„œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. LeRobot ํ›ˆ๋ จ์€ ์ด์ œ Accelerate๋ฅผ ํ†ตํ•ด FSDP(Fully Sharded Data Parallel)๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜, ๊ธฐ์šธ๊ธฐ ๋ฐ ์˜ตํ‹ฐ๋งˆ์ด์ € ์ƒํƒœ๊ฐ€ GPU ๊ฐ„์— ๋ถ„ํ• ๋˜๋ฉฐ, ์ฒดํฌํฌ์ธํŠธ๋Š” ์ผ๋ฐ˜์ ์ธ ๋‹จ์ผ ํŒŒ์ผ model.safetensors๋กœ ๋‹ค์‹œ ์ˆ˜์ง‘๋˜์–ด ๋‹ค๋ฅธ ์ •์ฑ…์ฒ˜๋Ÿผ ๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. FSDP ์‹คํ–‰์„ ๋‹ค๋ฅธ ์ˆ˜์˜ GPU์—์„œ๋„ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์ค‘ GPU ํ›ˆ๋ จ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

HF Jobs๋ฅผ ํ†ตํ•œ ํด๋ผ์šฐ๋“œ ํ›ˆ๋ จ

GPU๊ฐ€ ์—†์–ด๋„ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹จ ํ•˜๋‚˜์˜ ํ”Œ๋ž˜๊ทธ๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ์ •ํ™•ํžˆ ๋™์ผํ•œ lerobot-train ๋ช…๋ น์„ ํด๋ผ์šฐ๋“œ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

lerobot-train \
  --dataset.repo_id=${HF_USER}/so101_test \
  --policy.type=act \
  --policy.repo_id=${HF_USER}/my_policy \
  --job.target=a10g-small

LeRobot์€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ์…‹์„ ๋น„๊ณต๊ฐœ Hub ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ํ‘ธ์‹œํ•˜๊ณ , ์ž‘์—…์„ ์ œ์ถœํ•˜๋ฉฐ, ๋กœ๊ทธ๋ฅผ ํ„ฐ๋ฏธ๋„๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ณ , ํ›ˆ๋ จ๋œ ์ •์ฑ…์„ ๋งˆ์ง€๋ง‰์— Hub์— ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. --job.target์„ ์‚ฌ์šฉํ•˜์—ฌ T4๋ถ€ํ„ฐ 8x H200๊นŒ์ง€ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ปดํ“จํŒ…์€ ์ข…๋Ÿ‰์ œ๋กœ ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค). ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

์ฝ”๋“œ๋ฒ ์ด์Šค: ๋” ๊ฐ€๋ณ๊ณ  ๊น”๋”ํ•˜๊ฒŒ

  • pip install lerobot์€ ์ด์ œ ์ •๋ง ๊ฐ€๋ฒผ์›Œ์กŒ์œผ๋ฉฐ, ๊ธฐ๋ณธ ์ข…์†์„ฑ์ด ์•ฝ 40% ์ค„์—ˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ๋ฒ”์œ„๋ณ„ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ([training], [core_scripts], [evaluation], …)์ด ๋‚˜๋จธ์ง€๋ฅผ ๋‹ค๋ฃจ๋ฉฐ, ๋ˆ„๋ฝ๋œ ์ข…์†์„ฑ ์˜ค๋ฅ˜๋Š” ์–ด๋–ค ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ •ํ™•ํžˆ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. LeRobot ๋ฐ์ดํ„ฐ์…‹๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ํ•˜๋“œ์›จ์–ด ๊ด€๋ จ ์ข…์†์„ฑ์„ ๋” ์ด์ƒ ์„ค์น˜ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์ง€์›๋˜๋Š” PyTorch๋Š” 2.7–2.11๋กœ ์ด๋™ํ–ˆ์œผ๋ฉฐ, Linux uv ์„ค์น˜๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ CUDA 12.8 ํœ ์ด ๊ณ ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. --policy.dtype=bfloat16์€ ์ด์ œ Accelerate๋ฅผ ํ†ตํ•ด ์‹ค์ œ ํ˜ผํ•ฉ ์ •๋ฐ€๋„ ํ›ˆ๋ จ์„ ๊ตฌ๋™ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปค๋ฐ‹๋œ uv.lock์€ CI, Docker ๋ฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ถŒ์œ„ ์žˆ๋Š” ์ข…์†์„ฑ ์‚ฌ์–‘์ด๋ฉฐ, ๋ฌธ์„œ๋Š” ๋‹จ์ผ ํ”Œ๋ž˜๊ทธ๋กœ CUDA ํœ ์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ๊นŒ์ง€ ๋ชจ๋“  ๋‹จ๊ณ„์— ๋Œ€ํ•œ uv ์„ค์น˜ ๊ฒฝ๋กœ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • --display_mode=foxglove์€ ๋กœ๋ณดํ‹ฑ์Šค ์„ธ๊ณ„์˜ ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ์ด๋ฏธ ์‚ฌ์šฉ๋˜๋Š” ์‹œ๊ฐํ™” ๋„๊ตฌ์ธ Foxglove๋กœ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜, ๋…นํ™” ๋ฐ ๋กค์•„์›ƒ์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ์„ค์ •์—์„œ ์ž‘๋™ํ•˜๋ฉฐ, lerobot-dataset-viz๋Š” ์Šคํฌ๋Ÿฝ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ์…‹ ์žฌ์ƒ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • Pip์œผ๋กœ ์„ค์น˜ ๊ฐ€๋Šฅํ•œ lerobot_env_* ํŒจํ‚ค์ง€๋Š” ์ด์ œ ํ™˜๊ฒฝ์„ ์ž์ฒด์ ์œผ๋กœ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋Ÿฌ๊ทธ์ธ ์‹œ์Šคํ…œ์€ ๋กœ๋ด‡, ์นด๋ฉ”๋ผ, ํ…”๋ ˆ์˜คํผ๋ ˆ์ดํ„ฐ, ์ •์ฑ…, ํ™˜๊ฒฝ์˜ ๋‹ค์„ฏ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์š”์†Œ ์œ ํ˜•์„ ๋ชจ๋‘ ๋‹ค๋ฃน๋‹ˆ๋‹ค.
  • ๋…นํ™” ์ค‘ ํ‚ค๋ณด๋“œ ์ปจํŠธ๋กค์ด ์ด์ œ Wayland, SSH, ํ—ค๋“œ๋ฆฌ์Šค ์žฅ๋น„ ๋ฐ ์ ‘๊ทผ์„ฑ ๊ถŒํ•œ ์—†์ด macOS์—์„œ๋„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

[!WARNING] ์ „์ฒด ๋ชฉ๋ก ๋ฐ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ด์ „ ์ง€์นจ์€ ๋ฆด๋ฆฌ์Šค ๋…ธํŠธ๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

LeLab a graphical user interface for LeRobot

์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฐ ์ƒํƒœ๊ณ„

  • LeLab์€ ๋ธŒ๋ผ์šฐ์ € UI์—์„œ ์ „์ฒด LeRobot ์›Œํฌํ”Œ๋กœ(์บ˜๋ฆฌ๋ธŒ๋ ˆ์ด์…˜, ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜, ๋…นํ™”, ๋กœ์ปฌ ๋˜๋Š” HF Jobs์—์„œ์˜ ํ›ˆ๋ จ, ๋ฐฐํฌ)๋ฅผ ์ œ๊ณตํ•˜๋ฏ€๋กœ CLI๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ SO-ARM101์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„ํ•ด ๋ณด์„ธ์š”!
  • Isaac Teleop์€ NVIDIA ํŒ€๊ณผ์˜ ํ˜‘๋ ฅ ๊ฒฐ๊ณผ์ธ NVIDIA์˜ Isaac Teleop ์Šคํƒ์„ ํ†ตํ•ด CloudXR/OpenXR์„ ํ†ตํ•ด VR ์ปจํŠธ๋กค๋Ÿฌ๋กœ SO-101์„ ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.
  • ์ƒˆ๋กœ์šด ์ปดํ“จํŒ… ํ•˜๋“œ์›จ์–ด ๊ฐ€์ด๋“œ๋Š” ๋ชจ๋“  ์‹ ๊ทœ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฌป๋Š” ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ, ์ฆ‰ ์–ด๋–ค GPU๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ํ›ˆ๋ จ์€ ์–ผ๋งˆ๋‚˜ ๊ฑธ๋ฆฌ๋Š”์ง€์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ •์ฑ… ์ œํ’ˆ๊ตฐ๋ณ„ ์ธก์ •๋œ VRAM ๋ด‰ํˆฌ์™€ RTX 4090๋ถ€ํ„ฐ 4x H100๊นŒ์ง€์˜ ์ฐธ์กฐ ํ›ˆ๋ จ ์‹œ๊ฐ„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์žฌ์ž‘์„ฑ๋œ ์ •์ฑ… ์ถ”๊ฐ€ ๊ฐ€์ด๋“œ๋Š” ์ž์ฒด ์ •์ฑ…์„ ์ธ ํŠธ๋ฆฌ ๋˜๋Š” PR ์—†์ด ํ”Œ๋Ÿฌ๊ทธ์ธ ํŒจํ‚ค์ง€๋กœ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ ์ƒ๊ฐ

์ด๋Ÿฌํ•œ ์ฃผ์š” ๊ธฐ๋Šฅ ์™ธ์—๋„ v0.6.0์—๋Š” ์Šค๋งˆํŠธํ•œ ๊ธฐ๋ณธ ์„ค์ •๋ถ€ํ„ฐ ๋ณด๋‹ค ์•ˆ์ •์ ์ธ CI๊นŒ์ง€ ์ฝ”๋“œ๋ฒ ์ด์Šค ์ „๋ฐ˜์— ๊ฑธ์ณ ์ˆ˜๋ฐฑ ๊ฐ€์ง€์˜ ๋ฒ„๊ทธ ์ˆ˜์ •, ๋ฌธ์„œ ๊ฐœ์„  ๋ฐ ํŽธ์˜์„ฑ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ์ง„์‹ฌ์œผ๋กœ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฆด๋ฆฌ์Šค์—๋Š” ๋ชจ๋ธ๊ณผ ๋ฒค์น˜๋งˆํฌ์˜ ๊ฑฐ์ฃผ์ง€๋กœ LeRobot์„ ์„ ํƒํ•œ ํ•™๊ณ„, ์‚ฐ์—…๊ณ„ ๋ฐ ์ทจ๋ฏธ ํŒ€์˜ ์ž‘์—…์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  PR๊ณผ ๋ฒ„๊ทธ ๋ณด๊ณ ์„œ๋Š” ์˜คํ”ˆ์†Œ์Šค ๋กœ๋ณดํ‹ฑ์Šค๋ฅผ ๋ฐœ์ „์‹œํ‚ต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ์†Œ์‹์„ ๊ธฐ๋Œ€ํ•ด ์ฃผ์„ธ์š” ๐Ÿค— ์—ฌ๊ธฐ์—์„œ ์‹œ์ž‘ํ•˜์„ธ์š”! – LeRobot ํŒ€ ❤️


์›๋ฌธ ์ถœ์ฒ˜: https://huggingface.co/blog/lerobot-release-v060

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

LeRobot v0.4.0: Supercharging OSS Robot Learning

SmolVLA: Efficient Vision-Language-Action Model trained on Lerobot Community Data

LeRobot goes to driving school: World’s largest open-source self-driving dataset