AY-Robots ٹریننگ میٹرکس جس میں پانچ پالیسیاں قطاروں کے طور پر اور چار روبوٹ بازو کالموں کے طور پر ہیں، ہر سیل ایک مخصوص فائن ٹیوننگ گائیڈ کا لنک ہے۔
Pi0.5فلو میچنگVLA ٹریننگLeRobotفائن ٹیوننگ

اپنے روبوٹ ڈیٹا پر Pi0.5 کو کیسے تربیت دیں

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

Physical Intelligence کے فلو میچنگ VLA، Pi0.5 کو اپنے روبوٹ ڈیٹا پر فائن ٹیون کریں۔ openpi اور lerobot pi05 کے لیے حقیقی کمانڈز، ڈیٹا سیٹ فارمیٹ کی مشکلات، VRAM اور لیٹنسی کی حدود۔

Pi0.5 وہ ماڈل ہے جسے آپ اس وقت استعمال کرتے ہیں جب کسی پالیسی کو ایسے کمرے میں کام کرنا ہو جو اس نے پہلے کبھی نہ دیکھا ہو۔ یہ پانچ میں سے سب سے مشکل بھی ہے قابل تربیت پالیسیاں یہاں فائن ٹیون دستی طور پر: اپ اسٹریم ریپوزٹری پہلے JAX ہے، LeRobot پورٹ نے 0.6.0 میں lerobot-record سے تعیناتی کو ہٹا دیا اور بیس انسٹال کو تربیت کے لیے بہت چھوٹا بنا دیا، اور ایک مکمل فائن ٹیون 4090 پر فٹ نہیں ہوتا۔ ذیل میں: کیا فلو میچنگ انفرنس پر لاگت آتی ہے، دو کمانڈ روٹس، اور 485 ms کا وہ نمبر جو فیصلہ کرتا ہے کہ آیا نتیجہ قابل استعمال ہے۔

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

  • ایک فلو میچنگ VLA: ایک 3B PaliGemma VLM کے ساتھ ایک 300M ایکشن ایکسپرٹ جو مسلسل ایکشن چنکس کو ڈی کوڈ کرتا ہے۔ اسے فائن ٹیون کرنے کے دو راستے، openpi اور LeRobot pi05، LIBERO اوسط پر 0.65 پوائنٹس کے فرق پر۔
  • مکمل فائن ٹیوننگ کے لیے 70 GB سے زیادہ VRAM کی ضرورت ہوتی ہے۔ openpi صرف اپنے JAX پاتھ پر LoRA کو 22.5 GB پر درج کرتا ہے۔
  • ڈیٹا سیٹ LeRobotDataset v3.0 ہونا چاہیے جس میں meta/stats.json میں q01 اور q99 کوانٹائلز ہوں، ورنہ بیچ ایک ایرر دے گا۔
  • پہلے اپنا lerobot ورژن چیک کریں: 0.6.0 نے بیس پیکیج کو ہلکا پھلکا بنایا اور تعیناتی کو lerobot-record سے ہٹا دیا۔
  • یہاں یہ فی ایکشن سٹیپ 485 ms پر چلتا ہے، 50 ایپیسوڈز چاہتا ہے، اور فی رن تقریباً 4 سے 12 USD لاگت آتی ہے۔

Pi0.5 دراصل کیا ہے

فزیکل انٹیلی جنس نے اکتوبر 2024 میں pi0 شائع کیا: ایک فلو میچنگ ویژن-لینگویج-ایکشن ماڈل ایک پری ٹرینڈ VLM پر: PaliGemma 3 بلین پیرامیٹرز کے ساتھ اور ایک 300M ایکشن ایکسپرٹ جو شروع سے انیشلائز کیا گیا، کل 3.3 بلین۔ یہ مقالہ 7 روبوٹ کنفیگریشنز اور 68 ٹاسکس پر 10,000 گھنٹوں سے زیادہ روبوٹ ڈیٹا پر پری ٹریننگ کی اطلاع دیتا ہے۔ مزید pi0 مضمون میں۔

Pi0.5 (arXiv 2504.16054, 22 April 2025) اس ڈھانچے کو برقرار رکھتا ہے اور تربیت کی خوراک کو تبدیل کرتا ہے: ویب ڈیٹا، آبجیکٹ ڈیٹیکشن، انسانوں کی طرف سے روبوٹ کو کوچنگ دینے والی زبانی ہدایات، سب ٹاسک لیبلز، اور کئی گھروں میں روبوٹس سے کراس-ایمباڈیمنٹ ڈیٹا۔ اس کا نتیجہ ایک ایسا روبوٹ ہے جو ان گھروں میں کچن صاف کرتا ہے جو تربیتی سیٹ میں شامل نہیں تھے۔ openpi README ایک تفصیل کا اضافہ کرتا ہے جو عنوان میں نہیں ہے: جاری کردہ pi0.5 کو نالج انسولیشن (arXiv 2505.23705) کے ساتھ تربیت دی گئی تھی۔

پراپرٹیpi0pi0.5
VLM backbone variantgemma_2b (PaliGemma)gemma_2b (PaliGemma)
Action expert variantgemma_300mgemma_300m
action_dim3232
action_horizon default5050
max_token_len48200
discrete_state_inputfalsetrue، پرامپٹ میں اسٹیٹ کو بِنز میں تقسیم کیا گیا
Base checkpointgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
جو کچھ عوامی ہے وہ پورا پیپر نہیں ہے

