AY-Robots کی تربیتی میٹرکس جس میں پانچ پالیسی قطاریں اور چار روبوٹ بازو کالم ہیں، ہر سیل ایک مخصوص ماڈل اور بازو کی تربیتی گائیڈ سے منسلک ہے۔
ACTSO-100lerobotنقلی سیکھناپالیسی کی تربیت

SO-100 پر ACT کو شروع سے کیسے تربیت دیں

AY-Robots ResearchAugust 23, 202616 منٹ کا مطالعہ

SO-100 پر lerobot کے ساتھ ایک Action Chunking Transformer کو شروع سے تربیت دیں: act config، chunk_size اور n_action_steps، 100000 سٹیپ کا شیڈول، 20 ms انفرنس۔

SO-100 پالیسیوں میں ACT ایک منفرد حیثیت رکھتا ہے۔ GR00T N1.7 اور N1.5 کا آغاز nvidia/GR00T-N1.7-3B اور nvidia/GR00T-N1.5-3B، Pi0.5 کا آغاز lerobot/pi05_base سے ہوتا ہے۔ ACT کا آغاز کچھ بھی نہیں سے ہوتا ہے: کوئی بنیادی چیک پوائنٹ نہیں ہے، کیونکہ یہ کوئی فاؤنڈیشن ماڈل نہیں ہے۔ یہ تقریباً 80 ملین پیرامیٹر کا ایک ٹرانسفارمر ہے جسے آپ ایک ہی کام کے لیے، اپنے بازو پر، اپنی روشنی میں شروع سے تربیت دیتے ہیں۔

یہی وجہ ہے کہ یہ 20 ms میں ایک کنٹرول سٹیپ چلاتا ہے جہاں 3 بلین پیرامیٹر والے VLA کو 152 سے 485 ms درکار ہوتے ہیں، اور اس کی لاگت 4 سے 12 USD کے بجائے 1 سے 3 USD فی رن آتی ہے۔ یہ گائیڈ دستی طریقہ کار کو lerobot پر ایک SO-100 کے ساتھ بیان کرتی ہے: ریکارڈ، act کنفگ، کیا chunk_size اور n_action_steps کنٹرول کرتے ہیں، 100000 سٹیپ کا شیڈول، رول آؤٹ۔ پھر AY-Robots پر وہی کام، بشمول جہاں پلیٹ فارم مدد نہیں کرتا۔

آپ کو کیا جاننے کی ضرورت ہے

  • ACT شروع سے تربیت حاصل کرتا ہے: کوئی بنیادی ماڈل نہیں، کوئی پری ٹریننگ نہیں، کوئی زبان کا ان پٹ نہیں۔ ایک چیک پوائنٹ، ایک کام۔
  • پیپر: تقریباً 80 M پیرامیٹرز، 11 GB RTX 2080 Ti پر تقریباً 5 گھنٹے، 0.01 s انفرنس۔
  • lerobot ڈیفالٹس: chunk_size 100, n_action_steps 100, batch 8, lr 1e-5, 100000 steps, seed 1000۔
  • AY-Robots پر: 20 ms فی سٹیپ، پانچوں میں سب سے تیز۔ کم از کم 50 ایپی سوڈز، LeRobot v3.0، ایک 24 GB کارڈ، 1 سے 3 USD فی رن۔
  • یہ اس کام میں جیتتا ہے جو اس نے دیکھا ہے، اور جیسے ہی آپ زبان کی کنڈیشنگ چاہتے ہیں، یہ ہار جاتا ہے۔
یہ کن ورژنز کو بیان کرتا ہے

23 اگست 2026 کو lerobot 0.6.x کے خلاف چیک کیا گیا: pyproject.toml پر main پڑھتا ہے version = "0.6.2"، تازہ ترین ٹیگ v0.6.1، 3 اگست 2026۔ ایک ٹیوٹوریل جو python lerobot/scripts/train.py سے شروع ہوتا ہے، کنسول انٹری پوائنٹس lerobot-train، lerobot-record اور lerobot-rollout سے پہلے کا ہے۔

ACT دراصل کیا ہے

ایکشن چنکنگ ود ٹرانسفارمرز ALOHA پیپر سے ماخوذ ہے، کم لاگت والے ہارڈویئر کے ساتھ باریک بینی سے دوہاتھوں کی ہیرا پھیری سیکھنا، از ژاؤ، کمار، لیوین اور فن، arXiv، 23 اپریل 2023۔ یہ رگ 50 Hz پر ریکارڈ کرتی ہے جس میں چار ویب کیمز 480x640 ریزولوشن پر 30 fps پر سٹریم کرتی ہیں: دو گرپرز پر، ایک اوپر، ایک سامنے۔ خلاصہ میں 80 سے 90 percent کامیابی کے ساتھ چھ مہارتوں کا دعویٰ کیا گیا ہے، جن میں ایک شفاف کنڈیمنٹ کپ کھولنا اور بیٹری لگانا شامل ہے، جو 10 minutes کے مظاہروں سے حاصل کی گئی ہیں۔

ریکارڈنگ سیشن کی منصوبہ بندی کرتے وقت باڈی زیادہ مفید ہوتی ہے: ہر کام کے لیے 50 demonstrations، سوائے Thread Velcro کے 100 پر، جو کہ 10 to 20 minutes کا ڈیٹا اور ری سیٹ گننے کے بعد 30 to 60 minutes کا وال-کلاک ٹائم ہے۔ کامیابی بھی یکساں نہیں ہے: Thread Velcro 20 percent پر ختم ہوتا ہے، Put On Shoe 92 پر، Cup Open 84 پر، Prep Tape 64 پر۔

