Instructions to use gc22-shin/pour_bottle_act with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- LeRobot
How to use gc22-shin/pour_bottle_act 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
pour_bottle_act โ ์์ฝ ๋ถ๊ธฐ
OMX "์์ฝ ๋ถ์ด์ค" ํ์คํฌ์ฉ ACT ์ ์ฑ ๋ชจ์. ํ์ต ์กฐ๊ฑด๋ณ ๋ชจ๋ธ์ด ํด๋๋ก ๋๋์ด ์๊ณ , ๊ฐ ํด๋ ์์ ์ฒดํฌํฌ์ธํธ step๋ณ ํ์ ํด๋๊ฐ ์์ต๋๋ค.
๋ฐ์ดํฐ
- gamzadole/ARMCHEMIST_POUR_BOTTLE โ 30 ์ํผ์๋ ร 10์ด, 30fps, 9,051 ํ๋ ์
- ์
๋ ฅ/์ถ๋ ฅ: ์นด๋ฉ๋ผ 3๋ (
cam_head,cam_head_depth,cam_wrist), state/action 6์ฐจ์ (์ผํ joint1โ5 + gripper)
๋ชจ๋ธ
fps(15/30)์ ์ ๋งคํ ์ํผ์๋ ํฌํจ ์ฌ๋ถ๋ก 4๊ฐ ์กฐ๊ฑด์ ํ์ตํ์ต๋๋ค. ์ฒดํฌํฌ์ธํธ๋ 10k๋ง๋ค ์ ๋ถ ์ฌ๋ ธ์ต๋๋ค.
- ์ ๋งคํ ์ํผ์๋: 9 (๋ณต๊ท ์ค๋ฅ), 19 (์์ํ ๋ ํ์ด ๋ณด์) โ
*_excl_ambiguous๋ ์ ์ธ,*_incl_ambiguous๋ ํฌํจ - ์๋ชฉ ์นด๋ฉ๋ผ(
cam_wrist)๊ฐ ๋๋ถ๋ถ ํ์๊ฒ ํฌํ๋ผ ์์ต๋๋ค(ํ๊ท ๋ฐ๊ธฐ 248, ํฝ์ 93% ํฌํ). ๊ฐ์ ์ผํ ์๋ชฉ ์นด๋ฉ๋ผ๋ฅผ ์ฐ๋ ๋ค๋ฅธ ๋ฐ์ดํฐ(์์ฝํต ์ก๊ธฐ/๋ด๋ ค๋๊ธฐ)๋ ํฌํ 0%์ ๋๋ค. ์ด ์ํ ๊ทธ๋๋ก 3์บ ์ผ๋ก ํ์ตํ์ผ๋ฏ๋ก, ์ถ๋ก ๋๋ ์๋ชฉ ์นด๋ฉ๋ผ๊ฐ ๊ฐ์ ๋ ธ์ถ์ด์ด์ผ ํ์ต ์กฐ๊ฑด๊ณผ ๋ง์ต๋๋ค. - ๋ฐ์ดํฐ๊ฐ ์์์(์ฝ 9์ฒ ํ๋ ์) epoch๊ฐ ๋งค์ฐ ๋ง์ต๋๋ค. 10k~40k ์ฒดํฌํฌ์ธํธ๋ฅผ ๋จผ์ ์ํํด ๋ณด๊ธธ ๊ถํฉ๋๋ค.
| ํด๋ | fps | ์ ์ธ ์ํผ์๋ | ํ์ต ๋ฐ์ดํฐ | chunk / n_action_steps | epoch | ์ต์ข loss |
|---|---|---|---|---|---|---|
15fps_excl_ambiguous/ |
15 | 9, 19 | 28 ep / 4,232 ํ๋ ์ | 40 / 10 | 189 | 0.041 |
15fps_incl_ambiguous/ |
15 | ์์ | 30 ep / 4,533 ํ๋ ์ | 40 / 10 | 176 | 0.044 |
30fps_excl_ambiguous/ |
30 | 9, 19 | 28 ep / 8,450 ํ๋ ์ | 80 / 20 | 95 | 0.043 |
30fps_incl_ambiguous/ |
30 | ์์ | 30 ep / 9,051 ํ๋ ์ | 80 / 20 | 88 | 0.043 |
pour_bottle_act/
โโโ 15fps_excl_ambiguous/ (100k, 090k, 080k, 070k, 060k, 050k, 040k, 030k, 020k, 010k)
โโโ 15fps_incl_ambiguous/ (100k, 090k, 080k, 070k, 060k, 050k, 040k, 030k, 020k, 010k)
โโโ 30fps_excl_ambiguous/ (100k, 090k, 080k, 070k, 060k, 050k, 040k, 030k, 020k, 010k)
โโโ 30fps_incl_ambiguous/ (100k, 090k, 080k, 070k, 060k, 050k, 040k, 030k, 020k, 010k)
๊ฐ ์ฒดํฌํฌ์ธํธ ํด๋(์: 15fps_excl_ambiguous/100k/)์๋ config.json, model.safetensors, train_config.json์ด ๋ค์ด ์์ต๋๋ค.
์ฒดํฌํฌ์ธํธ ์ ํ
๋ฐ์ดํฐ๊ฐ ์์์ 100k step ๋์ ๋ฐ์ดํฐ๋ฅผ ์ฝ 88189๋ฒ ๋ฐ๋ณตํด์ ๋ดค์ต๋๋ค(epoch). ๊ณผ์ ํฉ๋์ ๊ฐ๋ฅ์ฑ์ด ํฌ๋, ๋ก๋ด์์๋ **10k40k ์ฒดํฌํฌ์ธํธ๋ถํฐ** ์ํํด ๋ณด์ธ์. ํ์ต loss๋ ๊ฒ์ฆ loss๊ฐ ์๋๋ผ์ loss๊ฐ ๋ฎ์ ์ฒดํฌํฌ์ธํธ๊ฐ ์ค์ ๋ก ๋ ์ํ๋ค๋ ๋ณด์ฅ์ ์์ต๋๋ค.
๋ถ๋ฌ์ค๊ธฐ
์ด LeRobot ๋ฒ์ ์ repo ์์ ํ์ ํด๋๋ฅผ --policy.path๋ก ๋ฐ๋ก ์ง์ ํ ์ ์์ด์, ํ์ํ ํด๋๋ง ๋ฐ์์ ๋ก์ปฌ ๊ฒฝ๋ก๋ก ์ง์ ํฉ๋๋ค.
hf download gc22-shin/pour_bottle_act --include "15fps_excl_ambiguous/100k/*" --local-dir ckpt/pour_bottle_act
--policy.path=ckpt/pour_bottle_act/15fps_excl_ambiguous/100k
์ถ๋ก fps๋ฅผ ํ์ต๊ณผ ๋ง์ถฐ์ผ ํฉ๋๋ค. 15fps ๋ชจ๋ธ์ 15fps๋ก, 30fps ๋ชจ๋ธ์ 30fps๋ก ๋๋ฆฌ์ธ์. chunk ๊ธธ์ด๊ฐ ํ๋ ์ ๋จ์๋ผ fps๊ฐ ๋ค๋ฅด๋ฉด ๋์ ์๋๊ฐ ๋ฌ๋ผ์ง๋๋ค.
15fps ๋ชจ๋ธ์ ์๋ณธ(30fps)์์ ์ง์ ํ๋ ์๋ง ๋จ๊ฒจ ํ์ตํ์ต๋๋ค. ์๋ณธ ์นด๋ฉ๋ผ๊ฐ ์ค์ ๋ก๋ 15Hz๋ผ 30fps ์์์ ๋ ํ๋ ์๋ง๋ค ๊ฐ์ ์์์ด ๋ฐ๋ณต๋๋๋ฐ, ์ง์ ํ๋ ์๋ง ์ฐ๋ฉด ๋ณต์ ํ๋ ์์ด ์์ด์ง๋๋ค.
๊ณตํต ํ์ต ์ค์
| ํญ๋ชฉ | ๊ฐ |
|---|---|
| ์ ์ฑ | ACT (resnet18 ImageNet backbone, dim_model 512, heads 8, enc 4 / dec 1) |
| VAE | latent 32, kl_weight 10 |
| lr / backbone lr / weight decay | 1e-5 / 1e-5 / 1e-4 |
| batch | 8, AMP on, seed 1000, temporal ensemble ์ฌ์ฉ ์ ํจ |
| chunk | ์๊ฐ ๊ธฐ์ค์ผ๋ก ๋ง์ถค: 2.7์ด ์์ธก, 0.67์ด๋ง๋ค ์ฌ์ถ๋ก (15fps: chunk 40 / n_action_steps 10, 30fps: 80 / 20) |
LeRobot commit 989f3d0, RTX 3080 1์ฅ.
ACT๋ ํ์ต loss๊ฐ ๊ฐ์ฅ ๋ฎ์ ์ฒดํฌํฌ์ธํธ๊ฐ ์ค์ ๋ก ๊ฐ์ฅ ์ํ์ง๋ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ผ๋, ์ค์ ๋ก๋ด์์ ๋น๊ตํด์ ๊ณ ๋ฅด์ธ์.