YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
real_franka_demospeed
์ค๊ธฐ Franka air_frier ๋ฐ์ดํฐ์ DemoSpeedup (Guo et al., CoRL 2025 โ entropy ๊ธฐ๋ฐ ์์ฐ ๊ฐ์)์
์ ์ฉํด ํ์ตํ GR00T-N1.5 ์ฒดํฌํฌ์ธํธ์
๋๋ค. ๊ตฌ์กฐยท์ฝ๋๋ TTaekwan/real_franka_basline/air_frier
(MoSS GR00T, SAIL โ EAG: linear LR, future token 32)์ ์์ ํ ๊ฐ๊ณ , ํ์ต ๋ฐ์ดํฐ์ ์๊ฐ์ถ๋ง ๋ค๋ฆ
๋๋ค.
๊ทธ๋์ baseline ๊ณผ ๊ฐ์ ์ถ๋ก ๋ฐฐ์ ์ผ๋ก ๊ทธ๋๋ก ๋์๊ฐ๋๋ค.
ํด๋
| ํด๋ | step | ๋ฌด์ |
|---|---|---|
air_frier_30k |
30,000 (์ต์ข ) | DemoSpeedup ํ์ต๋ณธ. ์ด๊ฑธ ์ฐ์ญ์์ค |
air_frier_20k |
20,000 (๊ฐ์ ํ์ต์ checkpoint-20000) | ์ค๊ฐ ์ง์ ๋น๊ต์ฉ |
keep_v1-2_kde_zm0p3/ |
โ | ํ์ต์ ์ด entropy phase ๋ผ๋ฒจ (labels.parquet, summary.json). ์ถ๋ก ์ ํ์ ์์ |
code_human_data_moss.tar.gz |
โ | ํ์ตยท์ถ๋ก ์ฝ๋ (gr00t/ ํจํค์ง + scripts/). baseline ๊ณผ ๊ฐ์ MoSS GR00T |
train_manifest_mlxp.yaml, slurm_entropy_air_frier.sh |
โ | ํ์ต ์ก ยท entropy ์ถ์ถ ์ก ์๋ณธ |
infer_smoke/ |
โ | ๋ฆด๋ฆฌ์ค ์ ์ถ๋ก ์ค๋ชจํฌ ์คํฌ๋ฆฝํธ์ ๊ฒฐ๊ณผ json |
๊ฐ ํด๋: config.json ยท model-0000{1,2}-of-00002.safetensors ยท model.safetensors.index.json ยท
experiment_cfg/metadata.json(์ ๊ทํ ํต๊ณ, ํค new_embodiment) ยท trainer_state.json ยท training_args.bin.
optimizer ๋ ์์ต๋๋ค(์ถ๋ก ์ ์ฉ).
์ด๋ป๊ฒ ๋ง๋ค์๋
nvidia/GR00T-N1.5-3B โโ(์๋ณธ air_frier 50 ep, 30k)โโโถ base30k (= real_franka_basline/air_frier)
โ ํ๋ ์๋ง๋ค action chunk 10๊ฐ ์ํ โ KDE entropy
โผ HDBSCAN, precision_z โ0.3 โ phase 0/1 ๋ผ๋ฒจ
nvidia/GR00T-N1.5-3B โโ(์๋ณธ air_frier 50 ep + ๋ผ๋ฒจ, 30k)โโโถ air_frier_30k (์ด repo)
- base30k ๋ entropy ๊ณ์ฐ์๋ง ์ผ์ต๋๋ค. ์ด ๋ชจ๋ธ์ init ์ pretrained N1.5-3B ์ ๋๋ค.
- ๋ฐ์ดํฐ๋ downsample ํ์ง ์์์ต๋๋ค. ๋ก๋๊ฐ ํ์ต ์ํ๋ง๋ค action chunk ๋ง ๋ผ๋ฒจ๋๋ก ๋ค์ ์ฝ์ต๋๋ค: precision(entropy ๋ฎ์) ๊ตฌ๊ฐ์ ๋ณดํญ 1, coarse(entropy ๋์) ๊ตฌ๊ฐ์ ๋ณดํญ 2 โ coarse ๊ตฌ๊ฐ์์ ํ ํ๋ ์์ฉ ๊ฑด๋๋ด target ์ ๋ฐฐ์๋๋ค. observation ์ 12,205 ํ๋ ์ ์ ๋ถ ๊ทธ๋๋ก anchor ๋ก ๋ค์ด๊ฐ๋๋ค(๋ ผ๋ฌธ์ training-time ๋ฐฉ์).
- ๋ผ๋ฒจ ํต๊ณ: precision 57.0%, ๊ณ ์ ํ์๋ผ์ธ ๊ธฐ์ค ์์ถ x1.256 (์ํผ์๋ ํ๊ท 244 โ 194 ํ๋ ์). ์ฆ ์ ๊ทผยท์ด๋ ๊ตฌ๊ฐ์ 2๋ฐฐ, ์ง๊ธฐยท๋๊ธฐ ๊ตฌ๊ฐ์ ์์๋๋ก ๋ฐฐ์ด ์ ์ฑ ์ ๋๋ค.
- ํ์ต ์ธ์๋ baseline ๊ณผ ๋์ผ:
real_droid_jointยทnew_embodimentยท bs 32ร2 GPU(gbs 64) ยท 30k step ยท save 10k ยทtorchvision_av(keyframe ๋ฒ๊ทธ ์์ ํ) ยท ์์ 448ร252. ์ต์ข loss 0.0074 (baseline ๊ณผ ๊ฐ์ ์์ค).
์ถ๋ก ๋ฐฐ์
baseline(real_franka_basline/air_frier)๊ณผ ๋๊ฐ์ด ๋์ฐ๋ฉด ๋ฉ๋๋ค. ๋ผ๋ฒจยท๋ณดํญ ๊ฐ์ ๊ฒ์ ์ถ๋ก ์ ๋๊ธธ ๊ฒ์ด ์์ต๋๋ค.
tar xzf code_human_data_moss.tar.gz # human_data/{gr00t,scripts}
export PYTHONPATH=$PWD/human_data
python human_data/scripts/eval/serve_policy.py \
--model-path <air_frier_30k ๋๋ ํฐ๋ฆฌ ๋๋ TTaekwan/real_franka_demospeed ์ ํ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ์ ๊ณณ> \
--embodiment-tag new_embodiment \
--data-config real_droid_joint \
--denoising-steps 4 --port 5555
| ํญ๋ชฉ | ๊ฐ |
|---|---|
| ๋ชจ๋ธ ํด๋์ค | gr00t.model.gr00t_n1_MoSS.GR00T_N1_MoSS (config.json architectures), prediction_mode: base |
| policy | gr00t.model.policy.Gr00tPolicy (human_data ํ). get_action(obs) โ dict |
| data config | real_droid_joint (gr00t/experiment/data_config.py) |
| embodiment tag | new_embodiment โ ํ์ต ๊ฐ. experiment_cfg/metadata.json ์ ํค์ ๊ฐ์์ผ ์ ๊ทํ ํต๊ณ๋ฅผ ์ฐพ์ต๋๋ค |
| observation (1 ํ๋ ์) | T ์ถ ์์ด ๋ฃ์ต๋๋ค: video.exterior_image_1_left (H,W,3) uint8 ยท video.wrist_image_left (H,W,3) uint8 ยท state.joint_pos_abs (7,) ยท state.gripper_close (1,) ยท annotation.human.action.task_description str. get_action ์ด ์ค์ค๋ก T=1 ์ ๋ถ์
๋๋ค. โ (1,H,W,3) ์ฒ๋ผ T ์ถ์ ๋ถ์ฌ ์ฃผ๋ฉด MoSS transform ์ batched ๊ฒฝ๋ก๋ก ๋ค์ด๊ฐ eval ์์ eagle_pixel_values 5์ฐจ์ ์ค๋ฅ๋ก ์ฃฝ์ต๋๋ค (2026-09-25 ํ์ธ) |
| ์์ ํด์๋ | ํ์ต์ 448ร252 (16:9). transform ์ด crop 0.95 โ 224ร224 resize ํ๋ฏ๋ก ๊ฐ์ ์นด๋ฉ๋ผยท๋น์จ์ด๋ฉด ์๋ณธ 1280ร720 ๋ ๋ฉ๋๋ค |
| ์ธ์ด | "Open the air fryer basket, put the food from the plate into the basket, and close the basket." (๋ฐ์ดํฐ์
meta/tasks.jsonl) |
| action ์ถ๋ ฅ | action.joint_pos_abs (16,7) ์ ๋ ๊ด์ ๊ฐ ยท action.gripper_close (16,1) โ ์ ๊ทํ ํด์ ๋ ๊ฐ |
| ์ ๊ทํ | stateยทaction ๋ชจ๋ min_max (experiment_cfg/metadata.json) |
| denoising steps | 4 (num_inference_timesteps) |
| ์ ์ด ์ฃผ๊ธฐ | ๋ฐ์ดํฐ์ ๊ฐ์ 10 Hz. row ํ๋ = ์ ์ด ์ฃผ๊ธฐ ํ๋. ๊ฐ์์ ๋ชจ๋ธ์ด ์ด๋ฏธ target ์ ๋ฃ์ด ๋์ผ๋ฏ๋ก ํด๋ผ์ด์ธํธ์์ ๊ฑด๋๋ฐ๊ฑฐ๋ ๋นจ๋ฆฌ ์ฌ์ํ์ง ๋ง์ญ์์ค |
| replan | baseline ๊ณผ ๊ฐ์ ๊ฐ์ ์ฐ์ญ์์ค (chunk 16 row ์ ๋ถ ์คํ ํ ์ฌ์ถ๋ก , ๋๋ ์ฐ๋ replan step). ๋น๊ต ์คํ์ด๋ฉด baseยทspeedup ๋ ๋ค ๊ฐ์ ๊ฐ |
| DiT ํ | [state 1][future 32][action 16], PE ๋ ์ค ์ ์ฒด (MoSS ๊ท์ฝ, real_franka_ATQ README ์ (b)) |
ํด๋ผ์ด์ธํธ (gr00t/eval/robot.py):
from gr00t.eval.robot import RobotInferenceClient
client = RobotInferenceClient(host="<์๋ฒ IP>", port=5555)
modality = client.get_modality_config() # ๋ณด๋ด์ผ ํ ํค
action = client.get_action(obs) # obs -> {"action.joint_pos_abs": (16,7), "action.gripper_close": (16,1)}
๊ธฐ๋ ํจ๊ณผ: ๊ฐ์ replan ๊ท์น์์ baseline ๋๋น ์ํผ์๋ ์๊ฐ โ 1/1.25 (coarse ๊ตฌ๊ฐ๋ง 2๋ฐฐ). ์ ๋ฐ ๊ตฌ๊ฐ์ ์ฑ๊ณต๋ฅ ์ ์ ์ง๋๋ ๊ฒ์ด ๋ ผ๋ฌธ์ ์ฃผ์ฅ์ด๊ณ , ์ด ์ค๊ธฐ ์คํ์ด ๊ทธ๊ฒ์ ํ์ธํ๋ ์๋ฆฌ์ ๋๋ค.
์ถ๋ก ์ค๋ชจํฌ (๋ฆด๋ฆฌ์ค ์ ํ์ธ)
MLXP GPU ์ปจํ
์ด๋์์ ์ ๋ฐฐ์ ๊ทธ๋๋ก(Gr00tPolicy + real_droid_joint + new_embodiment, denoising 4)
air_frier ์ํผ์๋ 0 ์ ์ค์ ๊ด์ธก์ผ๋ก get_action ์ ํธ์ถํ์ต๋๋ค.
| frame | action.joint_pos_abs |
action.gripper_close |
์ง์ฐ(s) | 1๋ฐฐ์ ์์ฐ ๋๋น ํ๊ท ์ ๋ ์ค์ฐจ (rad) |
|---|---|---|---|---|
| 0 | (16,7) | (16,1) | 0.56 (warm-up) | 0.065 |
| 5 | (16,7) | (16,1) | 0.06 | 0.083 |
| 50 | (16,7) | (16,1) | 0.07 | 0.052 |
| 120 | (16,7) | (16,1) | 0.07 | 0.011 |
| 200 | (16,7) | (16,1) | 0.07 | 0.012 |
| 300 | (16,7) | (16,1) | 0.06 | 0.043 |
๊ฐ์ ์ ๋ถ ์ ํ. ์ํผ์๋ ์ด๋ฐ(0~50, ์ ๊ทผ ๊ตฌ๊ฐ = coarse)์ ์ค์ฐจ๊ฐ ์ ๋ฐ ๊ตฌ๊ฐ(120ยท200)๋ณด๋ค ํฐ ๊ฒ์ ์ ์์
๋๋ค โ
์ด ๋ชจ๋ธ์ coarse ๊ตฌ๊ฐ์์ 2 ํ๋ ์ ๋ค์ target ์ ๋ด๋ฏ๋ก 1๋ฐฐ์ ์์ฐ์ ๊ฐ์ index ์๋ ๋น์ฐํ ๋ค๋ฆ
๋๋ค.
๊ฐ์ ์ค๋ชจํฌ์์ real_franka_basline/air_frier ๋ฅผ ๋๋ฆฌ๋ฉด ์ด๋ฐ ์ค์ฐจ๊ฐ ์์์ผ ํ๊ณ , ๊ทธ ์ฐจ์ด๊ฐ ๊ฐ์์
๋๋ค.
๊ฒฐ๊ณผ json: infer_smoke/demospeed_30k_infer.json, ์คํฌ๋ฆฝํธ infer_smoke/infer_smoke.py.
์ฃผ์
- ์ฝ๋๋ MoSS ํ(
code_human_data_moss.tar.gz)์ ์ฐ์ญ์์ค.GR00T-action-quantization๊ณ์ด ์ฝ๋์torchvision_av๋์ฝ๋๋ keyframe ๋ง ๋๋ ค์ฃผ๋ ๋ฒ๊ทธ๊ฐ ์์ต๋๋ค(์ถ๋ก ์์์ ์นด๋ฉ๋ผ์์ ์ง์ ์ค๋ฏ๋ก ๋ฌด๊ดํ์ง๋ง, ๋ฐ์ดํฐ์ ์ผ๋ก ๊ฒ์ฆํ ๋ ๊ฑธ๋ฆฝ๋๋ค). MoSS ํgr00t/utils/video.pymd53a2861c4. - Eagle ๋ฐฑ๋ณธ์ ๋์ ๋ชจ๋์ด import ์์ ์ CUDA ๋ฅผ ์๊ตฌํฉ๋๋ค. GPU ์๋ ๋
ธ๋์์๋
--device cpu๋ฅผ ์ค๋ ์ฃฝ์ต๋๋ค. transformers==4.51.3,torch 2.7,timm,decordํ์ (ํ์ต ์ปจํ ์ด๋์ ๊ฐ์ ์กฐํฉ).