ہائپر پیرامیٹرALOHA paper, Table IIIمین پر لیرو بوٹ
لرننگ ریٹ1e-5optimizer_lr = 1e-5
بیچ سائز8batch_size = 8, in TrainPipelineConfig not ACTConfig
انکوڈر / ڈیکوڈر لیئرز4 / 7n_encoder_layers = 4 / n_decoder_layers = 1
چنک سائز k100chunk_size = 100
z کا لیٹنٹ ڈائمینشنabsent; Fig. 11 shows a 32 to 512 projectionlatent_dim = 32
ٹیمپورل اینسیمبلنگabsent; --temporal_agg in the reference codetemporal_ensemble_coeff = None
ڈیکوڈر لیئر کی قطار کوئی ٹائپو نہیں ہے۔

مقالے میں 7 ڈیکوڈر لیئرز درج ہیں، LeRobot جان بوجھ کر 1 فراہم کرتا ہے۔ `configuration_act.py` میں تبصرہ کہتا ہے کہ اصل امپلیمینٹیشن میں ایک بگ ہے جس کا مطلب ہے کہ صرف پہلی لیئر استعمال ہوتی ہے، tonyzhaozh/act میں ایشو 25 کا حوالہ دیتے ہوئے: ایکشن ہیڈ `hs[0]` پڑھتا ہے، لہذا تمام سات لیئرز چلتی ہیں لیکن صرف پہلی آؤٹ پٹ پیشین گوئی تک پہنچتی ہے۔ یہ ایشو 23 اپریل 2024 سے کھلا اور لاجواب ہے۔ LeRobot اس رویے سے مطابقت رکھتا ہے جس نے شائع شدہ نتائج پیدا کیے، نہ کہ چھپے ہوئے نمبر سے۔ `--policy.n_decoder_layers` کو بڑھائیں اور آپ ایک ایسا ماڈل تربیت دیں گے جس کا مقالے نے کبھی جائزہ نہیں لیا۔

ایکشن چنکنگ ہی اصل خیال ہے۔

عام رویے کی کلوننگ ایک مشاہدے کو ایک عمل سے جوڑتی ہے، اور غلطیاں بڑھتی جاتی ہیں: ایک انحراف بازو کو آف-ڈسٹریبیوشن کر دیتا ہے، جس سے ایک بدتر عمل پیدا ہوتا ہے، اور تیس قدموں کے بعد گریپر آبجیکٹ کے قریب کہیں نہیں ہوتا۔ ایکشن چنکنگ ایک ساتھ k اعمال کی پیش گوئی کرتا ہے اور انہیں انجام دیتا ہے، مؤثر افق کو k کے عنصر سے کم کرتا ہے۔ یہ انسانی ڈیٹا سے متعلق ایک پریشانی کو بھی سنبھالتا ہے: ٹیلی آپریٹرز وقفہ لیتے ہیں، اور ایک سنگل-اسٹیپ مارکووین پالیسی ایک ایسے وقفے کو ماڈل نہیں کر سکتا جو اس بات پر منحصر ہو کہ پہلے کیا ہوا تھا۔

مقالہ k کو ثابت کرنے کے بجائے اسے ابلیٹ کرتا ہے۔ ٹیمپورل اینسیمبلنگ بند ہونے کے ساتھ، چار سیٹنگز پر اوسطاً، کامیابی k = 1 پر 1 فیصد سے بڑھ کر k = 100 پر 44 فیصد ہو جاتی ہے، پھر 200 اور 400 پر کم ہوتی جاتی ہے جیسے ہی پالیسی اوپن-لوپ کنٹرول کے قریب پہنچتی ہے۔ یہ منحنی خطوط ہی وجہ ہے کہ ڈیفالٹ 100 ہے۔

  • chunk_size: ڈیکوڈر فی فارورڈ پاس میں کتنی مستقبل کی کارروائیوں کی پیش گوئی کرتا ہے۔ ڈیفالٹ 100۔
  • n_action_steps: دوبارہ استفسار کرنے سے پہلے آپ ان میں سے کتنے کو انجام دیتے ہیں۔ ڈیفالٹ 100، لہذا lerobot پورے چنک کو اوپن لوپ میں چلاتا ہے۔
  • lerobot n_action_steps <= chunk_size کی توثیق کرتا ہے اور اگر آپ اسے الٹا کرتے ہیں تو ValueError اٹھاتا ہے۔

آپریشنل طور پر جو چیز اہمیت رکھتی ہے وہ chunk_size کو فریم ریٹ سے تقسیم کرنا ہے۔ 30 fps پر lerobot کے SO-100 مثالیں استعمال کرتی ہیں، 100 کا ایک چنک ایک مشاہدے سے تقریباً 3.3 سیکنڈ کا عہد کرتا ہے۔ اگر کام کو اس ونڈو کے اندر تصحیح کی ضرورت ہو، تو n_action_steps کو کم کریں، نہ کہ chunk_size کو: آپ طویل پیش گوئی کو برقرار رکھتے ہیں اور زیادہ کثرت سے دوبارہ مشاہدہ کرتے ہیں۔