openpi README واضح ہے: ریپوزٹری صرف فلو میچنگ ہیڈ کو سپورٹ کرتی ہے، pi0.5 کی تربیت اور انفرنس دونوں کے لیے۔ پیپر دو مراحل بیان کرتا ہے اور کوڈ صرف دوسرا مرحلہ رکھتا ہے: پری-ٹریننگ ہر ایکشن کو FAST ٹوکنائزر کے ذریعے ڈسکریٹ ٹوکنز کے طور پر پیش کرتی ہے، اور تعیناتی پر ماڈل ہر ایکشن چنک سے پہلے ایک اعلیٰ سطحی سب ٹاسک کا اندازہ لگاتا ہے۔ ان میں سے کوئی بھی ریپوزٹری میں نہیں ہے۔ lerobot/pi05_base کارڈ وہی فہرست دیتا ہے اور RL کا اضافہ کرتا ہے، حالانکہ pi0.5 پیپر میں کمک سیکھنے کے کسی بھی مرحلے کا ذکر نہیں ہے۔ LeRobot پورٹ اس دائرہ کار کو وراثت میں لیتا ہے، اور اس پر موجود ہر ہوسٹڈ ٹرینر بھی، بشمول یہاں والا۔ لائسنسنگ بھی تقسیم ہے: pi05 ڈاک پیج Apache 2.0 کہتا ہے، lerobot/pi05_base کارڈ کو license: gemma کے ساتھ ٹیگ کیا گیا ہے۔

فلو میچنگ تربیت اور انفرنس کے بارے میں کیا تبدیلیاں لاتی ہے

ایک پالیسی جسے آپ SO-100 پر تربیت دے سکتے ہیں یا تو براہ راست اعمال کو ریگریس کرتا ہے (ACT) یا انہیں ٹوکنائز کرتا ہے اور خودکار طریقے سے ڈی کوڈ کرتا ہے (pi0-FAST)۔ فلو میچنگ ان میں سے کوئی بھی نہیں کرتا: یہ ایک ویکٹر فیلڈ سیکھتا ہے جو شور کو ایک صاف ستھرے ایکشن چنک میں منتقل کرتا ہے، پھر اسے مربوط کرتا ہے۔ pi0 پیپر 0.1 کے سٹیپ سائز پر 10 انٹیگریشن سٹیپس استعمال کرتا ہے؛ LeRobot کی pi05 کنفیگریشن میں وہی num_inference_steps: int = 10 شامل ہے۔

  • ٹریننگ: نقصان ایک شور زدہ ایکشن چنک کو ریگریس کرتا ہے۔ ٹون کرنے کے لیے کوئی ٹوکنائزر نہیں، آپ کے جوائنٹ اینگلز کی کوئی ڈسکریٹائزیشن نہیں۔
  • انفرنس: ایک چنک پر ایکشن ایکسپرٹ کے ذریعے دس فارورڈ پاسز کی لاگت آتی ہے۔ یہ ساختی ہے، کوئی ٹیوننگ کا مسئلہ نہیں۔
  • آؤٹ پٹ: 32 ڈائمینشن کے مسلسل اعمال، اندرونی طور پر پیڈڈ، نقصان ان ڈائمینشنز پر لیا جاتا ہے جو آپ کے روبوٹ کے پاس ہیں۔ ایک 6-DoF بازو اور گریپر 7 استعمال کرتا ہے۔
python
# openpi/src/openpi/models/pi0_config.py - the defaults every pi05 config inherits
@dataclasses.dataclass(frozen=True)
class Pi0Config(_model.BaseModelConfig):
    dtype: str = "bfloat16"
    paligemma_variant: _gemma.Variant = "gemma_2b"
    action_expert_variant: _gemma.Variant = "gemma_300m"

    action_dim: int = 32
    action_horizon: int = 50
    max_token_len: int = None      # 200 if pi05 else 48

    pi05: bool = False             # flips discrete_state_input to True
src/openpi/models/pi0_config.py سے openpi مین برانچ پر، 23 اگست 2026 کو پڑھا گیا۔

پالیجیما بیک بون، اور اس کے سامنے کا گیٹ

PaliGemma (arXiv 2407.07726) ایک SigLIP-So400m ویژن انکوڈر ہے جو Gemma-2B لینگویج ماڈل پر مبنی ہے، جس میں تقریباً 3B پیرامیٹرز ہیں۔ Pi0.5 اس کے ٹوکنائزر کو وراثت میں لیتا ہے، اور وہ ٹوکنائزر ایک گیٹڈ ریپوزٹری میں موجود ہے۔ یہ سب سے عام طریقہ ہے جس سے پہلی رن ناکام ہو جاتی ہے، پہلے ٹریننگ سٹیپ۔

GPU کرائے پر لینے سے پہلے گیٹڈ لائسنس قبول کریں

LeRobot pi05 دستاویزات واضح طور پر بیان کرتی ہیں: pi0.5 گیٹڈ google/paligemma-3b-pt-224 ٹوکنائزر استعمال کرتا ہے، لہذا ہب پر اس کا لائسنس قبول کریں اور پہلے hf auth login چلائیں۔ رسائی دستی طور پر دی جاتی ہے، فوری طور پر نہیں۔ اسے نظر انداز کریں، ایک ادا شدہ کلاؤڈ رن شروع کریں، اور آپ ایک ایسے پوڈ کے لیے ادائیگی کریں گے جو ٹوکنائزر ڈاؤن لوڈ نہیں کر سکتا۔

شروع کرنے سے پہلے: ڈیٹا سیٹ فارمیٹ، ایپی سوڈز، ہارڈویئر

LeRobot میں Pi0.5 ایک LeRobot ڈیٹا سیٹ v3.0 لے آؤٹ میں پڑھتا ہے، جو اکتوبر 2025 میں lerobot 0.4.0 کے ساتھ آیا تھا: ہر Parquet اور MP4 فائل میں کئی ایپی سوڈز، بجائے اس کے کہ ہر ایپی سوڈ کے لیے ایک فائل کے۔ باؤنڈریز meta/episodes/ میں ہیں بجائے فائل ناموں کے۔ ڈیسک ٹاپ کلائنٹ کے ساتھ ریکارڈ کریں یا اپنا پہلا ڈیٹا سیٹ ریکارڈ کریں کی پیروی کریں اور آپ کے پاس یہ ہوگا۔

