Instructions to use lerobot-omx/omx-act-models with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use lerobot-omx/omx-act-models with LeRobot:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
- OMX pick and place ACT ๋ชจ๋ธ
OMX pick and place ACT ๋ชจ๋ธ
ํ๊ฐ ํ๋กํ ์ฝ
๋ ๋ชจ๋ธ ๋ชจ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค์ ๋ก๋ด์์ ์ธก์ ํ์ต๋๋ค.
- ์ฑ๊ณต ๊ธฐ์ค: 120์ด ์ด๋ด์ ๋ฌผ์ฒด๋ฅผ ์ง์ด ๋ชฉํ ์ง์ ์ ๋๊ธฐ
- 120์ด๋ฅผ ๋๊ธฐ๋ฉด ์คํจ๋ก ๊ธฐ๋กํ๊ณ ์ค๋จ
- ๋ฌผ์ฒด: ํ์ต์ ์ฌ์ฉํ ์ฃผํฉ์ ์ธํ. ์๋๋ง๋ค ์์น๋ฅผ ๋ฐ๊ฟ
- ์์ ์๊ฐ์ ๊ณผ์ ์๋ฃ ์์ ์ ๋ณ๋๋ก ์ธก์ ํ ๊ฐ. ์์ ๊ธธ์ด์ ์ผ์นํ์ง ์์
- ๋ก๋ด 1๋, ํ๊ฒฝ 1๊ณณ. ๋ฌผ์ฒด ์ขํ๋ฅผ ๊ธฐ๋กํ์ง ์์์ผ๋ฏ๋ก ๊ฐ์ ์กฐ๊ฑด์ผ๋ก ์ฌํํ ์ ์์
- ์กฐ๋ช ๊ณผ ๋ฐฐ๊ฒฝ์ ๋ฐ์ดํฐ์ ๊ณผ ์ผ์น์ํด
act_v1_50ep_50000steps
- ๋ฐ์ดํฐ์ : omx_pick_place_orange_doll (50 ์ํผ์๋, 25,445 ํ๋ ์)
- ์์ฐ ๋ฐฉ์: ๋ชจ๋ ๋์์ ์ฐ์ยท๋์ ์ํ. ์ด๋๊ณผ ์๋ชฉ ํ์ ์ ๊ฒน์นจ
- ํ์ต: ์ฒ์๋ถํฐ 50,000์คํ , ๋ฐฐ์น 8, 15.7 ์ํฌํฌ, 6์๊ฐ 32๋ถ
- ์ต์ข loss 0.082 (l1 0.080, kld 0.000)
- ๋กค์์: 6/10 ์ฑ๊ณต (60%, 95% ์ ๋ขฐ๊ตฌ๊ฐ 31~83%)
- ์ฑ๊ณต ์ ํ๊ท ์์ ์๊ฐ: 64.5์ด (6ํ)
- ๊ณต๊ฐ ์ฌ๋ณธ: yanwoo/omx_pick_place_act_train
์ฑ๊ณต ์์ 6๊ฑด์ rollouts/success/์ ์์ต๋๋ค. ํ์ผ๋ช ์ ์ซ์๋ ์ธก์ ๋ ์์ ์๊ฐ์ผ๋ก, ์์ ๊ธธ์ด๊ณผ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค.
์คํจ ํจํด
| ์์ธ | ๊ฒฐ๊ณผ | ์์ |
|---|---|---|
| ๋ชจํฐ ์๋ฌ (๊ทธ๋ฆฝํผ Overload) | ๋ชจํฐ๊ฐ ์๋ต์ ๋ฉ์ถฐ ์ค๋จ | failure_01 |
| ์ ๊ทผ ์์น๊ฐ ์ด๊ธ๋จ | 120์ด ์ด๊ณผ | failure_02 |
| ์ ๊ทผ ๊ฐ๋๊ฐ ์ด๊ธ๋จ | 120์ด ์ด๊ณผ | failure_03 |
| ๋ฌผ์ฒด๋ฅผ ์ก์ง ์์ ์ฑ ์ง๊ณ ๋๋ ๋์์ ๋ฐ๋ณต | 120์ด ์ด๊ณผ | failure_04 |
์ผ๋ฐํ ํ ์คํธ๋ก ํ์ต์ ์ฐ์ง ์์ ๋ฌผ์ฒด๋ฅผ 1ํ ์๋ํ๊ณ ์คํจํ์ต๋๋ค. ์๋ 1ํ์ด๋ฏ๋ก ์ฑ๊ณต๋ฅ ์ ํฌํจํ์ง ์์์ต๋๋ค. unseen_object_01
act_v3_finetune_20000steps
- ๋ฐ์ดํฐ์ : omx_pick_place_orange_doll_v3 (20 ์ํผ์๋, 23,327 ํ๋ ์)
- ์์ฐ ๋ฐฉ์: ๋์์ ๋จ๊ณ๋ก ๋ถํด. ๋์ ์ํ ์์
- ํ์ต: ์ v1 ๋ชจ๋ธ์์ ํ์ธํ๋, 20,000์คํ , 6.86 ์ํฌํฌ, 2์๊ฐ 34๋ถ
- ์ต์ข loss 0.078 (l1 0.076, kld 0.000)
- ๋กค์์: 2/7 ์ฑ๊ณต (29%, 95% ์ ๋ขฐ๊ตฌ๊ฐ 8~64%)
- ์ฑ๊ณต ์ ํ๊ท ์์ ์๊ฐ: 49์ด (2ํ)
- ๊ณต๊ฐ ์ฌ๋ณธ: yanwoo/omx_pick_place_act_v3
์์์ด ๋จ์ง ์์ ์๋๊ฐ 2ํ ์์ต๋๋ค. ์ฑ๊ณต 1ํ์ ์คํจ 1ํ์ด๋ฉฐ ์ง๊ณ์๋ ํฌํจํ์ต๋๋ค.
์คํจ ํจํด
| ์์ธ | ํ์ | ์์ |
|---|---|---|
| ๋์ ์ ํ ์ง์ ์์ ๊ฐํ 120์ด ์ด๊ณผ | 4 (์์ 3๊ฑด) | failure_01, failure_02, failure_03 |
| ๋ฌผ์ฒด๋ฅผ ๋์นจ | 1 | failure_04 |
๊ด์ฐฐ๋ ๋์
๋ก๋ด์ด ์ฒ์ฒํ ์กฐ์ฌ์ค๋ฝ๊ฒ ์์ง์ด๋ค๊ฐ, ํ ๋์์์ ๋ค์ ๋์์ผ๋ก ๋์ด๊ฐ์ผ ํ๋ ์ง์ ์์ ๊ฑฐ์ ๋ฉ์ถฅ๋๋ค.
๋ฏธ์ธํ๊ฒ ๋จ๊ฑฐ๋ ๊ฐ์ ์๋ฆฌ๋ฅผ ์ค๊ฐ๋ฉฐ ์ ํ ์๊ฐ์ ์์งํฉ๋๋ค.
v1์์ ๋ณด์๋ ๋ํญํ ์์ง์์ด๋ ํ๊ณต์ ์ง๋ ๋์์ ๋ํ๋์ง ์์์ต๋๋ค.
ํด์
ํ์ธ๋ ์ฌ์ค์ด ์๋๋ผ ๊ด์ฐฐ์ ๊ทผ๊ฑฐํ ๊ฐ์ค์ ๋๋ค.
perceptual aliasing: ๋์์ ๋์ด์ ์ดฌ์ํ๋ฉด ํ ๋์์ด ๋๋ ์งํ์ ๋ค์ ๋์์ด ์์๋๊ธฐ ์ง์ ์ ๊ด์ธก์ด ๊ฑฐ์ ๊ฐ์์ง๋๋ค.
ํ ์์ธ๋ ์นด๋ฉ๋ผ ์์๋ ๋น์ทํ ์ํ์์ ์๋ก ๋ค๋ฅธ ํ๋์ ๋ด์ผ ํฉ๋๋ค.
mode averaging: ๊ตฌ๋ถ๋์ง ์๋ ์ํ์์ ํ์ต ๋ฐ์ดํฐ๊ฐ ์ฌ๋ฌ ๋ฐฉํฅ์ ํ๋์ ์๊ตฌํ๋ฉด ์ ์ฑ ์ ๊ทธ ํ๊ท ์ ๊ฐ๊น์ด ์ถ๋ ฅ์ ๋ ๋๋ค.
๋ฐ๋ ๋ฐฉํฅ์ ํ๊ท ํ๋ฉด ๊ฑฐ์ ์ ์๋ฆฌ๊ฐ ๋ฉ๋๋ค.
๊ฐ๋ฃจํ ๊ตฌ๊ฐ: ACT๋ ํ ๋ฒ์ ์ถ๋ก ์ผ๋ก ์ฌ๋ฌ ์คํ ์ ํ๋์ ๋ฏธ๋ฆฌ ๋ด๋๊ณ ๊ทธ๋์ ์ ๊ด์ธก์ ๋ฐ์ํ์ง ์์ต๋๋ค.
์ ํ ์ง์ ์์ ์๋ชป๋ ๊ตฌ๊ฐ์ด ํ ๋ฒ ๋์ค๋ฉด ๊ทธ ๊ตฌ๊ฐ์ด ๋๋ ๋๊น์ง ์์ ๋์ง ์์ต๋๋ค.
act_v3_light_2000steps / act_v3_light_4000steps
- ๋ฐ์ดํฐ์ : omx_pick_place_orange_doll_v3 (20 ์ํผ์๋, 23,327 ํ๋ ์)
- ํ์ต: act_v1_50ep_50000steps ์์ ํ์ธํ๋. 2,000์คํ ๊ณผ 4,000์คํ ์ฒดํฌํฌ์ธํธ
- ๋ชฉ์ : ๋ชจ๋ธ 1๊ณผ 20,000์คํ ๋ชจ๋ธ ์ฌ์ด์ ์ ์ ์ ๋๋ฅผ ๋น๊ตํ๊ธฐ ์ํ ์ค๊ฐ ์ง์
- 2,000์คํ : 0.69 ์ํฌํฌ, loss 0.155 (l1 0.153)
- 4,000์คํ : 1.37 ์ํฌํฌ, loss 0.127 (l1 0.126), 28๋ถ 24์ด
- 4,000์คํ ์์๋ loss๊ฐ ํ๊ฐ ์ค์ด๋ฏ๋ก ์๋ ด ์ํ๊ฐ ์๋
- ๋กค์์ ๋ฏธ์ธก์
- ๊ณต๊ฐ ์ฌ๋ณธ: yanwoo/omx_pick_place_act_v3_light (4,000์คํ ๋ง)
๋ ๋ชจ๋ธ์ ๋น๊ต์ ๋ํ์ฌ
์ฑ๊ณต๋ฅ ์ ๋น๊ต ๊ทผ๊ฑฐ๋ก ์ฐ์ง ๋ง์ธ์. ์๋ ํ์๊ฐ ๊ฐ๊ฐ 10ํ์ 7ํ์ฌ์ ์ ๋ขฐ๊ตฌ๊ฐ์ด 31~64% ๊ตฌ๊ฐ์์ ํฌ๊ฒ ๊ฒน์นฉ๋๋ค.
๋น๊ตํ ์ ์๋ ๊ฒ์ ์คํจ ๋ฐฉ์์ ๋๋ค.
v1์ ๋ชจํฐ ์๋ฌ, ์์น, ๊ฐ๋, ๋น ์ง๊ธฐ๋ก ์์ธ์ด ๋ค ๊ฐ๋๋ก ๊ฐ๋ ธ๊ณ , v3 ํ์ธํ๋ ๋ชจ๋ธ์ ์คํจ 5ํ ์ค 4ํ๊ฐ ๋์ ์ ํ ์ง์ ์์ ๊ฐํ๋ ๊ฐ์ ํจํด์ ๋๋ค.
ํ๋ณธ์ด ์์๋ ํ ๊ฐ์ง ๋ชจ๋๊ฐ ๋ฐ๋ณต๋๋ค๋ ์ฌ์ค์ ๊ทธ ์์ฒด๋ก ์ ๋ณด์ ๋๋ค.
๋ค์ ์์ ์ ๊ณํํ์ผ๋ ๊ต์ก ๊ณผ์ ์ด ๋๋ ๋ก๋ด์ ๋ฐ๋ฉํ๋ฉด์ ์ํํ์ง ๋ชปํ์ต๋๋ค.
- ๋ ๋ฐ์ดํฐ์ ์ ๋ณํฉํด ํ์ตํ ๋ชจ๋ธ๊ณผ์ ๋น๊ต
- ์ถฉ๋ถํ ์๋ ํ์๋ก ๊ฐ์ ํ๋กํ ์ฝ์์ ์ฌ์ธก์
- n_action_steps ๋ฅผ ์ค์ฌ ์ ํ ์ง์ ์์ ๊ด์ธก์ ๋ ์์ฃผ ๋ฐ์ํ๋๋ก ํ ์คํ
- temporal_ensemble_coeff ๋ฅผ ์ฌ์ฉํ ์ถ๋ก
์คํจ ๋ชจ๋์์ ์ด์ด์ง ์์
v1์ ์คํจ ๋ชจ๋๊ฐ ๋ ๋ฐฉํฅ์ ํ์ ์์ ์ผ๋ก ๊ฐ๋ ธ์ต๋๋ค.
๋ชจํฐ ์๋ฌ
๋ชจํฐ ์๋ฌ๋ ์ ์ฑ ์ด ์๋๋ผ ํ๋์จ์ด ์ค์ ๋ฌธ์ ์์ต๋๋ค.
๊ทธ๋ฆฝํผ๊ฐ ๋ฌผ์ฒด์ ๋ฟ์ ๋ค ๊ตฌ๋ ์ถ๋ ฅ์ด ์ํ์ ๋ถ์ ์ํ๋ก ์ ์ง๋๋ฉฐ Overload๊ฐ ๊ฑธ๋ ธ๊ณ , ๋ชฉํ ์ ๋ฅ์ ์์น ๊ฒ์ธ์ ์กฐ์ ํด ํด๊ฒฐํ์ต๋๋ค.
์ด๋ ์ ๋ฆฌํ ์ง๋จ ์ ์ฐจ๊ฐ ๋ค์ ๋ ์ ์ฅ์๊ฐ ๋์์ต๋๋ค.
- lerobot-omx/omx-setup ๋ณต์ฌํด์ ๋ฐ๋ผ ํ๋ ํธ๋ฌ๋ธ์ํ ๊ฐ์ด๋
- omx-doctor ๊ฐ์ ์ ์ฐจ๋ฅผ CLI๋ก ๋ง๋ ๋๊ตฌ
์ ๊ทผ ์์น์ ๊ฐ๋๊ฐ ์ด๊ธ๋๋ ์คํจ
์ด ๋ฌธ์ ์ ์์ธ์ ์์ฐ ๋ฐ์ดํฐ๋ก ๋ณด์์ต๋๋ค.
๋ชจ๋ ๋์์ด ์ด์ด์ ธ์ ์ํ๋ ๋ฐ์ดํฐ๋ก๋ ๊ฐ ๋์์ ์์ ์กฐ๊ฑด์ด ๋ถ๋ฆฌ๋์ง ์์ต๋๋ค.
๊ทธ๋์ ๋์์ ๋จ๊ณ๋ณ๋ก ๋์ด ์ํํ ๋ฐ์ดํฐ์ v3๋ฅผ ์๋ก ์ดฌ์ํ๊ณ ํ์ธํ๋ํ์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ๊ฐ act_v3_finetune_20000steps ์ด๋ฉฐ, ์ฑ๊ณต๋ฅ ์ ํฐ ๊ฐ์ ์ ์์์ง๋ง ์คํจ ๋ชจ๋๊ฐ ๋ฐ๋์์ต๋๋ค.
์ฆ, ์๋ก์ด ๋ฌธ์ ๊ฐ ๋ํ๋๊ธด ํ์ง๋ง, ๊ธฐ์กด์ ๋ฌธ์ ๋ ํด๊ฒฐ๋์์ต๋๋ค.
v3 ์ ์ ์ ๋๋ณ ๋น๊ต
| ๋ชจ๋ธ | v3 ์ ์ ์คํ | v3 ์ํฌํฌ | v3 loss |
|---|---|---|---|
| act_v1_50ep_50000steps | 0 | 0 | 0.32 ์ด์ |
| act_v3_light_2000steps | 2,000 | 0.69 | 0.155 |
| act_v3_light_4000steps | 4,000 | 1.37 | 0.127 |
| act_v3_finetune_20000steps | 20,000 | 6.86 | 0.078 |
loss๊ฐ ๋ฎ์ ์ชฝ์ด ๋กค์์์์ ๋ ๋์ ๊ฒ์ ์๋๋๋ค.
20,000์คํ ๋ชจ๋ธ์ด ๊ฐ์ฅ ๋ฎ์ loss๋ฅผ ๊ธฐ๋กํ์ง๋ง ์ ํ ์ง์ ๊ต์ฐฉ์ด ๋ํ๋ฌ์ต๋๋ค.
๋๋ ํฐ๋ฆฌ ๊ตฌ์ฑ
- pretrained_model/ ์ถ๋ก ์ฉ ๊ฐ์ค์น์ config
- training_state/ ์ตํฐ๋ง์ด์ ยท๋์ ์ํยท์คํ ์นด์ดํฐ. ๊ฐ์ ๋ฐ์ ์ด์ด๊ฐ ๋๋ง ์ฐ์
- rollouts/ ๋กค์์ ์์. success, failure, generalization ์ผ๋ก ๋๋จ. 720p 30fps ๋ฌด์์ผ๋ก ๋ค์ ์ธ์ฝ๋ฉํจ.
์ถ๋ก ์ฉ์ผ๋ก ์ธ ๋
hf download lerobot-omx/omx-act-models \
--include "act_v1_50ep_50000steps/pretrained_model/*" \
--local-dir ./dl
๊ตฌ๋ฒ์ LeRobot์์๋ config.json์ optimizer_fused ํ๋๋ฅผ ์ง์์ผ ํฉ๋๋ค.
--policy.path ์๋ ํธ๋๊ฐ ํ์ฅ๋์ง ์์ผ๋ $HOME ๋๋ ์ ๋๊ฒฝ๋ก๋ฅผ ์ฐ์ธ์.
์ถ๊ฐ ํ์ต์ผ๋ก ์ด์ด๊ฐ ๋
resume ์ ์ฒดํฌํฌ์ธํธ๊ฐ ์๋ ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ์ ์์ด์ผ ๋์ํฉ๋๋ค.
mkdir -p ~/outputs/train/omx_act/checkpoints
# ๋ด๋ ค๋ฐ์ 050000 ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ๊ฒฝ๋ก๋ก ์ฎ๊ธด ๋ค
cd ~/outputs/train/omx_act/checkpoints && ln -s 050000 last
lerobot-train \
--config_path=$HOME/outputs/train/omx_act/checkpoints/last/pretrained_model/train_config.json \
--resume=true
์ฃผ์ 1
๋ ๋ชจ๋ธ ๋ชจ๋ ์ง์ ํ ์คํ ์ ์ด๋ฏธ ๋ค ๋์์ต๋๋ค.
๊ทธ๋๋ก resume ํ๋ฉด ์ข ๋ฃ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋์ด ๋ฐ๋ก ๋๋ฉ๋๋ค.
train_config.json ์ steps ๋ฅผ ๋จผ์ ์ฌ๋ฆฌ์ธ์.
์ฃผ์ 2
๋ฐ์ดํฐ์ ์ ๋ฐ๊ฟ ์ด์ด ํ์ตํ๋ ๊ฒ์ resume ์ด ์๋๋ผ ํ์ธํ๋์ ๋๋ค.
๊ทธ๋๋ --policy.path ๋ก pretrained_model ๊ฒฝ๋ก๋ฅผ ์ฃผ๊ณ ์ ๋ฐ์ผ๋ก ์์ํ๋ฉฐ, training_state/ ๋ ์ฐ์ด์ง ์์ต๋๋ค.