bash
# predict 100 actions, re-query after 25 of them (about 0.8 s at 30 fps)
lerobot-train \
  --dataset.repo_id=${HF_USER}/so100_cube \
  --policy.type=act \
  --policy.chunk_size=100 \
  --policy.n_action_steps=25 \
  --policy.device=cuda
پیش گوئی کو مختصر کیے بغیر چنک کے عمل درآمد شدہ حصے کو مختصر کرنا۔
ٹیمپورل اینسیمبلنگ کا جال

--policy.temporal_ensemble_coeff سیٹ کریں اور lerobot کو n_action_steps = 1 کی ضرورت ہوتی ہے، بصورت دیگر NotImplementedError اٹھاتا ہے۔ اینسیمبلنگ ہر ٹائم سٹیپ پر پالیسی سے استفسار کرتا ہے اور اس ٹائم سٹیپ کے لیے اوورلیپنگ پیش گوئیوں کو وزن w_i = exp(-m * i) کے ساتھ ملاتا ہے، جس میں سب سے پرانے کو w_0 ملتا ہے۔ پیپر اسے ACT کے لیے 3.3 فیصد پر رکھتا ہے: حقیقی لیکن معمولی، اور یہ انفرنس کی گنتی کو چنک کی لمبائی سے ضرب دیتا ہے۔ 20 ms فی قدم پر سستی، 485 ms پر نہیں۔ انفرنس لیٹنسی دیکھیں۔

جب ACT ایک فاؤنڈیشن ماڈل کو مات دیتا ہے

پانچ قابل تربیت پالیسیاں ساتھ ساتھ، ان اعداد و شمار کے ساتھ جنہیں AY-Robots ماپتا ہے اور اپنے کرائے کے GPU کا سائز متعین کرنے کے لیے استعمال کرتا ہے۔

پالیسیفیملیپیرامیٹرزفی قدمGPU ٹیرکم از کم ایپی سوڈزڈیٹا سیٹ
ACTChunking transformer، شروع سے~80 M20 msRTX 4090 / 24 GB50LeRobot v3.0
SmolVLAکومپیکٹ VLA~450 M245 msRTX 4090 / 24 GB30LeRobot v3.0
GR00T N1.7VLA فاؤنڈیشن، ڈفیوژن ہیڈ~3 B (~40 M trained)152 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
GR00T N1.5VLA فاؤنڈیشن، پیشرو~3 B165 msA100 / H100 80 GB50LeRobot v2.0 or v2.1
Pi0.5فلو-میچنگ VLA، دیکھیں فلو میچنگ~3 B, PaliGemma backbone485 msA100 / H100 80 GB50LeRobot v3.0
The AY-Robots policies page showing a comparison table of ACT, SmolVLA, GR00T N1.5, GR00T N1.7 and Pi0.5 with parameter counts, GPU requirements, inference latency and minimum episode counts
The /policies table: ACT has the smallest parameter count and the shortest step time.
ACT کو شروع سے تربیت دینا
فوائد
  • فی ایکشن سٹیپ 20 ملی سیکنڈ، پانچ میں سب سے تیز، 24 جی بی کارڈ پر نہ کہ A100 پر۔
  • 3 B کلاس کے لیے 4 سے 12 کے مقابلے میں فی رن 1 سے 3 امریکی ڈالر۔
  • اس نے جو رابطہ سے بھرپور کام دیکھا ہے اس پر درست: سلائیڈ زپ لاک اور سلاٹ بیٹری پر 88 اور 96 فیصد، جہاں پچھلے طریقے کبھی پہلے مرحلے کو عبور نہیں کر پائے۔
توازن
  • زبان کی کوئی شرط نہیں: ٹاسک سٹرنگ کو نظر انداز کر دیا جاتا ہے، لہذا ایک چیک پوائنٹ ایک ٹاسک ہے۔
  • کوئی سیمنٹک پرائرز نہیں: جو کچھ بھی یہ جانتا ہے وہ آپ کے 50 ایپی سوڈز سے آیا ہے۔
  • محدود عمومیت: کیمرہ منتقل کریں اور آپ دوبارہ تربیت دے رہے ہیں۔
  • یہ خاموشی سے ناکام ہو جاتا ہے: نقصان کم ہوتا ہے، بازو کچھ نہیں کرتا، لاگز کچھ نہیں کہتے۔
  • رفتار کا فائدہ صرف اس صورت میں مدد کرتا ہے جب انفرنس سرووز کے ساتھ ہو۔

ACT کا انتخاب کریں جب ٹاسک اور منظر مقرر ہوں اور حرکت تیز اور درست ہونی چاہیے۔ ایک کا انتخاب کریں جب ایک چیک پوائنٹ کو کئی ہدایات کا احاطہ کرنا ہو۔ دو صفحات اس فیصلے پر آمنے سامنے کام کرتے ہیں: اور ۔ شائع شدہ بینچ مارکس کے لیے، ہر نمبر کو اس کے ماخذ سے جوڑتی ہے۔

شروع کرنے سے پہلے آپ کو کیا چاہیے

ایک فالوور بازو، کے لیے ایک لیڈر بازو، کم از کم ایک کیمرہ، ایک 24 جی بی جی پی یو۔ ACT صرف تصاویر اور جوائنٹ پوزیشنز پڑھتا ہے۔ دو کیمرے بہترین ہیں: چیزیں کہاں ہیں اس کے لیے ایک مقررہ سامنے کا منظر، اور ایک کلائی کیمرہ اس کے لیے کہ کس چیز کو چھونے والا ہے، جیسا کہ ALOHA پر ہے۔