موڈGPU میموری درکارمثالی GPU
انفرنسmore than 8 GBRTX 4090
فائن ٹیوننگ، LoRAmore than 22.5 GBRTX 4090
فائن ٹیوننگ، مکملmore than 70 GBA100 80 GB or H100
ورژن کا وہ جال جو ایک دن لے لیتا ہے

Pi0.5 اور SmolVLA کو LeRobot v3.0 درکار ہے۔ GR00T N1.7 اور GR00T N1.5 کو v2.0 یا v2.1 درکار ہے اور وہ v3.0 ڈیٹا سیٹ پر کریش ہو جاتے ہیں۔ ایک ریکارڈنگ سیشن دونوں کو بغیر تبدیلی کے فیڈ نہیں کر سکتا، اور ایرر یہ نہیں کہتا کہ "غلط ڈیٹا سیٹ ورژن" ہے۔ ڈیٹا سیٹ مسترد: v3 درکار ہے دیکھیں۔

bash
# v2.1 -> v3.0, run against a dataset already on the Hub
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=<HF_USER/DATASET_ID>

# aggregates episode-0000.parquet, episode-0001.parquet, ... -> file-0000.parquet
# aggregates episode-0000.mp4, episode-0001.mp4, ...         -> file-0000.mp4
# rewrites meta/episodes/* with per-episode lengths, tasks and offsets
LeRobotDataset v3.0 کی دستاویزات سے۔

پلیٹ فارم Pi0.5 کے لیے کم از کم 50 ایپی سوڈز چاہتا ہے، جو GR00T اور ACT کے لیے بھی یہی حد ہے۔ پری ٹریننگ زیادہ تر کام کرتی ہے، لہذا 50 صاف ایپی سوڈز 200 بے ترتیب ایپی سوڈز سے بہتر ہیں۔ اس میں نئے ہیں؟ یہاں سے شروع کریں: ڈیٹا اکٹھا کرنے کی گائیڈ.

AY-Robots پالیسیز کا صفحہ جو پانچ تربیت پذیر پالیسیز کا موازنہ پیرامیٹرز، GPU ٹیر، لیٹنسی اور کم از کم ایپیسوڈز کے لحاظ سے کرتا ہے۔
Pi0.5 A100 اور H100 ٹیر میں 485 ms فی ایکشن سٹیپ پر موجود ہے، جس میں 50 ایپیسوڈ کی کم از کم حد ہے۔

روٹ A: openpi ریپوزٹری کے ساتھ فائن ٹیون کریں

حوالہ جاتی نفاذ: پہلے JAX، صرف Ubuntu 22.04 پر ٹیسٹ کیا گیا، جو فلیگز کے بجائے کنفگ آبجیکٹس سے چلتا ہے۔ ستمبر 2025 میں ایک PyTorch پاتھ آیا، جسے LIBERO پر توثیق کیا گیا۔ تین مراحل: اپنے ڈیٹا کو تبدیل کریں، ایک کنفگ کی تعریف کریں، تربیت دیں اور سروس فراہم کریں۔

  1. 1
    کلون کریں اور انسٹال کریں

    openpi uv استعمال کرتا ہے۔ GIT_LFS_SKIP_SMUDGE وہ ہے جو LeRobot کو LFS بلابز کے بغیر ایک ڈیپینڈنسی کے طور پر آنے دیتا ہے۔

    bash
    git clone --recurse-submodules git@github.com:Physical-Intelligence/openpi.git
    cd openpi
    
    GIT_LFS_SKIP_SMUDGE=1 uv sync
    GIT_LFS_SKIP_SMUDGE=1 uv pip install -e .
  2. 2
    اپنے ڈیٹا کو LeRobot ڈیٹاسیٹ میں تبدیل کریں

    اپ اسٹریم LIBERO اور DROID کے لیے کنورٹرز فراہم کرتا ہے اور توقع کرتا ہے کہ آپ ان میں سے کسی ایک کو اپنائیں گے۔ کام کی میپنگ ہے۔

    bash
    uv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data
  3. 3
    ایک ٹریننگ کنفگ شامل کریں

    کنفگز src/openpi/training/config.py میں TrainConfig اندراجات ہیں۔ یہ pi05_droid_finetune کو اپناتا ہے، جس میں ویٹ لوڈر pi05_base کی طرف اشارہ کرتا ہے۔

    python
    TrainConfig(
        name="pi05_so100",
        model=pi0_config.Pi0Config(
            pi05=True,
            action_dim=32,        # pi05 is trained with 32-dim actions
            action_horizon=16,
        ),
        # Copy LeRobotLiberoDataConfig in the same file and rewrite the key
        # mapping for your camera names, then reference your copy here.
        data=LeRobotLiberoDataConfig(
            repo_id="your_hf_username/my_so100_dataset",
            base_config=DataConfig(prompt_from_task=True),
        ),
        weight_loader=weight_loaders.CheckpointWeightLoader(
            "gs://openpi-assets/checkpoints/pi05_base/params"
        ),
        batch_size=32,
        num_train_steps=20_000,
    )
  4. 4
    نارمل اعدادوشمار کا حساب لگائیں

    کنفگ نام کے خلاف چلتا ہے، ڈیٹاسیٹ کے خلاف نہیں۔ اسے چھوڑنا یہاں کی کلاسک پہلی ناکامی ہے۔

    bash
    uv run scripts/compute_norm_stats.py --config-name pi05_so100
  5. 5
    تربیت دیں

    یہ ویری ایبل JAX کو ڈیفالٹ 75 کے بجائے 90 فیصد GPU میموری استعمال کرنے دیتا ہے۔ 80 GB کارڈ پر یہ فیصلہ کرتا ہے کہ رن کامیاب ہوتا ہے یا نہیں۔

    bash
    XLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \
        --exp-name=my_experiment \
        --overwrite
  6. 6
    اسے سروس فراہم کریں

    سرور پورٹ 8000 پر سنتا ہے اور آبزرویشن کوئریز کا جواب دیتا ہے؛ آپ کا روبوٹ رن ٹائم کلائنٹ ہے۔

    bash
    uv run scripts/serve_policy.py policy:checkpoint \
        --policy.config=pi05_so100 \
        --policy.dir=checkpoints/pi05_so100/my_experiment/20000
