Cosmos3-Edge-Policy-DROID โ€” FastWAM two-pass + IsaacSim (v2), step 3000

nvidia/Cosmos3-Edge-Policy-DROID์˜ two-pass FastWAM fine-tune (v2) ์ค‘๊ฐ„ ์ฒดํฌํฌ์ธํŠธ์ž…๋‹ˆ๋‹ค. ๊ณ„ํš๋œ 100000 iter ์ค‘ 3% ์ง€์ ์ด๋ฉฐ ํ•™์Šต์€ ๊ณ„์† ์ง„ํ–‰ ์ค‘์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‰๊ฐ€์šฉ ์Šค๋ƒ…์ƒท์ด์ง€ ์ตœ์ข… ์‚ฐ์ถœ๋ฌผ์ด ์•„๋‹™๋‹ˆ๋‹ค.

  • ์ด ์ €์žฅ์†Œ๋Š” step๋ณ„ ํ•˜์œ„ ํด๋”(step3000/)์— ์ฒดํฌํฌ์ธํŠธ๋ฅผ ๋ˆ„์ ํ•ฉ๋‹ˆ๋‹ค. ๋ฃจํŠธ README๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์—…๋กœ๋“œ๋œ step์„ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
  • EMA ๊ฐ€์ค‘์น˜ ๊ธฐ์ค€ export (use_ema_weights: true)
  • training state ์—†์Œ โ€” optimizer/scheduler/trainer ์ƒํƒœ๋Š” ์—…๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  pretrained model ํŒŒ์ผ๋งŒ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์—์„œ์˜ "์žฌ๊ฐœ"๋Š” ์ •ํ™•ํ•œ resume์ด ์•„๋‹ˆ๋ผ ๊ฐ€์ค‘์น˜ warm start์ž…๋‹ˆ๋‹ค (optimizer ๋ชจ๋ฉ˜ํŠธ ์ดˆ๊ธฐํ™”, lr ์Šค์ผ€์ค„ ์žฌ์‹œ์ž‘).

๋ฌด์—‡์„ ํ•™์Šตํ•˜๋Š”๊ฐ€

--drop-generated-vision(FastWAM์‹ ์ถ”๋ก )์€ WAM ์‹œํ€€์Šค์—์„œ ๋ฏธ๋ž˜ ์˜์ƒ ํ† ํฐ ์•ฝ 3,060๊ฐœ๋ฅผ ์ œ๊ฑฐํ•ด latency๋ฅผ 233 ms โ†’ 185 ms(โˆ’21%)๋กœ ์ค„์ด์ง€๋งŒ, ํ•™์Šต ์—†์ด ์ ์šฉํ•˜๋ฉด ์ •ํ™•๋„๊ฐ€ ๋ถ•๊ดดํ•ฉ๋‹ˆ๋‹ค (open-loop MAE 0.111 โ†’ 0.197, state-hold ์ˆ˜์ค€). v2๋Š” ๊ทธ ๋ฐฐํฌ ์‹œํ€€์Šค์— ๋ชจ๋ธ์„ ์ ์‘์‹œํ‚ค๋˜, ์˜์ƒ ์˜ˆ์ธก ๋Šฅ๋ ฅ์„ ๋ฒ„๋ฆฌ์ง€ ์•Š๋„๋ก ๋งค ์Šคํ… ๋‘ ๊ฐœ์˜ pass๋ฅผ ํ•จ๊ป˜ ๋•๋‹ˆ๋‹ค.

pass ์‹œํ€€์Šค ์†์‹ค ๊ฐ€์ค‘์น˜
B [text | cond-frame vision | action] (๋ฐฐํฌ์™€ ๋™์ผํ•˜๊ฒŒ pruned) action flow-matching action_loss_weight = 10.0
A 33-frame ์ „์ฒด latent clip vision flow-matching loss_scale = 1.0