آرمسرووزوولٹیجپرزوں کی لاگتحیثیت
SO-100Feetech STS32157.4 V~110 to 150 EURمکمل سپورٹ، ریفرنس آرم
SO-101Feetech STS32157.4 V~130 to 170 EURمکمل سپورٹ
Koch v1.1Dynamixel XL330 / XL4305 V and 12 V rails~250 to 350 EURہم آہنگ
LeKiwiFeetech STS3215 (arm)7.4 V arm, 12 V base~400 to 500 EURہم آہنگ
7.4 V، 12 V نہیں

SO-100 اور SO-101 Feetech STS3215 سرووز کو 7.4 V ریل پر چلاتے ہیں۔ انہیں 12 V فراہم کرنے سے وہ تباہ ہو جاتے ہیں، اتنی خاموشی سے کہ لوگ پہلے سافٹ ویئر کو مورد الزام ٹھہراتے ہیں، اور ایک Koch 12 V سپلائی SO-100 بورڈ پر جسمانی طور پر فٹ ہو جاتی ہے۔ لیبل چیک کریں۔ علامات: سروو جواب نہیں دے رہا، آرم جھٹکے لیتا ہے پھر ڈھیلا پڑ جاتا ہے۔ نیز SO-100 بمقابلہ SO-101۔

خالی آرم سے ریکارڈ شدہ ڈیٹا سیٹ تک

نیچے دیا گیا فلو lerobot 0.6.x ہے۔ اگر آپ کے پاس کیلیبریٹڈ آرم اور ڈیٹا سیٹ ہے تو اسے چھوڑ دیں۔ بصورت دیگر SO-100 شروع کرنے کی گائیڈ اسمبلی کا احاطہ کرتی ہے، ریکارڈنگ واک تھرو کیپچر کا احاطہ کرتا ہے اور ڈیٹا سیٹ دستاویزات فارمیٹ کا احاطہ کرتی ہے۔

  1. 1
    مناسب ایکسٹراز کے ساتھ lerobot انسٹال کریں

    ریکارڈنگ کے لیے core_scripts، ٹریننگ کے لیے training، Feetech سرووز کے لیے feetech درکار ہیں۔ Python 3.12+۔

    bash
    conda create -y -n lerobot python=3.12
    conda activate lerobot
    conda install ffmpeg -c conda-forge
    
    pip install 'lerobot[core_scripts,training,feetech]'
    lerobot-info
  2. 2
    ہر بازو کی USB پورٹ تلاش کریں

    اسے دونوں بازوؤں کو پلگ ان کر کے چلائیں، جب کہا جائے تو ایک کو ان پلگ کر دیں۔ لینکس پر آپ کو نوڈ کی اجازتیں کھولنے کی ضرورت پڑ سکتی ہے۔

    bash
    lerobot-find-port
    # on Linux, if the port exists but is unreadable:
    sudo chmod 666 /dev/ttyACM0
  3. 3
    موٹر IDs اور باؤڈریٹ سیٹ کریں

    SO-100 پر یہ اسمبلی سے پہلے ہوتا ہے: SO-101 کے برعکس، ایک بار بننے کے بعد کنیکٹرز تک رسائی ممکن نہیں ہوتی۔ اسکرپٹ گریپر سے ایک وقت میں ایک موٹر کو بس پر چلاتا ہے، اور IDs کو EEPROM میں لکھتا ہے۔

    bash
    lerobot-setup-motors \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0
    
    lerobot-setup-motors \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1
  4. 4
    دونوں بازوؤں کو کیلیبریٹ کریں

    ہر جوائنٹ کو اس کی رینج کے وسط میں سیٹ کریں، Enter دبائیں، پھر ہر ایک کو اس کی پوری رینج میں گھمائیں۔ کیلیبریشن ایک بازو پر تربیت یافتہ پالیسی کو دوسرے پر چلانے کی اجازت دیتی ہے۔ وہی id دوبارہ استعمال کریں۔

    bash
    lerobot-calibrate \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0 \
        --robot.id=my_follower
    
    lerobot-calibrate \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1 \
        --teleop.id=my_leader
  5. 5
    کیمروں کے ساتھ ایک بار ٹیلی آپریٹ کریں

    lerobot کا انگوٹھا اصول: آپ کو صرف کیمرے کی تصاویر دیکھ کر کام کرنے کے قابل ہونا چاہیے۔ اگر آپ نہیں کر سکتے، تو ACT بھی نہیں کر سکتا۔ یہ بعد کی ڈیبگنگ کے مقابلے میں زیادہ خراب ڈیٹا سیٹس کو پکڑتا ہے۔

    bash
    lerobot-teleoperate \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0 \
        --robot.id=my_follower \
        --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1 \
        --teleop.id=my_leader \
        --display_data=true
  6. 6
    50 ایپی سوڈز ریکارڈ کریں

    50 AY-Robots کی کم از کم تعداد ہے اور ALOHA نے فی ٹاسک یہی استعمال کیا تھا۔ lerobot فی آبجیکٹ لوکیشن 10 کی سفارش کرتا ہے، کیمرے فکسڈ ہوں، گرفت مستقل ہو۔ n ایک ایپی سوڈ ختم کرتا ہے، r دوبارہ ریکارڈ کرتا ہے، q روکتا ہے اور انکوڈ کرتا ہے۔

    bash
    HF_USER=$(NO_COLOR=1 hf auth whoami | awk -F': *' 'NR==1 {print $2}')
    
    lerobot-record \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM0 \
        --robot.id=my_follower \
        --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
        --teleop.type=so100_leader \
        --teleop.port=/dev/ttyACM1 \
        --teleop.id=my_leader \
        --dataset.repo_id=${HF_USER}/so100_cube \
        --dataset.num_episodes=50 \
        --dataset.single_task="Grab the black cube and put it in the bin" \
        --display_data=true