PyTorch پاتھ JAX پاتھ نہیں ہے

اوپن پائی کا PyTorch امپلیمینٹیشن pi0-FAST، مکسڈ پریسیشن، FSDP، LoRA یا EMA ویٹس کو سپورٹ نہیں کرتا، لہٰذا وہ LoRA جو 22.5 GB تک پہنچتا ہے صرف JAX کے ذریعے ہے، gemma_2b_lora اور gemma_300m_lora ویریئنٹس کے ذریعے۔ اس سے بھی بدتر: سیٹ اپ آپ کے انسٹال کردہ transformers 4.53.2 پر پیچ شدہ فائلیں کاپی کرتا ہے، اور README خبردار کرتا ہے کہ uv کے ڈیفالٹ ہارڈ لنک موڈ کے ساتھ یہ uv کیشے میں transformers کو مستقل طور پر تبدیل کر دیتا ہے اور دوسرے پروجیکٹس میں بھی پھیل سکتا ہے۔ اسے uv cache clean transformers کے ساتھ کالعدم کریں۔

روٹ B: lerobot pi05 کے ساتھ فائن ٹیون کریں

LeRobot پورٹ وہی ویٹس CLI میں لپیٹتا ہے جو آپ پہلے ہی ACT اور SmolVLA کے لیے استعمال کرتے ہیں۔ نیچے دی گئی ہر چیز کو lerobot 0.6.1 کے خلاف چیک کیا گیا تھا، جو 3 اگست 2026 سے ریلیز ہوئی ہے، اور 23 اگست 2026 کو pi05 دستاویزات کے خلاف۔ یہاں ورژنز اہمیت رکھتے ہیں: v3.0 ڈیٹا سیٹس اکتوبر 2025 میں 0.4.0 کے ساتھ آئے تھے، 9 مارچ 2026 کے 0.5.0 بلاگ میں pi0-FAST اور Real-Time Chunking پیش کیے گئے ہیں، اور 6 جولائی 2026 کو 0.6.0 نے بیس پیکیج کو ہلکا پھلکا بنایا اور تعیناتی کو lerobot-rollout پر منتقل کر دیا۔

ایک چیز جو منتقل نہیں ہوئی: lerobot-train اور lerobot-record اگست 2025 میں 0.3.2 میں پہلے ہی انٹری پوائنٹس تھے۔ ایک ٹیوٹوریل جو اب بھی python -m lerobot.scripts.train کال کرتا ہے وہ ایک سال کی تبدیلیوں سے پہلے کا ہے اور باقی کے بارے میں بھی قابل اعتبار نہیں ہے۔

  1. 1
    صحیح ایکسٹرا کے ساتھ انسٹال کریں

    0.6.0 کے بعد سے، بیس انسٹال صرف بنیادی ML انحصار رکھتا ہے، اور pi ایکسٹرا کوئی ڈیٹا سیٹ یا ٹریننگ کوڈ شامل نہیں کرتا، لہذا فائن ٹیون کے لیے ٹریننگ ایکسٹرا کی بھی ضرورت ہوتی ہے۔ پرانے ون لائنرز یہاں امپورٹ کے وقت ناکام ہو جاتے ہیں۔

    bash
    # policy dependencies plus the training stack
    pip install 'lerobot[pi,training]'
    
    # from a source checkout
    pip install -e ".[pi,training]"
    
    # driving an SO-100 afterwards needs the robot extras too
    pip install 'lerobot[core_scripts,feetech]'
  2. 2
    تصدیق کریں

    براؤزر میں paligemma-3b-pt-224 لائسنس قبول کریں، پھر اس مشین پر لاگ ان کریں جو ٹرین کرتی ہے۔

    bash
    hf auth login
  3. 3
    کوانٹائل شماریات شامل کریں

    Pi0.5 STATE اور ACTION کو کوانٹائلز کے ساتھ نارملائز کرتا ہے، لہذا meta/stats.json کو q01 اور q99 کی ضرورت ہوتی ہے۔ پرانے ڈیٹا سیٹس میں صرف min، max، mean، std ہوتے ہیں۔

    bash
    lerobot-edit-dataset \
        --repo_id your_dataset \
        --new_repo_id your_dataset \
        --operation.type recompute_stats \
        --operation.overwrite true
  4. 4
    lerobot/pi05_base سے فائن ٹیون کریں

    بیچ سائز کو اتنا سیٹ کریں جتنا آپ کا کارڈ برداشت کر سکے؛ دستاویزات LIBERO پر 80 GB پر 64 استعمال کرتی ہیں۔ bfloat16 کو واضح طور پر پاس کریں، کنفگ کا ڈیفالٹ float32 ہے۔

    bash
    lerobot-train \
        --dataset.repo_id=${HF_USER}/my_so100_dataset \
        --policy.type=pi05 \
        --policy.pretrained_path=lerobot/pi05_base \
        --policy.gradient_checkpointing=true \
        --policy.dtype=bfloat16 \
        --policy.device=cuda \
        --policy.push_to_hub=false \
        --output_dir=./outputs/pi05_so100 \
        --job_name=pi05_so100 \
        --batch_size=4 \
        --num_workers=8 \
        --steps=30000 \
        --save_freq=5000 \
        --seed=1000
  5. 5
    اسے بازو پر چلائیں

    0.6.x میں یہ lerobot-rollout ہے: lerobot-record ایک پالیسی کو مسترد کرتا ہے اور eval_ ڈیٹا سیٹ کے ناموں کو رد کرتا ہے۔ بیس بازو کو چلاتا ہے، سینٹری رول آؤٹ کو ریکارڈ کرتا ہے۔

    bash
    lerobot-rollout \
        --strategy.type=base \
        --policy.path=${HF_USER}/my_policy \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM1 \
        --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \
        --task="Put lego brick into the transparent box" \
        --duration=60
    
    # same run, recorded into an eval_ dataset
    lerobot-rollout \
        --strategy.type=sentry \
        --policy.path=${HF_USER}/my_policy \
        --robot.type=so100_follower \
        --robot.port=/dev/ttyACM1 \
        --dataset.repo_id=${HF_USER}/eval_so100 \
        --dataset.single_task="Put lego brick into the transparent box" \
        --duration=600