pruning์ด ๋ฐ์ดํ„ฐ์…‹์ด ์•„๋‹ˆ๋ผ ๋ชจ๋ธ ๋‚ด๋ถ€(inference_drop_generated_vision)๋กœ ์˜ฎ๊ฒจ์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์…‹์€ ์ „์ฒด ํด๋ฆฝ์„ ๊ทธ๋Œ€๋กœ ๋‚ด๋ณด๋‚ด๊ณ  (action_only_vision=false, encode_exact_durations=[33]), ๋‘ shape๊ฐ€ ๋งค ์Šคํ… ๋ฒˆ๊ฐˆ์•„ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ

ํ’€ ๋น„์œจ ๋‚ด์šฉ
DROID 3 nvidia/Cosmos3-DROID success + failure ์ „์ฒด, ๊ณต์‹ keep_ranges_1_0_1 ์œˆ๋„ ํ•„ํ„ฐ ์ ์šฉ. failure ์—ํ”ผ์†Œ๋“œ๋Š” video ๋ชฉ์ ํ•จ์ˆ˜์—๋งŒ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค (is_failure ํƒœ๊ทธ โ†’ action flow-matching ํ•ญ์—์„œ ๊ฐ€์ค‘์น˜ 0, ๋‹จ action token์€ ์‹œํ€€์Šค์— ์œ ์ง€๋˜์–ด pass A์˜ video ๋ถ„๊ธฐ๊ฐ€ action-conditioned๋กœ ๋‚จ์Œ).
sim 1 nvidia/PhysicalAI-Robotics-Manipulation-SingleArm (Franka Panda, IsaacSim) 4,211 ์—ํ”ผ์†Œ๋“œ / 300,665 ํ”„๋ ˆ์ž„์„ DROID ์Šคํ‚ค๋งˆ๋กœ ๋ณ€ํ™˜. keep-ranges ํ•„ํ„ฐ ์—†์Œ(ํ•ด๋‹น ํŒŒ์ผ์€ DROID์˜ gs:// URI๋กœ ํ‚ค๊ฐ€ ์žกํ˜€ ์žˆ์Œ), success split๋งŒ ์กด์žฌ.

sim ๋น„์œจ์„ 3:1๋กœ ๋ณด์ˆ˜์ ์œผ๋กœ ์žก์€ ์ด์œ : sim ๋กœ๋ด‡์€ ํ”„๋ ˆ์ž„๋‹น ์ด๋™๋Ÿ‰์ด DROID ํ…”๋ ˆ์˜คํผ๋ ˆ์ด์…˜์˜ ์•ฝ 6๋ฐฐ(0.0386 vs 0.0061 rad)์ด๊ณ  DROID ์ •๊ทœํ™” ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ด€์ ˆ ํฌ์ฆˆ๋ฅผ ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค (joint[4]๊ฐ€ ํ”„๋ ˆ์ž„์˜ 14.8%์—์„œ min-max ๋ฐ–). sim ๋น„์ค‘์„ ๋” ํ‚ค์šฐ๋ฉด ์ •์ฑ…์ด ํฐ ์Šคํ… ์ชฝ์œผ๋กœ ๋Œ๋ฆฝ๋‹ˆ๋‹ค. ๋ณ€ํ™˜๊ธฐ๋Š” ์†Œ์Šค์˜ ๊ด€์ ˆ ๋ธํƒ€๋ฅผ ์ ˆ๋Œ€ ๋ชฉํ‘œ๊ฐ’์œผ๋กœ ์ ๋ถ„ํ•ฉ๋‹ˆ๋‹ค โ€” ๋ฐ์ดํ„ฐ์…‹ ์นด๋“œ์˜ "joint motion"์„ ์•ก๋ฉด ๊ทธ๋Œ€๋กœ ๋ฐ›์•˜๋‹ค๋ฉด ์•ก์…˜ ๋ ˆ์ด๋ธ”์ด ์กฐ์šฉํžˆ ์˜ค์—ผ๋์„ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

RankPartitionedDataLoader๋Š” rank ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•˜๋ฏ€๋กœ 4 GPU์—์„œ 3:1์€ "์„ธ rank๊ฐ€ DROID, ํ•œ rank๊ฐ€ sim"์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค โ€” ๋น„์œจ์˜ ํ•ด์ƒ๋„๊ฐ€ world size์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ์„ค์ •

ํ•ญ๋ชฉ ๊ฐ’
experiment action_policy_droid_edge_ft_fastwam_v2
warm start geonmin-kim/Cosmos3-Edge-Policy-DROID-FastWAM-v2-step3000 (๊ฐ€์ค‘์น˜๋งŒ, optimizer ์ƒํƒœ ์—†์Œ)
max_iter 100000 (์ฒดํฌํฌ์ธํŠธ 3,000 iter๋งˆ๋‹ค)
optimizer FusedAdamW, lr 2e-4, action2llm/llm2action/action_modality_embed์— 5x multiplier
scheduler LambdaLinear, warmup 250, f_max 1.0 โ†’ f_min 0.1 (cycle 25,000). 25k ์ดํ›„ lr 2e-5๋กœ ์œ ์ง€๋˜๋Š” ์žฅ๊ธฐ ์ €-lr ๊ตฌ๊ฐ„
ํ•™์Šต ๋Œ€์ƒ gen expert + ๋ธŒ๋ฆฟ์ง€ โ€” ๋ฐฑ๋ณธ VLMยทVAE ๋™๊ฒฐ
์ •๋ฐ€๋„ / ๋ณ‘๋ ฌํ™” bfloat16, FSDP data_parallel_shard_degree=4, activation checkpointing full
ํ•˜๋“œ์›จ์–ด NVIDIA B300 ร—4

์‚ฌ์šฉ๋ฒ•

์ด ์ €์žฅ์†Œ๋Š” step๋ณ„ ํ•˜์œ„ ํด๋” ๊ตฌ์กฐ๋ผ ์„œ๋ฒ„๊ฐ€ repo id๋งŒ์œผ๋กœ ์ž๋™ ๋‹ค์šด๋กœ๋“œํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. snapshot_download๋กœ ์›ํ•˜๋Š” step๋งŒ ๋ฐ›์•„ ๋กœ์ปฌ ๊ฒฝ๋กœ๋ฅผ ๋„˜๊ธฐ์‹ญ์‹œ์˜ค.

from huggingface_hub import snapshot_download

path = snapshot_download(
    "geonmin-kim/Cosmos3-Edge-Policy-DROID-FastWAM-v2",
    allow_patterns="step3000/*",
)
ckpt = f"{path}/step3000"
# RoboLab ์ •์ฑ… ์„œ๋ฒ„ (RTX GPU ํ•„์ˆ˜ โ€” Isaac Sim ๋ Œ๋”๋Ÿฌ๊ฐ€ RT ์ฝ”์–ด๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค)
python -m cosmos_framework.scripts.action_policy_server_robolab \
    --checkpoint-path "$ckpt" --port 8000 \
    --format-prompt-as-json True --no-guardrails --drop-generated-vision

ํ‰๊ฐ€์— ๋Œ€ํ•œ ๊ฒฝ๊ณ 

  • loss ๊ณก์„ ์œผ๋กœ ํŒ์ •ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋งค์นญํ˜• ๋ชฉ์ ํ•จ์ˆ˜๋ผ ์„ฑ๊ณต/์‹คํŒจ ๋ชจ๋‘ ๊ณก์„ ์ด ํ‰ํƒ„ํ•ฉ๋‹ˆ๋‹ค.
  • open-loop MAE๋Š” ์‹ ๋ขฐํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด ํ”„๋กœ์ ํŠธ์—์„œ ์„ธ ๋ฒˆ ๋ฐฉํ–ฅ์„ ๋ฐ˜๋Œ€๋กœ ๊ฐ€๋ฆฌ์ผฐ์Šต๋‹ˆ๋‹ค. ์Šค๋ชจํฌ ํ…Œ์ŠคํŠธ ์šฉ๋„๋กœ๋งŒ ์“ฐ๊ณ , ํŒ์ • ๊ธฐ์ค€์€ RoboLab์ž…๋‹ˆ๋‹ค.
Downloads last month

-

Downloads are not tracked for this model. How to track
Video Preview
loading

Model tree for geonmin-kim/Cosmos3-Edge-Policy-DROID-FastWAM-v2

Finetuned
(7)
this model