AY-Robots ریکارڈنگ ٹیوٹوریل صفحہ جو یہ بتاتا ہے کہ ٹیلی آپریشن سیشن سے LeRobot فارمیٹ کا ڈیٹا سیٹ کیسے حاصل کیا جائے۔
ریکارڈنگ ٹیوٹوریل۔ ڈیسک ٹاپ کلائنٹ وہی لے آؤٹ لکھتا ہے جو lerobot-record لکھتا ہے۔
وہ جال جو ایک دن کھا جاتا ہے: ایک غیر مستقل ڈیٹا سیٹ

ACT کے پاس پیچھے ہٹنے کے لیے کوئی سابقہ معلومات نہیں ہیں، لہذا ہر عدم مطابقت مستقل ہو جاتی ہے۔ تین سب سے مہنگی غلطیاں: ایپی سوڈ 20 اور 21 کے درمیان کیمرے کا ہل جانا، روشنی کا بدل جانا کیونکہ آپ نے آدھا سیٹ دوپہر میں ریکارڈ کیا، ایک گرفت جو دو طریقوں سے کی گئی۔ ہر ایک ایک بہترین نظر آنے والا نقصان کا منحنی خطوط اور ایک بازو دیتا ہے جو غلط جگہ پر جاتا ہے۔ دیکھیں نقصان کم ہوتا ہے، پالیسی کچھ نہیں کرتی، پالیسی صرف ایک سیٹ اپ میں کام کرتی ہے اور اعلیٰ معیار کا تربیتی ڈیٹا جمع کرنا۔

ٹریننگ سے پہلے، کم از کم پانچ ایپی سوڈز دوبارہ چلائیں۔ کیمرہ سٹریمز، جوائنٹ سٹیٹس اور ایکشنز فی میں محفوظ کرتا ہے، اور ری پلے ان ایکشنز کو بازو پر واپس دھکیلتا ہے۔ اگر ری پلے کام نہیں کرتا، تو ڈیٹا میں وہ شامل نہیں ہوتا اور ٹریننگ اسے ایجاد نہیں کرے گی۔

bash
lerobot-replay \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM0 \
    --robot.id=my_follower \
    --dataset.repo_id=${HF_USER}/so100_cube \
    --dataset.episode=0
ایپیسوڈ 0 کو دوبارہ چلایا جا رہا ہے۔ اگر یہ ناکام ہو جائے تو روک دیں اور دوبارہ ریکارڈ کریں۔

ACT پالیسی کی تربیت

یہ مکمل کمانڈ ہے۔ ACT سے متعلق ہر چیز پہلے سے ہی ڈیفالٹ ہے، یہی وجہ ہے کہ lerobot ACT صفحہ ان کے ساتھ شروع کرنے کا کہتا ہے۔

bash
lerobot-train \
  --dataset.repo_id=${HF_USER}/so100_cube \
  --policy.type=act \
  --output_dir=outputs/train/act_so100_cube \
  --job_name=act_so100_cube \
  --policy.device=cuda \
  --wandb.enable=true \
  --policy.repo_id=${HF_USER}/act_so100_cube
lerobot 0.6.x دستاویزات سے تربیتی کمانڈ، ایک SO-100 ڈیٹا سیٹ پر۔

--policy.type=act ACTConfig کو لوڈ کرتا ہے، جو آپ کے ڈیٹا سیٹ میں ریکارڈ کیے گئے موٹرز اور کیمروں کی تعداد کے مطابق ڈھل جاتا ہے، لہذا آپ کو کبھی بھی آبزرویشن کی شکل کا اعلان نہیں کرنا پڑتا۔ --wandb.enable=true اختیاری ہے اور اس کے قابل ہے: 100000 قدموں کی رن میں لاس کرو واحد سستا سگنل ہے۔ شیڈول lerobot کی ٹرین کنفگ سے آتا ہے، ACTConfig سے نہیں: 100000 قدم، بیچ 8، سیڈ 1000، ایک چیک پوائنٹ ہر 20000 قدموں پر ایک، اور ہر 200 قدموں پر لاگنگ۔

ایک مکمل رن پانچ چیک پوائنٹ ڈائریکٹریز چھوڑتا ہے، 020000 سے 100000 تک، علاوہ ایک آخری سم لنک۔ ان سب کو رکھیں: بہترین پالیسی اکثر آخری والی نہیں ہوتی۔