فلیگیہ کیا کرتا ہےنوٹ
--policy.type=pi05Pi0.5 کو منتخب کرتا ہےpretrained_path کے ساتھ ضروری ہے، --policy.path کے ساتھ چھوڑ دیں
--policy.pretrained_pathصرف وزن لوڈ کرتا ہےآپ کے ڈیٹا سیٹ سے فیچر کے نام، محفوظ کردہ سیٹنگز ری سیٹ ہو جاتی ہیں
--policy.pathوزن کے ساتھ چیک پوائنٹ config.jsonمحفوظ کردہ سیٹنگز جیسے n_action_steps وراثت میں ملتی ہیں
--policy.n_action_stepsہر چنک میں استعمال ہونے والے مراحل50 پر واپس آ جاتا ہے، کبھی بھی chunk_size (ڈیفالٹ 50) سے زیادہ نہیں
--policy.train_expert_onlyVLM کو منجمد کرتا ہے، ماہر کو تربیت دیتا ہےڈیفالٹ false، کم میموری، کامیابی میں کچھ لاگت
--policy.gradient_checkpointingایکٹیویشنز کو ذخیرہ کرنے کے بجائے دوبارہ کمپیوٹ کریںڈیفالٹ false، پہلا لیور جب رن فٹ نہیں ہو گا
--peft.method_type=LORAمکمل وزن کے بجائے LoRA اڈاپٹرpeft ایکسٹرا کی ضرورت ہے، دستاویزی مثال SmolVLA ہے
--policy.rtc_training_max_delayRTC کے لیے ایکشن-پریفکس کنڈیشنگصرف مین برانچ، 0.6.1 میں نہیں، chunk_size سے نیچے رہنا چاہیے
--rename_mapڈیٹا سیٹ کالمز کو پالیسی فیچرز پر میپ کرتا ہےضرورت پڑتی ہے جب آپ کے کیمرہ کیز مختلف ہوں
وہ غلطی جو زیادہ تر پہلی بار چلنے پر آتی ہے

کوانٹائلز کے بغیر آپ کو بیچ ون پر ValueError: QUANTILES normalization mode requires q01 and q99 stats ملے گا۔ شماریات کو دوبارہ کمپیوٹ کریں، لیکن نتیجہ $HF_LEROBOT_HOME/your_dataset میں آتا ہے، نہ کہ کیش --dataset.repo_id پڑھتا ہے، لہذا --dataset.root کو وہاں پوائنٹ کرتے ہوئے ٹرین کریں یا ہب پر پش کریں۔ یا کوانٹائلز کو --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}' کے ساتھ چھوڑ دیں، جیسا کہ LIBERO ریفرنس کمانڈ کرتا ہے۔

ڈیفالٹس کے تین سیٹ، اور کون سے ٹرینر تک پہنچتے ہیں

openpi کا TrainConfig حوالہ ہے، LeRobot کا PI05Config وہ ہے جو lerobot-train استعمال کرتا ہے جب آپ کچھ نہیں کہتے، اور یہاں کا فارم ایک تیسرا سیٹ بھیجتا ہے۔ حیرت کی بات لرننگ ریٹ ہے: دونوں اپ اسٹریم ڈیفالٹس 2.5e-5 پر پہنچتے ہیں، جبکہ openpi کی اپنی pi05_libero کنفگ اور یہ پلیٹ فارم اسے 5e-5 تک بڑھا دیتے ہیں۔

سیٹنگopenpi TrainConfiglerobot pi05 اور lerobot-trainAY-Robots بھیجتا ہے
بیچ سائز3281
پیک لرننگ ریٹ2.5e-5, cosine decayoptimizer_lr 2.5e-55e-5
ٹریننگ سٹیپس30,000100,00030,000
چیک پوائنٹ وقفہ1,000 steps20,000 stepsفارم میں نہیں
سیڈ421,000فارم میں
ایکشن چنکaction_horizon 50chunk_size 50, n_action_steps 50فارم میں نہیں
ویٹ ڈیٹا ٹائپbfloat16float32 until you pass --policy.dtypeفارم میں نہیں
گریڈینٹ ایکومولیشنایسا کوئی نوب نہیں، اس کے بجائے fsdp_devicesاب تک کی ہر ریلیز سے غائب16، اور اسے چھوڑ دیا گیا ہے

کیا پورٹ وفادار ہے؟ LeRobot ٹیم نے LIBERO بیس ماڈل کو مزید 6k سٹیپس کے لیے فائن ٹیون کیا اور openpi کے حوالہ نمبروں سے چار سوئیٹس پر موازنہ کیا: 96.85 کے مقابلے میں 97.5 فیصد اوسط، Libero 10 پر آگے، Spatial پر پیچھے۔ یہ راستہ ٹولنگ کا انتخاب ہے، معیار کا نہیں۔