سیٹنگlerobot ڈیفالٹAY-Robots ACT فارمتبصرہ
بیچ سائز88اگر آپ VRAM کی حدوں کو چھوتے ہیں تو پہلے اسے کم کریں۔
لرننگ ریٹ1e-51e-5ALOHA پیپر جیسا ہی۔
زیادہ سے زیادہ قدم100000100000تقریباً وہ جگہ جہاں 50 ایپیسوڈ کا سیٹ بہتر ہونا بند کر دیتا ہے۔
گریڈینٹ جمع کرنا11, does not applyاس کے بجائے بیچ سائز تبدیل کریں۔
سیڈ1000exposedGR00T کے ٹائرو انٹری پوائنٹ میں کوئی سیڈ نہیں ہے؛ ACT رنز قابل تولید ہیں۔
chunk_size / n_action_steps100 / 100100 / 100, editableپیش گوئی اور عمل درآمد کا افق۔ دوسرے کو کم کریں، پہلے کو نہیں۔
چیک پوائنٹ فریکوئنسی20000not exposedیہاں saveSteps ایک GR00T نوب ہے۔
میموری سے باہر ہونا بیچ سائز کا مسئلہ ہے، کارڈ کا مسئلہ نہیں

بیچ سائز 8 پر ACT دو 640x480 کیمروں کے ساتھ 24 GB پر آرام سے فٹ ہو جاتا ہے۔ یہ اس وقت فٹ ہونا بند کر دیتا ہے جب لوگ رفتار کے لیے بیچ سائز بڑھاتے ہیں، یا اسے 1920x1080 فریمز فراہم کرتے ہیں جو ایک lerobot ریکارڈنگ مثال دکھاتی ہے۔ 1080p پر دو ResNet-18 بیک بونز کا میموری پروفائل بہت مختلف ہوتا ہے۔ بڑا کارڈ کرائے پر لینے سے پہلے --batch_size کو 4 پر گرا دیں۔ دیکھیں ٹریننگ میں میموری سے باہر ہونا۔

دورانیہ: پیپر میں 11 GB RTX 2080 Ti پر تقریباً 5 گھنٹے، lerobot کے ACT صفحہ کے مطابق 100k مراحل کے لیے چند گھنٹے، AY-Robots 24 GB ٹیر پر 2 سے 5 گھنٹے۔ اسے مختصر نہ کریں۔ ریفرنس ریپو کی README کے مطابق، ایک جھٹکے دار یا رک رک کر چلنے والی پالیسی کو عام طور پر مزید تربیت کی ضرورت ہوتی ہے، کیونکہ نقصان کے مستحکم ہونے کے بعد بھی کامیابی اور ہمواری بہتر ہوتی رہتی ہے: حقیقی دنیا کے ڈیٹا کے لیے اسے کم از کم 5000 ای پوکس، یا مستحکم ہونے کے بعد دوبارہ 3 سے 4 گنا زیادہ دورانیہ درکار ہوتا ہے۔

bash
lerobot-train \
  --config_path=outputs/train/act_so100_cube/checkpoints/last/pretrained_model/train_config.json \
  --resume=true
ایک رکے ہوئے رن کو اس کے آخری چیک پوائنٹ سے دوبارہ شروع کرنا۔

تربیت یافتہ پالیسی کو بازو پر چلانا

تعیناتی میں lerobot-rollout استعمال ہوتا ہے۔ کیمرہ کیز ریکارڈ شدہ کیز سے مماثل ہونی چاہئیں: ایک پالیسی جو front اور wrist پر تربیت یافتہ ہے وہ cam0 اور cam1 کو قبول نہیں کرے گی، اور rename_map مدد نہیں کرتا، کیونکہ اسے ایک پری ٹرینڈ چیک پوائنٹ کی ضرورت ہوتی ہے۔ ٹاسک سٹرنگ کو چھوڑا جا سکتا ہے؛ lerobot کی اپنی مثال اسے ACT کے لیے قابلِ گریز قرار دیتی ہے۔

bash
lerobot-rollout \
  --strategy.type=base \
  --policy.path=${HF_USER}/act_so100_cube \
  --robot.type=so100_follower \
  --robot.port=/dev/ttyACM0 \
  --robot.id=my_follower \
  --robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}, wrist: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30} }" \
  --display_data=true \
  --duration=60
بغیر ریکارڈنگ کے خود مختار رول آؤٹ۔ تشخیصی اقساط کو ریکارڈ کرنے کے لیے --strategy.type=sentry استعمال کریں۔
اس کمانڈ کا نام حال ہی میں تبدیل کیا گیا ہے، لہٰذا پرانے ٹیوٹوریلز میں اختلاف ہے۔

تشخیص پہلے lerobot-record --policy.path=... کے ذریعے چلائی جاتی تھی۔ 0.6.x میں یہ lerobot-rollout ہے جس میں --strategy.type سلیکٹر ہے: base، sentry (خودکار اپ لوڈ کے ساتھ ریکارڈنگ)، highlight (کی اسٹروک کے ذریعے محفوظ کردہ رنگ بفر)، dagger (لوپ میں انسان) اور episodic۔ 23 اگست 2026 تک ACT دستاویزات کا صفحہ اب بھی lerobot-rollout چلانے والے بلاک کے بالکل اوپر "lerobot-record کمانڈ کا استعمال کرتے ہوئے" کہتا ہے۔ جملے کی بجائے کمانڈ کی پیروی کریں۔

حتمی ماڈل کی بجائے ایک چیک پوائنٹ کو پن کرنے کے لیے، شامل کریں --policy.pretrained_revision۔ اس کے لیے رن کا آغاز --save_checkpoint_to_hub=true کے ساتھ ہونا ضروری ہے، جو کہ بطور ڈیفالٹ بند ہوتا ہے: اس کے بغیر lerobot صرف حتمی ماڈل کو پش کرتا ہے اور کچھ نہیں۔ اس کے ساتھ، ہر چیک پوائنٹ کو اس کے زیرو پیڈڈ سٹیپ کے ساتھ ٹیگ کیا جاتا ہے، لہٰذا --policy.pretrained_revision=060000 60000 سٹیپ والے کو بازیافت کرتا ہے۔ اسے حقیقی بازو پر 100000 کے مقابلے میں جانچنا سب سے سستا دستیاب تجربہ ہے۔

ایک ہی چیک پوائنٹ تک پہنچنے کے دو راستے

اوپر بیان کردہ تمام طریقہ کار دستی ہے اور یہ کام کرتا ہے۔ پلیٹ فارم کا طریقہ کار GPU یا پائتھون ماحول کی ملکیت نہ ہونے کے بدلے کنٹرول کو قربان کرتا ہے۔

  1. core_scripts، training، feetech، ffmpeg کے ساتھ lerobot 0.6.x انسٹال کریں۔
  2. پورٹس تلاش کریں، موٹر آئی ڈیز سیٹ کریں، دونوں بازوؤں کو کیلیبریٹ کریں، 50 ایپی سوڈز ریکارڈ کریں۔
  3. ڈیٹا میں ٹاسک کی موجودگی کی تصدیق کے لیے چند ایپی سوڈز دوبارہ چلائیں۔
  4. 24 GB GPU کرائے پر لیں یا خریدیں، CUDA اور PyTorch کو میچ کریں، lerobot-train --policy.type=act چلائیں۔
  5. چند گھنٹے انتظار کریں، پھر بازو والی مشین پر lerobot-rollout چلائیں۔
bash
# the two commands that matter, end to end
lerobot-record --robot.type=so100_follower --robot.port=/dev/ttyACM0 \
  --teleop.type=so100_leader --teleop.port=/dev/ttyACM1 \
  --dataset.repo_id=${HF_USER}/so100_cube --dataset.num_episodes=50 \
  --dataset.single_task="Grab the black cube"

lerobot-train --dataset.repo_id=${HF_USER}/so100_cube --policy.type=act \
  --output_dir=outputs/train/act_so100_cube --policy.device=cuda
یہ طریقہ کار آپ کو کیا فراہم کرتا ہے

مکمل کنٹرول: configuration_act.py میں ترمیم کریں، ایک کیمرہ شامل کریں، ٹرینر کو فورک کریں۔ کسی ٹاسک کو بھیجنے کے بجائے تحقیق کے لیے، ایک پلیٹ فارم توجہ ہٹانے کا باعث ہے۔

The AY-Robots training matrix with five policy rows and four robot arm columns, where every cell links to the specific training guide for that model and arm combination
The matrix on /train. The ACT row against the SO-100 column is this article's guide.

اصل میں کیا غلط ہوتا ہے

تقریباً تمام مشکلات ٹریننگ کمانڈ میں نہیں ہیں۔ بلکہ یہ اس کے ارد گرد کی چیزوں میں ہیں، اس ترتیب سے کہ وہ پہلی بار کتنی بار مسئلہ بنتی ہیں۔

علامتعام وجہصفحہ
lerobot-find-port shows nothingڈرائیور، کیبل یا نوڈ کی اجازتیںآرم کا پتہ نہیں چلا
Camera missing at record timeریبوٹ پر انڈیکس تبدیل ہو گیا، یا ایک USB کنٹرولر پر دو کیمرےکیمرہ کا پتہ نہیں چلا
Training rejects the datasetACT wants v3.0, GR00T needs v2.1ڈیٹا سیٹ v3 کے طور پر مسترد کر دیا گیا
CUDA out of memoryبیچ کا سائز بڑھا دیا گیا، یا 480p کے بجائے 1080p فریمزٹریننگ میں میموری ختم
Loss looks great, arm does nothingڈیٹا میں ٹاسک کی کمی ہے، یا کیمرہ حرکت کر گیالاس گرتا ہے، پالیسی کچھ نہیں کرتی
Jerky motion or a pause mid-episodeکم تربیت یافتہ، ایک چنک باؤنڈری اسٹال، یا ٹائم آؤٹ انفرنس کالپالیسی حرکت کے درمیان جم جاتی ہے

دو قطاریں خاص توجہ کی مستحق ہیں۔ ACT LeRobot v3.0 پر تربیت حاصل کرتا ہے جبکہ GR00T کا لوڈر اس پر کریش ہو جاتا ہے اور اسے v2.1 کی ضرورت ہوتی ہے، لہذا ایک ڈیٹا سیٹ جو ACT کو تربیت دیتا ہے وہ GR00T رن کو ناکام کر سکتا ہے۔ اور آخری قطار میں دو حل ہیں: ACT کے مصنفین جھٹکے دار حرکت کا جواب مزید تربیت سے دیتے ہیں، جبکہ n_action_steps کو 100 پر رکھنے سے ایک حقیقی اسٹال چنک باؤنڈری پر ہوتا ہے، جو 30 fps پر ہر 3.3 سیکنڈ میں ایک واضح وقفہ ہے۔ مزید دو باتیں جاننے کے لیے: ایک واحد مردہ جوائنٹ عام طور پر ایک سروو آئی ڈی ہے جو کبھی نہیں لکھی گئی، اور ایک گریپر جو قریب آتا ہے لیکن کبھی بند نہیں ہوتا کا مطلب مظاہروں میں گریپر کی رینج بہت کم ہے۔ مکمل انڈیکس: ناکامی کے موڈ کے صفحات۔