اپنے ڈیٹا پر Pi0.5 کی فائن ٹیوننگ
فوائد
  • اس کے پیچھے روبوٹ کی 10,000 گھنٹے سے زیادہ کی پری ٹریننگ ہے، لہذا آپ کے کام کے 50 ایپی سوڈ کافی ہو سکتے ہیں۔
  • مسلسل ایکشنز: ٹیون کرنے کے لیے کوئی ٹوکنائزر نہیں، آپ کے جوائنٹ اینگلز پر کوئی ڈسکریٹائزیشن فلور نہیں۔
  • LeRobot پورٹ LIBERO اوسط پر openpi کے 96.85 کے مقابلے میں 97.5 فیصد اسکور کرتا ہے، لہذا دوستانہ CLI کی کوئی قابل پیمائش قیمت نہیں ہے۔
  • دونوں اطراف میں پیرامیٹر-موثر راستے: openpi کے JAX LoRA ویریئنٹس، LeRobot کا PEFT انٹیگریشن۔
توازن
  • مکمل فائن ٹیوننگ کے لیے 70 GB سے زیادہ کی ضرورت ہوتی ہے۔ 22.5 GB LoRA کا ہندسہ openpi کا JAX نمبر ہے؛ PEFT کے تحت pi05 کے لیے کوئی شائع نہیں کیا گیا۔
  • فی ایکشن سٹیپ 485 ms، یہاں پانچ میں سب سے سست: SmolVLA سے دو گنا، ACT سے چوبیس گنا۔
  • LeRobot v3.0 درکار ہے، لہذا GR00T رن کے لیے ریکارڈ کیے گئے ڈیٹا سیٹ کو تبدیل کرنے کی ضرورت ہے، اور اس کے برعکس۔
  • نئے آپشنز پہلے مین پر آتے ہیں: ٹریننگ کے وقت RTC اور MEM میموری 0.6.1 میں نہیں ہیں، لہذا تازہ ترین دستاویزات کا مطلب گٹ سے انسٹال کرنا ہو سکتا ہے۔

485 ملی سیکنڈ کی حقیقت، اور جہاں یہ قابل استعمال نہیں رہتی

یہ آپ کے منصوبے کا فیصلہ کرتا ہے، لہذا یہ لاگت کی جدول سے پہلے آتا ہے۔ فی ایکشن سٹیپ جو یہاں Pi0.5 کے لیے ماپا گیا ہے وہ 485 ملی سیکنڈ ہے۔ باقی چار کے مقابلے میں:

پالیسیفی ایکشن سٹیپ انفرنسپیرامیٹرزجی پی یو ٹیرکم از کم ایپی سوڈز
ACT20 ms~80 MRTX 4090 or any 24 GB card50
GR00T N1.7152 ms~3 BA100 80 GB or H100 80 GB50
GR00T N1.5165 ms~3 BA100 80 GB or H100 80 GB50
SmolVLA245 ms~450 MRTX 4090 or any 24 GB card30
Pi0.5485 ms~3 BA100 80 GB or H100 80 GB50
AY-Robots کا GR00T N1.7 بمقابلہ Pi0.5 کا ہیڈ ٹو ہیڈ صفحہ، پیرامیٹرز، جی پی یو ٹیر، لیٹنسی اور ڈیٹا سیٹ فارمیٹ کے ساتھ
ایک ہی جی پی یو ٹیر، ایک ہی ایپی سوڈ فلور، مختلف ڈیٹا سیٹ ورژن، تین گنا لیٹنسی کا فرق۔
انفرنس کو سرووز کے ساتھ ہونا چاہیے

ان پانچ ماڈلز میں کنٹرول لوپ ہر ایکشن سٹیپ پر 20 سے 485 ملی سیکنڈ تک چلتا ہے۔ 485 ملی سیکنڈ کے اوپر پبلک انٹرنیٹ راؤنڈ ٹرپس ایک فعال پالیسی کو ہچکچاہٹ والی پالیسی میں بدل دیتے ہیں۔ ریموٹ انفرنس سست پک اینڈ پلیس کے لیے قابل عمل ہے، تیز ری ایکٹو حرکت کے لیے نہیں۔ ہم یہ کہنا زیادہ پسند کریں گے بجائے اس کے کہ ایک ایسا ڈیمو بیچیں جو صرف LAN پر کام کرتا ہو۔ اگر آپ کا بازو چنکس کے درمیان رکتا ہے، تو پالیسی حرکت کے درمیان جم جاتی ہے سے شروع کریں۔

اپ اسٹریم کے پاس ایک جواب ہے، اور اس کا آدھا حصہ پہلے ہی اس ریلیز میں موجود ہے جسے آپ انسٹال کر سکتے ہیں۔ ریئل ٹائم چنکنگ اگلا چنک اس وقت تیار کرتی ہے جب بازو موجودہ چنک کو ابھی بھی چلا رہا ہوتا ہے، پھر نئے چنک کے اوورلیپنگ مراحل کی رہنمائی کرتی ہے تاکہ پہلے سے چلائے گئے حصے کے قریب رہیں، تاکہ بازو جوڑ پر رکے یا جھٹکا نہ کھائے۔ انفرنس ٹائم فارم Pi0, Pi0.5 اور SmolVLA کے لیے 0.4.2 چینج لاگ میں شامل کیا گیا تھا اور یہ ایک رول آؤٹ فلیگ ہے، ری ٹرین نہیں:

bash
lerobot-rollout \
    --strategy.type=base \
    --policy.path=${HF_USER}/my_policy \
    --inference.type=rtc \
    --inference.rtc.execution_horizon=10 \
    --inference.rtc.max_guidance_weight=10.0 \
    --robot.type=so100_follower \
    --robot.port=/dev/ttyACM1 \
    --robot.cameras="{ up: {type: opencv, index_or_path: /dev/video10, width: 640, height: 480, fps: 30}}" \
    --task="Put lego brick into the transparent box" \
    --duration=60