ایک رن کی لاگت کیا ہے

درجہماڈلزچلنے کا وقتفی گھنٹہ قیمتفی رن لاگت
RTX 4090 / 24 GBACT, SmolVLA2 to 5 گھنٹے0.30 to 0.60 USDتقریباً 1 to 3 USD
A100 80 GB / H100GR00T N1.7, GR00T N1.5, Pi0.53 to 6 گھنٹے1.20 to 2.00 USDتقریباً 4 to 12 USD

یہ ACT سے شروع کرنے کی دلیل ہے، چاہے آپ بعد میں VLA چاہتے ہوں۔ ایک ناکام ACT رن کی قیمت ایک کافی کے برابر ہوتی ہے اور یہ آپ کو گھنٹوں کے اندر بتا دیتا ہے کہ آیا آپ کے ڈیٹا سیٹ میں وہ کام شامل ہے۔ ایک ناکام GR00T رن کی قیمت اسی سبق کے لیے چار گنا زیادہ ہے۔ اس کے بعد GR00T N1.7 یا SmolVLA بعد میں ایک شکل کی تبدیلی ہے، دوبارہ تعمیر نہیں۔ پس منظر: وژن-لینگویج-ایکشن ماڈلز، مکمل SO-100 گائیڈ، اپنی پہلی پالیسی کو تربیت دیں اور نقلی سیکھنا۔ کوئی بازو نہیں؟ لائیو صفحہ ایک حقیقی SO-100 کو بغیر سائن اپ کیے چلانے کے لیے سٹریم کرتا ہے۔

اپنے SO-100 پر ACT کو تربیت دیں

اس مخصوص امتزاج کے لیے گائیڈ: ڈیفالٹس، GPU ٹیر اور ایک رن کی لاگت۔ ڈیٹا سیٹ کا انتخاب کریں، بیک اینڈ کارڈ کرائے پر لیتا ہے اور چیک پوائنٹس لکھتا ہے۔

تربیتی گائیڈ کھولیں
کیا کوئی پری ٹرینڈ ACT ماڈل ہے جسے میں اس کے بجائے فائن ٹیون کر سکتا ہوں؟

نہیں۔ ACT کا کوئی بنیادی ماڈل نہیں ہے؛ یہ صرف آپ کی تربیت کے بعد موجود ہوتا ہے۔ یہ ٹولنگ میں کوئی خامی نہیں ہے، یہ وہی ہے جو ACT ہے: مقالہ ہر کام کے لیے شروع سے ایک پالیسی کو تربیت دیتا ہے۔ وینڈر چیک پوائنٹ کے لیے، GR00T N1.7 یا Pi0.5 استعمال کریں۔

مجھے واقعی کتنے ایپیسوڈز کی ضرورت ہے؟

50: جو ALOHA نے فی ٹاسک ریکارڈ کیا (تھریڈ ویلکرو کے لیے 100، جو اس کا سب سے مشکل ہے) اور AY-Robots کا کم از کم۔ lerobot ہر آبجیکٹ کی جگہ کے لیے تقریباً 10 کا مشورہ دیتا ہے، کیمرے فکسڈ، گرفت مستقل۔ پچاس صاف ایپیسوڈز سو ایسے ایپیسوڈز سے بہتر ہیں جہاں کیمرہ حرکت میں آیا۔

کیا مجھے chunk_size کو 100 سے تبدیل کرنا چاہیے؟

عام طور پر نہیں۔ ایبلیشن k = 1 پر 1 فیصد سے بڑھ کر k = 100 پر 44 فیصد تک پہنچ جاتی ہے اور اس کے بعد کم ہوتی جاتی ہے، لہذا 100 سب سے اوپر کے قریب ہے۔ اگر بازو بہت زیادہ دیر تک مصروف رہتا ہے، تو اس کے بجائے n_action_steps کو کم کریں: 30 fps پر، 25 دوبارہ استفسارات ہر 0.8 سیکنڈ میں۔

ایک تربیتی رن میں کتنا وقت لگتا ہے، اور کیا میں اسے جلدی روک سکتا ہوں؟

100000 سٹیپس کے لیے 24 GB کارڈ پر دو سے پانچ گھنٹے۔ چیک پوائنٹس ہر 20000 سٹیپس پر بنتے ہیں اور --resume=true ایک رن کو دوبارہ شروع کرتا ہے، لہذا جلدی روکنا محفوظ ہے۔ بس پہلے فلیٹ حصے پر نہیں: نقصان کے مستحکم ہونے کے بعد ہمواری بہتر ہوتی ہے۔

نقصان کم ہو گیا اور بازو اب بھی ناکام ہو رہا ہے۔ اب کیا؟

تقریباً ہمیشہ ڈیٹا سیٹ۔ بازو پر ریکارڈ شدہ ایپیسوڈز کو دوبارہ چلائیں: اگر ری پلے کام نہیں کرتا، تو ڈیٹا میں وہ شامل نہیں ہے۔ پھر چیک کریں کہ کیا کچھ حرکت میں آیا، خاص طور پر کیمرہ۔ ACT کے کوئی پیشگی علم نہیں ہیں، لہذا ایپیسوڈ 21 پر ایک معمولی حرکت مستقل ہے۔

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started