execution_horizon یہ بتاتا ہے کہ نئے چنک کو پچھلے چنک کے کتنے مراحل سے اتفاق کرنا ہے؛ RTC دستاویزات میں 8 سے 12 کو عام رینج بتایا گیا ہے۔ ڈیفالٹ انفرنس بیک اینڈ --inference.type=sync ہے۔

یہ ماڈل کو تیز نہیں بناتا۔ یہ خلا کو چھپاتا ہے: 485 ملی سیکنڈ اب بھی خرچ ہوتے ہیں، لیکن اہم راستے سے ہٹ کر، تاکہ چنکس کے درمیان قطار خشک نہ ہو۔ arXiv 2512.05964 سے ٹریننگ ٹائم ویرینٹ مزید آگے جاتا ہے: ماڈل ایک صاف ایکشن پریفکس پر کنڈیشن کرنا سیکھتا ہے، لہذا انفرنس پر اوورلیپ کو گائیڈڈ کے بجائے فی ایکشن فلو ٹائم سٹیپس کے ساتھ ہارڈ-ان پینٹ کیا جاتا ہے، اور گائیڈنس بیک ورڈ پاس غائب ہو جاتا ہے۔ ٹریننگ کے دوران یہ ہر مثال کے لیے ایک پریفکس لمبائی کا نمونہ لیتا ہے اور باقی پوسٹ فکس پر فلو لاس لیتا ہے۔ یہ فلیگ صرف مین پر موجود ہے، 0.6.1 میں نہیں، اور جس تاخیر کے لیے آپ ٹرین کرتے ہیں اسے chunk_size سے کم رہنا چاہیے۔

Pi0.5 چیک پوائنٹ حاصل کرنے کے دو طریقے

آپ 80 GB کارڈ کرایہ پر لیتے یا اس کے مالک ہوتے ہیں، اوپر دیے گئے اسٹیک میں سے ایک انسٹال کرتے ہیں، اپنے ڈیٹا سیٹ کو تبدیل کرتے ہیں اور رن کی نگرانی کرتے ہیں۔ آپ ہر کنٹرول رکھتے ہیں: openpi کا JAX LoRA، LeRobot کے PEFT اڈاپٹر، متعلقہ اعمال، کسٹم کلیدی نقشہ سازی۔ آپ ہر ناکامی کو بھی برقرار رکھتے ہیں۔

  • ہارڈ ویئر: A100 80 GB یا H100، یا openpi کے JAX LoRA پاتھ پر 24 GB کارڈ۔
  • سیٹ اپ: پہلی رن کے لیے ایک دوپہر، زیادہ تر کلیدی نقشہ سازی اور گیٹڈ ٹوکنائزر۔
  • میزبان فارم پر نہیں: PEFT اڈاپٹر، متعلقہ اعمال، ٹریننگ کے وقت کا RTC، MEM میموری۔
bash
lerobot-train \
    --dataset.repo_id=${HF_USER}/my_so100_dataset \
    --policy.type=pi05 \
    --policy.pretrained_path=lerobot/pi05_base \
    --policy.rtc_training_max_delay=10 \
    --policy.gradient_checkpointing=true \
    --policy.dtype=bfloat16 \
    --batch_size=4 --steps=30000 --seed=1000
The command no hosted form runs, and pip cannot install: training-time RTC is a main branch flag.

جب یہ کام نہیں کرتا

علامتسب سے زیادہ ممکنہ وجہ
رن شروع ہونے سے پہلے مسترد ہو گئیڈیٹا سیٹ v2.1 ہے لیکن Pi0.5 کو v3.0 چاہیے، یا GR00T کے لیے اس کے برعکس۔
ImportError، datasets پیکیج غائب ہےlerobot 0.6.x بغیر ٹریننگ ایکسٹرا کے
بیچ ون پر q01 اور q99 کے بارے میں ValueErrormeta/stats.json میں کوئی کوانٹائل نہیں؛ دوبارہ کمپیوٹ کریں یا MEAN_STD استعمال کریں۔
سٹیپ 0 پر CUDA میموری سے باہر70 GB سے کم مکمل فائن ٹیون؛ چیک پوائنٹنگ یا train_expert_only آزمائیں۔
401 یا گیٹڈ ریپو ایررPaliGemma ٹوکنائزر لائسنس قبول نہیں کیا گیا۔
نقصان کم ہوتا ہے، روبوٹ کچھ نہیں کرتانارملائزیشن میں عدم مطابقت، یا پالیسی اسٹیٹ کو کاپی کرتی ہے۔
آرم چنکس کے درمیان رک جاتا ہےفی سٹیپ لیٹنسی پلس راؤنڈ ٹرپ؛ چنک کیو خشک ہو جاتی ہے۔
ایک سیٹ اپ میں کام کرتا ہے، دوسرے میں ناکام ہو جاتا ہےبہت کم ایپی سوڈز، یا سب ایک ہی کنفیگریشن میں۔

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

Pi0.5 مہنگے درجے میں آتا ہے کیونکہ اسے 80 GB کارڈ کی ضرورت ہوتی ہے، اور اسپاٹ کی قیمتیں بدلتی رہتی ہیں، اس لیے یہ ایک قیمت کے بجائے ایک رینج ہے۔ بہت سے SO-100 کاموں کے لیے، پہلے تربیت دیں SmolVLA یا ACT کو پہلے 24 GB درجے پر، تصدیق کریں کہ کام سیکھنے کے قابل ہے، پھر اس پر A100 گھنٹے خرچ کریں۔ اپنی پہلی پالیسی کی تربیت دیں اس سستے لوپ کی وضاحت کرتا ہے، اور قیمتوں کا تعین موجودہ درجے دکھاتا ہے۔

درجہپالیسیاںعام رنفی گھنٹہ قیمتفی رن لاگت
A100 80 GB or H100Pi0.5, GR00T N1.7, GR00T N1.53 to 6 hours1.20 to 2.00 USDabout 4 to 12 USD
RTX 4090 or any 24 GB cardSmolVLA, ACT2 to 5 hours0.30 to 0.60 USDabout 1 to 3 USD
AY-Robots کی لاگت کی جدول جو دکھاتی ہے کہ ہر پالیسی کو کون سا GPU درکار ہے، عام رن ٹائم اور قیمت، اور ایک پالیسی کے مفید ہونے سے پہلے کتنے ایپی سوڈز کی ضرورت ہے۔
پروڈکٹ پیج پر وہی دو درجے: Pi0.5 80 GB کارڈ کرائے پر لیتا ہے، SmolVLA اور ACT 4090 پر فٹ ہوتے ہیں۔

ایک شام وقف کرنے سے پہلے: GR00T N1.7 بمقابلہ Pi0.5 اور Pi0.5 بمقابلہ SmolVLA وہی اعداد و شمار کا آمنے سامنے موازنہ کرتے ہیں۔ ایرینا میں 85 VLA ماڈلز ہیں جن کے 332 بینچ مارک نتائج ہیں، ہر ایک اپنے ماخذ سے منسلک ہے، اور اس فیملی کے بارے میں پس منظر ہمارے VLA جائزہ میں ہے۔

اسٹیک بنائے بغیر Pi0.5 کو تربیت دیں

ایک فارم میں ڈیٹا سیٹ اور ہائپر پیرامیٹرز کا انتخاب کریں۔ بیک اینڈ اسپاٹ مارکیٹ سے 80 GB کارڈ کرائے پر لیتا ہے، ٹرینر چلاتا ہے اور چیک پوائنٹس کو آبجیکٹ اسٹوریج میں لکھتا ہے۔ SO-100، SO-101، Koch v1.1 اور LeKiwi کے لیے گائیڈز۔

تربیتی گائیڈز کھولیں
کیا میں RTX 4090 پر Pi0.5 کو فائن ٹیون کر سکتا ہوں؟

مکمل فائن ٹیون نہیں: openpi اس کے لیے 70 GB سے زیادہ کی فہرست دیتا ہے، لہذا ایک A100 80 GB یا ایک H100۔ اس کا 22.5 GB LoRA کا اعداد و شمار JAX پاتھ سے تعلق رکھتا ہے؛ PyTorch امپلیمنٹیشن میں کوئی LoRA نہیں ہے۔ LeRobot کی PEFT انٹیگریشن موجود ہے، لیکن اس کی دستاویزی مثال SmolVLA ہے اور pi05 کے لیے کوئی VRAM اعداد و شمار شائع نہیں کیے گئے ہیں۔

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

پچاس، GR00T اور ACT کی طرح؛ صرف SmolVLA 30 پر کم جاتا ہے۔ بیس چیک پوائنٹ 10,000 گھنٹے سے زیادہ کی پری ٹریننگ رکھتا ہے، لہذا فائن ٹیون کچھ بھی نہ سیکھنے کے بجائے موافقت اختیار کرتا ہے: 50 صاف، متنوع ایپی سوڈز ایک کنفیگریشن سے دو سو کو مات دیتے ہیں۔

--policy.path اور --policy.pretrained_path میں کیا فرق ہے؟

--policy.path وزن اور چیک پوائنٹ کی config.json کو لوڈ کرتا ہے، لہذا n_action_steps جیسی محفوظ کردہ سیٹنگز وراثت میں ملتی ہیں اور --policy.type کو حذف کرنا ضروری ہے۔ --policy.pretrained_path صرف وزن لوڈ کرتا ہے: فیچر کے نام آپ کے ڈیٹا سیٹ سے آتے ہیں، محفوظ کردہ سیٹنگز ری سیٹ ہو جاتی ہیں، --policy.type درکار ہے۔ یہی وجہ ہے کہ LIBERO کمانڈ n_action_steps=10 اور empty_cameras=1 کو واضح طور پر پاس کرتی ہے؛ بصورت دیگر وہ 50 اور 0 پر واپس آ جاتے ہیں۔

کیا اوپن ورژن مجھے پیپر سے مکمل Pi0.5 فراہم کرتا ہے؟

نہیں۔ دونوں صرف فلو میچنگ ایکشن ہیڈ کو سپورٹ کرتے ہیں۔ FAST ایکشن ٹوکنائزر کے ساتھ ڈسکریٹ ٹوکن پری ٹریننگ مرحلہ اور ہائی لیول سب ٹاسک کی پیش گوئی جاری نہیں کی گئی تھی، اور lerobot/pi05_base کارڈ اس فہرست میں RL کا اضافہ کرتا ہے حالانکہ pi0.5 پیپر میں کوئی ری انفورسمنٹ لرننگ مرحلہ بیان نہیں کیا گیا ہے۔ آپ ایک کم سطح کی پالیسی کو تربیت دیتے ہیں جو آپ کی فراہم کردہ زبان کی سٹرنگ پر مشروط ہوتی ہے، نہ کہ ایک ایسا ماڈل جو خود ایک طویل کام کو تقسیم کرتا ہے۔

یہ گائیڈ کن ورژنز کے خلاف لکھی گئی ہے؟

مین پر openpi اور lerobot 0.6.1، جو 3 اگست 2026 سے جاری ہوا، دونوں 23 اگست 2026 کو پڑھے گئے۔ v3.0 ڈیٹا سیٹس اکتوبر 2025 میں 0.4.0 کے ساتھ آئے۔ 0.6.0 نے بیس پیکیج کو ہلکا پھلکا بنایا، لہذا lerobot[pi] اکیلے اب ٹریننگ اسٹیک انسٹال نہیں کرتا، اور تعیناتی کو lerobot-rollout میں منتقل کر دیا۔ ٹریننگ ٹائم RTC صرف مین پر ہے؛ یہاں کا ہوسٹڈ ٹرینر 0.5.1 چلاتا ہے۔

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started