
اضبط بدقة Pi0.5، نموذج VLA لمطابقة التدفق من Physical Intelligence، على بيانات الروبوت الخاصة بك. أوامر حقيقية لـ openpi و lerobot pi05، مخاطر تنسيق مجموعة البيانات، وحدود VRAM وزمن الوصول.
Pi0.5 هو النموذج الذي تلجأ إليه عندما يتعين على سياسة ما العمل في غرفة لم ترها من قبل. وهو أيضًا الأكثر صعوبة من بين الخمسة السياسات القابلة للتدريب هنا لـ الضبط الدقيق يدويًا: المستودع الأصلي يعتمد على JAX أولاً، ونقل منفذ LeRobot النشر خارج lerobot-record في الإصدار 0.6.0 وجعل التثبيت الأساسي صغيرًا جدًا للتدريب به، ولا يتسع الضبط الدقيق الكامل على 4090. أدناه: ما هي تكلفة مطابقة التدفق عند الاستدلال، ومساري الأوامر، ورقم 485 ms الذي يحدد ما إذا كانت النتيجة قابلة للاستخدام.
ما تحتاج لمعرفته
- •VLA لمطابقة التدفق: نموذج PaliGemma VLM بحجم 3 مليار معلمة بالإضافة إلى خبير إجراءات بحجم 300 مليون معلمة يفك تشفير أجزاء الإجراءات المستمرة. مساران للضبط الدقيق، openpi و LeRobot pi05، بفارق 0.65 نقطة في متوسط LIBERO.
- •يتطلب الضبط الدقيق الكامل أكثر من 70 GB من ذاكرة الفيديو (VRAM). يدرج openpi تقنية LoRA بحجم 22.5 GB، على مسار JAX الخاص به فقط.
- •يجب أن تكون مجموعة البيانات LeRobotDataset v3.0 مع الكوانتيلات q01 و q99 في meta/stats.json، وإلا سيحدث خطأ في الدفعة الأولى.
- •تحقق من إصدار lerobot الخاص بك أولاً: الإصدار 0.6.0 جعل الحزمة الأساسية خفيفة الوزن ونقل النشر خارج lerobot-record.
- •هنا يعمل بسرعة 485 ms لكل خطوة إجراء، ويتطلب 50 حلقة، ويكلف حوالي 4 to 12 USD لكل تشغيل.
ما هو Pi0.5 في الواقع
نشرت Physical Intelligence نموذج pi0 في أكتوبر 2024: وهو نموذج لمطابقة التدفق نموذج الرؤية واللغة والإجراءات على نموذج VLM مدرب مسبقًا: PaliGemma بـ 3 مليارات معلمة بالإضافة إلى خبير إجراءات بحجم 300 مليون معلمة تم تهيئته من الصفر، بإجمالي 3.3 مليار. تشير الورقة إلى التدريب المسبق على أكثر من 10,000 ساعة من بيانات الروبوت عبر 7 تكوينات روبوت و 68 مهمة. المزيد في مقالة pi0.
يحتفظ Pi0.5 (arXiv 2504.16054, 22 April 2025) بهذا الهيكل ويغير نظام التدريب: بيانات الويب، اكتشاف الكائنات، التعليمات اللفظية من البشر الذين يدربون الروبوت، تسميات المهام الفرعية، بيانات التجسيد المتقاطع من الروبوتات في العديد من المنازل. والنتيجة هي روبوت ينظف المطابخ في المنازل التي لم تكن ضمن مجموعة التدريب. يضيف ملف README الخاص بـ openpi تفصيلاً لا يذكره العنوان: تم تدريب pi0.5 الذي تم إصداره باستخدام عزل المعرفة (arXiv 2505.23705).
| الخاصية | pi0 | pi0.5 |
|---|---|---|
| متغير العمود الفقري لـ VLM | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| متغير خبير الإجراءات | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| action_horizon default | 50 | 50 |
| max_token_len | 48 | 200 |
| discrete_state_input | false | true, يتم تقسيم الحالة إلى فئات في المطالبة |
| نقطة التحقق الأساسية | gs://openpi-assets/checkpoints/pi0_base | gs://openpi-assets/checkpoints/pi05_base |
يوضح ملف README الخاص بـ openpi صراحةً: يدعم المستودع رأس مطابقة التدفق فقط، لتدريب واستدلال pi0.5 على حد سواء. تصف الورقة البحثية مرحلتين ويحتوي الكود على الثانية فقط: يمثل التدريب المسبق كل إجراء كرموز منفصلة من خلال FAST tokenizer، وعند النشر يستنتج النموذج مهمة فرعية عالية المستوى قبل كل جزء من الإجراء. لا يوجد أي من هذين الأمرين في المستودع. توفر بطاقة lerobot/pi05_base نفس القائمة وتضيف RL، على الرغم من أن ورقة pi0.5 لا تصف أي مرحلة تعلم معزز على الإطلاق. يرث منفذ LeRobot هذا النطاق، وكذلك كل مدرب مستضاف عليه، بما في ذلك المدرب الموجود هنا. الترخيص مقسم أيضًا: تقول صفحة وثائق pi05 إنها Apache 2.0، وبطاقة lerobot/pi05_base موسومة بـ license: gemma.
ما يغيره مطابقة التدفق في التدريب والاستدلال
سياسة يمكنك تدريبها على SO-100 إما أن تتراجع عن الإجراءات مباشرة (ACT) أو تقوم بتحويلها إلى رموز وفك تشفيرها بشكل تلقائي (pi0-FAST). مطابقة التدفق لا تفعل أياً من ذلك: فهي تتعلم مجالاً متجهًا ينقل الضوضاء إلى جزء عمل نظيف، ثم تقوم بدمجه. تستخدم ورقة pi0 10 خطوات تكامل بحجم خطوة 0.1؛ يحمل تكوين pi05 الخاص بـ LeRobot نفس num_inference_steps: int = 10.
- التدريب: يتراجع الفقد عن جزء عمل مشوش. لا يوجد مُرمز لضبطه، ولا يوجد تقطيع لزوايا مفاصلك.
- الاستدلال: يكلف جزء واحد عشر تمريرات أمامية عبر خبير الإجراءات. هذا هيكلي، وليس مشكلة ضبط.
- الإخراج: إجراءات مستمرة ذات أبعاد 32، مبطنة داخليًا، يتم أخذ الفقد على الأبعاد التي يمتلكها روبوتك. يستخدم ذراع 6-درجات حرية بالإضافة إلى القابض 7.
# 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العمود الفقري لـ PaliGemma، والبوابة أمامه
PaliGemma (arXiv 2407.07726) هو مُشفّر رؤية SigLIP-So400m على نموذج لغة Gemma-2B، بحوالي 3 مليار معلمة. يرث Pi0.5 أداة الترميز الخاصة به، وتوجد أداة الترميز هذه في مستودع مغلق. هذه هي الطريقة الأكثر شيوعًا لفشل التشغيل الأول، قبل خطوة التدريب.
توضح وثائق LeRobot pi05 الأمر بوضوح: يستخدم pi0.5 أداة الترميز المغلقة google/paligemma-3b-pt-224، لذا اقبل ترخيصها على Hub وقم بتشغيل hf auth login أولاً. يتم منح الوصول يدويًا، وليس فورًا. تخطى هذه الخطوة، وابدأ تشغيلًا سحابيًا مدفوعًا، وستدفع مقابل وحدة لا يمكنها تنزيل أداة ترميز.
قبل أن تبدأ: تنسيق مجموعة البيانات، الحلقات، الأجهزة
يقرأ Pi0.5 في LeRobot مجموعة بيانات LeRobot بتنسيق v3.0، والذي صدر مع lerobot 0.4.0 في أكتوبر 2025: حلقات متعددة لكل ملف Parquet و MP4 بدلاً من ملف واحد لكل حلقة، مع تحديد الحدود في meta/episodes/ بدلاً من أسماء الملفات. سجل باستخدام عميل سطح المكتب أو اتبع سجل مجموعة بياناتك الأولى وستحصل عليها.
| الوضع | ذاكرة GPU المطلوبة | مثال على GPU |
|---|---|---|
| الاستدلال | أكثر من 8 GB | RTX 4090 |
| الضبط الدقيق، LoRA | أكثر من 22.5 GB | RTX 4090 |
| الضبط الدقيق، كامل | أكثر من 70 GB | A100 80 GB or H100 |
يتطلب Pi0.5 و SmolVLA إصدار LeRobot v3.0. GR00T N1.7 و GR00T N1.5 يتطلبان v2.0 أو v2.1 ويتعطلان عند استخدام مجموعة بيانات v3.0. لا يمكن لجلسة تسجيل واحدة أن تغذي كليهما بدون تحويل، ولا يذكر الخطأ "إصدار مجموعة البيانات خاطئ". انظر مجموعة البيانات مرفوضة: v3 مطلوب.
# 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تتطلب المنصة 50 حلقة على الأقل لـ Pi0.5، وهو نفس الحد الأدنى لـ GR00T و ACT. يقوم التدريب المسبق بالعمل الشاق، لذا فإن 50 حلقة نظيفة أفضل من 200 حلقة غير دقيقة. هل أنت جديد في هذا؟ ابدأ بـ دليل جمع البيانات.

المسار أ: الضبط الدقيق باستخدام مستودع openpi
التطبيق المرجعي: JAX أولاً، تم اختباره على Ubuntu 22.04 فقط، مدفوعًا بكائنات التكوين بدلاً من العلامات. وصل مسار PyTorch في سبتمبر 2025، وتم التحقق منه على LIBERO. ثلاث خطوات: تحويل بياناتك، تحديد تكوين، تدريب وتقديم.
- 1استنساخ وتثبيت
يستخدم openpi أداة uv. تسمح GIT_LFS_SKIP_SMUDGE لـ LeRobot بالعمل كاعتمادية بدون كائنات LFS الثنائية.
bashgit 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تحويل بياناتك إلى مجموعة بيانات LeRobot
يقدم المصدر المحولات لـ LIBERO و DROID ويتوقع منك تكييف أحدها. العمل يكمن في تعيين المفاتيح.
bashuv run examples/libero/convert_libero_data_to_lerobot.py --data_dir /path/to/your/data - 3إضافة تكوين تدريب
التكوينات هي إدخالات TrainConfig في src/openpi/training/config.py. هذا التكوين يكيف pi05_droid_finetune، مع توجيه محمل الأوزان إلى pi05_base.
pythonTrainConfig( 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حساب إحصائيات المعيار
يعمل مقابل اسم التكوين، وليس مجموعة البيانات. تخطيه هو الفشل الكلاسيكي الأول هنا.
bashuv run scripts/compute_norm_stats.py --config-name pi05_so100 - 5تدريب
يسمح المتغير لـ JAX باستخدام 90 بالمائة من ذاكرة وحدة معالجة الرسوميات بدلاً من 75 بالمائة الافتراضية. على بطاقة 80 جيجابايت، يحدد ذلك ما إذا كان التشغيل سينجح.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6تقديمه
يستمع الخادم على المنفذ 8000 ويجيب على استعلامات المراقبة؛ وقت تشغيل الروبوت الخاص بك هو العميل.
bashuv run scripts/serve_policy.py policy:checkpoint \ --policy.config=pi05_so100 \ --policy.dir=checkpoints/pi05_so100/my_experiment/20000
تطبيق PyTorch الخاص بـ openpi لا يدعم أوزان pi0-FAST، الدقة المختلطة، FSDP، LoRA أو EMA، لذا فإن LoRA الذي يصل إلى 22.5 جيجابايت هو JAX فقط، من خلال متغيري gemma_2b_lora و gemma_300m_lora. والأسوأ من ذلك: يقوم الإعداد بنسخ الملفات المصححة فوق حزمة transformers 4.53.2 المثبتة لديك، ويحذر ملف README من أن وضع الارتباط الثابت الافتراضي لـ uv يقوم بتعديل transformers بشكل دائم في ذاكرة التخزين المؤقت لـ uv ويمكن أن يتسرب إلى مشاريع أخرى. تراجع عن ذلك باستخدام uv cache clean transformers.
المسار ب: الضبط الدقيق باستخدام lerobot pi05
منفذ LeRobot يغلف نفس الأوزان في واجهة سطر الأوامر التي تستخدمها بالفعل لـ ACT و SmolVLA. تم التحقق من كل ما يلي مقابل lerobot 0.6.1، الإصدار منذ 3 أغسطس 2026، ووثائق pi05 بتاريخ 23 أغسطس 2026. الإصدارات مهمة هنا: وصلت مجموعات بيانات v3.0 مع 0.4.0 في أكتوبر 2025، ومدونة 0.5.0 بتاريخ 9 مارس 2026 تقدم pi0-FAST و Real-Time Chunking، و 0.6.0 بتاريخ 6 يوليو 2026 جعلت الحزمة الأساسية خفيفة الوزن ونقلت النشر إلى lerobot-rollout.
شيء واحد لم يتغير: كان lerobot-train و lerobot-record بالفعل نقاط دخول في 0.3.2، أغسطس 2025. البرنامج التعليمي الذي لا يزال يستدعي python -m lerobot.scripts.train يسبق عامًا من التغييرات ويستحق عدم الثقة في البقية أيضًا.
- 1التثبيت مع الملحقات الصحيحة
منذ الإصدار 0.6.0، يتضمن التثبيت الأساسي تبعيات التعلم الآلي الأساسية فقط، ولا يضيف الملحق 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المصادقة
اقبل ترخيص paligemma-3b-pt-224 في المتصفح، ثم سجل الدخول على الجهاز الذي يقوم بالتدريب.
bashhf auth login - 3إضافة إحصائيات الكوانتيل
يقوم Pi0.5 بتطبيع STATE و ACTION باستخدام الكوانتيلات، لذا يحتاج meta/stats.json إلى q01 و q99. مجموعات البيانات القديمة تحتوي فقط على min, max, mean, std.
bashlerobot-edit-dataset \ --repo_id your_dataset \ --new_repo_id your_dataset \ --operation.type recompute_stats \ --operation.overwrite true - 4الضبط الدقيق من lerobot/pi05_base
اضبط حجم الدفعة (batch size) بما يتناسب مع قدرة بطاقتك؛ تستخدم الوثائق 64 على LIBERO بسعة 80 جيجابايت. مرر bfloat16 بشكل صريح، الافتراضي في الإعدادات هو float32.
bashlerobot-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تشغيله على الذراع
في الإصدار 0.6.x، هذا هو lerobot-rollout: يرفض lerobot-record سياسة ويرفض أسماء مجموعات بيانات eval_. يقوم Base بتحريك الذراع، ويقوم sentry بتسجيل عملية النشر.
bashlerobot-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=pi05 | تحدد Pi0.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_only | يجمد VLM، ويدرب الخبير | الافتراضي false، ذاكرة أقل، بعض التكلفة في النجاح |
| --policy.gradient_checkpointing | إعادة الحساب بدلاً من تخزين التنشيطات | الافتراضي false، الرافعة الأولى عندما لا يتناسب التشغيل |
| --peft.method_type=LORA | محولات LoRA بدلاً من الأوزان الكاملة | تحتاج إلى ملحق peft، المثال الموثق هو SmolVLA |
| --policy.rtc_training_max_delay | تكييف بادئة الإجراء لـ RTC | الفرع الرئيسي فقط، ليس في 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 الذي يشير إلى هناك أو ادفع إلى Hub. أو تخطى الكوانتيلات باستخدام --policy.normalization_mapping='{"ACTION": "MEAN_STD", "STATE": "MEAN_STD", "VISUAL": "IDENTITY"}'، كما يفعل أمر LIBERO المرجعي.
ثلاث مجموعات من الإعدادات الافتراضية، وأيها يصل إلى المدرب
تُعد TrainConfig من openpi هي المرجع، وPI05Config من LeRobot هي ما يستخدمه lerobot-train عندما لا تحدد شيئًا، ويرسل النموذج هنا مجموعة ثالثة. المفاجأة هي معدل التعلم: كلا الإعدادات الافتراضية الأصلية تصل إلى 2.5e-5، بينما ترفع إعدادات pi05_libero الخاصة بـ openpi وهذه المنصة المعدل إلى 5e-5.
| الإعداد | openpi TrainConfig | lerobot pi05 and lerobot-train | ما ترسله AY-Robots |
|---|---|---|---|
| حجم الدفعة | 32 | 8 | 1 |
| معدل التعلم الأقصى | 2.5e-5, تضاؤل جيبي | optimizer_lr 2.5e-5 | 5e-5 |
| خطوات التدريب | 30,000 | 100,000 | 30,000 |
| فترة نقطة التحقق | 1,000 خطوة | 20,000 خطوة | ليس في النموذج |
| البذرة | 42 | 1,000 | في النموذج |
| كتلة الإجراء | action_horizon 50 | chunk_size 50, n_action_steps 50 | ليس في النموذج |
| نوع بيانات الوزن | bfloat16 | float32 حتى تمرر --policy.dtype | ليس في النموذج |
| تراكم التدرج | لا يوجد مثل هذا الخيار، fsdp_devices بدلاً من ذلك | غائب عن كل إصدار حتى الآن | 16، وقد تم إسقاطه |
هل المنفذ موثوق؟ قام فريق LeRobot بضبط النموذج الأساسي LIBERO بدقة لـ 6 آلاف خطوة إضافية وقارنوه بأرقام openpi المرجعية على أربع مجموعات: متوسط 97.5 بالمائة مقابل 96.85، متقدمًا في Libero 10، ومتأخرًا في Spatial. المسار هو خيار أدوات، وليس خيار جودة.
- أكثر من 10,000 ساعة من التدريب المسبق للروبوت خلفه، لذا 50 حلقة من مهمتك قد تكون كافية.
- إجراءات مستمرة: لا يوجد مُحلل رموز لضبطه، ولا حد أدنى للتقطيع على زوايا مفاصلك.
- يحقق منفذ LeRobot نسبة 97.5 بالمائة في متوسط LIBERO مقابل 96.85 لـ openpi، لذا فإن واجهة سطر الأوامر الأكثر ودية لا تكلف شيئًا قابلاً للقياس.
- مسارات فعالة من حيث المعلمات على كلا الجانبين: متغيرات JAX LoRA من openpi، وتكامل PEFT من LeRobot.
- يتطلب الضبط الدقيق الكامل أكثر من 70 جيجابايت. رقم LoRA البالغ 22.5 جيجابايت هو رقم JAX الخاص بـ openpi؛ لم يتم نشر أي رقم لـ pi05 تحت PEFT.
- 485 مللي ثانية لكل خطوة إجراء، الأبطأ من بين الخمسة هنا: ضعف SmolVLA، وأربعة وعشرون ضعف ACT.
- LeRobot v3.0 مطلوب، لذا مجموعة بيانات مسجلة لـ GR00T تشغيل تحتاج إلى تحويل، والعكس صحيح.
- الخيارات الجديدة تصل إلى main أولاً: ذاكرة RTC وMEM أثناء التدريب ليست موجودة في 0.6.1، لذا أحدث الوثائق قد تعني التثبيت من git.
واقع 485 مللي ثانية، ومتى يصبح غير قابل للاستخدام
هذا يحدد مشروعك، لذا يأتي قبل جدول التكلفة. الـ زمن استجابة الاستدلال لكل خطوة إجراء تم قياسها هنا لـ Pi0.5 هي 485 مللي ثانية. مقارنة بالنماذج الأربعة الأخرى:
| السياسة | الاستدلال لكل خطوة إجراء | المعلمات | فئة وحدة معالجة الرسوميات | الحد الأدنى للحلقات |
|---|---|---|---|---|
| ACT | 20 ms | ~80 M | RTX 4090 or any 24 GB card | 50 |
| GR00T N1.7 | 152 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| GR00T N1.5 | 165 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |
| SmolVLA | 245 ms | ~450 M | RTX 4090 or any 24 GB card | 30 |
| Pi0.5 | 485 ms | ~3 B | A100 80 GB or H100 80 GB | 50 |

تستغرق حلقة التحكم عبر هذه النماذج الخمسة من 20 إلى 485 مللي ثانية لكل خطوة إجراء. تؤدي رحلات الذهاب والإياب عبر الإنترنت العام، بالإضافة إلى 485 مللي ثانية، إلى تحويل سياسة عمل فعالة إلى سياسة مترددة. الاستدلال عن بعد ممكن لمهام الالتقاط والوضع البطيئة، وليس للحركة التفاعلية السريعة. نفضل أن نقول ذلك بدلاً من بيع عرض توضيحي يعمل فقط على شبكة محلية (LAN). إذا توقف ذراعك مؤقتًا بين الأجزاء، فابدأ من توقف السياسة في منتصف الحركة.
لدى المصدر حلاً، ونصفه موجود بالفعل في الإصدار الذي يمكنك تثبيته. توليد الأجزاء في الوقت الفعلي (Real-Time Chunking) يولد الجزء التالي بينما لا يزال الذراع ينفذ الجزء الحالي، ثم يوجه الخطوات المتداخلة للجزء الجديد للبقاء قريبة من الجزء الذي تم تنفيذه بالفعل، بحيث لا يتوقف الذراع أو يهتز عند نقطة الالتقاء. الشكل الخاص بوقت الاستدلال الذي تم شحنه في سجل التغييرات 0.4.2 لـ Pi0 و Pi0.5 و SmolVLA هو علامة نشر (rollout flag)، وليس إعادة تدريب:
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هذا لا يجعل النموذج أسرع. إنه يخفي الفجوة: لا تزال 485 مللي ثانية تُستهلك، ولكن خارج المسار الحرج، بحيث لا تجف قائمة الانتظار بين الأجزاء. النسخة الخاصة بوقت التدريب من arXiv 2512.05964 تذهب أبعد من ذلك: يتعلم النموذج التكيّف مع بادئة إجراء نظيفة، لذلك عند الاستدلال يتم ملء التداخل بقوة باستخدام خطوات زمنية لتدفق كل إجراء بدلاً من التوجيه، ويختفي التمرير الخلفي للتوجيه. أثناء التدريب، يقوم بأخذ عينة من طول بادئة لكل مثال ويحسب خسارة التدفق على اللاحقة المتبقية. توجد هذه العلامة في الفرع الرئيسي (main) فقط، وليس في 0.6.1، ويجب أن يظل التأخير الذي تدرب عليه أقل من chunk_size.
طريقتان للحصول على نقطة فحص Pi0.5
يمكنك استئجار أو امتلاك بطاقة بسعة 80 جيجابايت، وتثبيت أحد المكدسات المذكورة أعلاه، وتحويل مجموعة البيانات الخاصة بك، ومراقبة التشغيل. تحتفظ بكل خيار: JAX LoRA من openpi، ومحولات PEFT من LeRobot، والإجراءات النسبية، وتعيينات المفاتيح المخصصة. كما أنك تحتفظ بكل فشل.
- الأجهزة: A100 80 جيجابايت أو H100، أو بطاقة 24 جيجابايت على مسار JAX LoRA الخاص بـ openpi.
- الإعداد: فترة ما بعد الظهر للتشغيل الأول، ومعظمها لتعيين المفاتيح والمُحلل اللغوي المُتحكم به.
- غير متوفر في النموذج المستضاف: محولات PEFT، والإجراءات النسبية، وRTC وقت التدريب، وذاكرة MEM.
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تختار النموذج ومجموعة البيانات في نموذج التدريب، ويقوم الواجهة الخلفية باستئجار وحدة معالجة رسوميات (GPU) من سوق فوري بناءً على ذاكرة الفيديو المطلوبة، ويشغل المدرب ويكتب نقاط الفحص إلى تخزين الكائنات. Pi0.5 متاح فقط على السحابة هنا. توجد أدلة لـ SO-100، SO-101، Koch v1.1 و LeKiwi.
| الإعداد | ما ترسله المنصة لـ Pi0.5 |
|---|---|
| نقطة الفحص الأساسية | lerobot/pi05_base |
| نوع السياسة | pi05 |
| حجم الدفعة | 1 |
| معدل التعلم | 5e-5 |
| الحد الأقصى للخطوات | 30000 |
| تراكم التدرج | 16, but see the warning below |
| خيارات إضافية في النموذج | seed, logFreq |
| تنسيق مجموعة البيانات | LeRobot v3.0 |
| فئة وحدة معالجة الرسوميات | A100 80 GB or H100 80 GB |
يرسل المدرب قيمة تراكم تدرج قدرها 16، ولا يحتوي lerobot 0.5.1 على علامة لاستقبالها، لذلك يتم إسقاطها. لا يوجد إصدار من lerobot يحتوي على هذه العلامة: الخيار موجود فقط في الفرع الرئيسي، كـ --accelerator.gradient_accumulation.steps. حجم الدفعة الفعال هنا هو 1، مقابل 256 التي يستخدمها تكوين pi05_libero الخاص بـ openpi. من الجدير بالمعرفة قبل قراءة منحنى الخسارة. ينطبق هذا الخيار على تشغيلات GR00T N1.7 و GR00T N1.5.
يعمل الاستدلال بنفس الطريقة: يتم توفير حاوية لخدمة السياسة ويتحدث عميلك المحلي إليها. تحتوي الحاوية على مراقب خمول وتدمر نفسها، لذلك لا يتم الفوترة بصمت لعلامة تبويب منسية. ينطبق تحذير زمن الاستجابة، ولهذا السبب غالبًا ما يفوز ACT عند 20 مللي ثانية بالمهمات السريعة.
عندما لا يعمل
| العرض | السبب الأكثر احتمالاً |
|---|---|
| تم رفض التشغيل قبل أن يبدأ | مجموعة البيانات v2.1 ولكن Pi0.5 يتطلب v3.0، أو العكس لـ GR00T |
| ImportError، حزمة datasets مفقودة | lerobot 0.6.x بدون الإضافات التدريبية |
| ValueError حول q01 و q99 في الدفعة الأولى | لا توجد كميات في meta/stats.json؛ أعد الحساب أو استخدم MEAN_STD |
| CUDA نفاد الذاكرة عند الخطوة 0 | ضبط دقيق كامل أقل من 70 جيجابايت؛ جرب نقطة الفحص أو train_expert_only |
| خطأ 401 أو خطأ في المستودع المقيد | ترخيص PaliGemma tokenizer غير مقبول |
| الخسارة تنخفض، الروبوت لا يفعل شيئًا | عدم تطابق في التطبيع، أو السياسة تنسخ الحالة |
| الذراع يتوقف بين الأجزاء | زمن استجابة لكل خطوة بالإضافة إلى الذهاب والإياب؛ قائمة الانتظار للأجزاء فارغة |
| يعمل في إعداد واحد، ويفشل في آخر | عدد قليل جدًا من الحلقات، أو كلها في تكوين واحد |
- تم رفض مجموعة البيانات: الإصدار الثالث مطلوب
- نفاد الذاكرة أثناء التدريب
- ينخفض الخسارة لكن السياسة لا تفعل شيئًا
- تتجمد السياسة في منتصف الحركة
- السياسة تعمل في إعداد واحد فقط
- مهمة التدريب عالقة في قائمة الانتظار
تكلفة التشغيل الواحد
يقع Pi0.5 في الفئة باهظة الثمن لأنه يحتاج إلى بطاقة 80 جيجابايت، وتتغير أسعار السوق الفورية، لذا فإن الرقم هو نطاق بدلاً من سعر محدد. للعديد من مهام SO-100، قم بتدريب SmolVLA أو ACT على فئة 24 جيجابايت أولاً، وتأكد من أن المهمة قابلة للتعلم على الإطلاق، ثم اقضِ ساعات A100 عليها. تدريب سياستك الأولى يشرح هذه الحلقة الأقل تكلفة، و التسعير يعرض الفئات الحالية.
| الفئة | السياسات | التشغيل النموذجي | السعر لكل ساعة | التكلفة لكل تشغيل |
|---|---|---|---|---|
| A100 80 جيجابايت أو H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 إلى 6 ساعات | 1.20 to 2.00 USD | حوالي 4 إلى 12 دولار أمريكي |
| RTX 4090 أو أي بطاقة 24 جيجابايت | SmolVLA, ACT | 2 إلى 5 ساعات | 0.30 to 0.60 USD | حوالي 1 إلى 3 دولار أمريكي |

قبل الالتزام بأمسية: GR00T N1.7 مقابل Pi0.5 و Pi0.5 مقابل SmolVLA تعرض نفس الأرقام وجهاً لوجه. الـ ساحة المقارنة تحتوي على 85 نموذج VLA مع 332 نتيجة معيارية، كل منها مرتبط بمصدره، والخلفية عن هذه الفئة موجودة في نظرة عامة على VLA الخاصة بنا.
تدريب Pi0.5 دون بناء المكدس
اختر مجموعة البيانات والمعاملات الفائقة في نموذج. يقوم الواجهة الخلفية باستئجار بطاقة 80 جيجابايت من السوق الفورية، ويشغل المدرب ويكتب نقاط الحفظ إلى تخزين الكائنات. أدلة لـ SO-100، SO-101، Koch v1.1 و LeKiwi.
افتح أدلة التدريبهل يمكنني ضبط Pi0.5 بدقة على RTX 4090؟▾
ليس ضبطًا دقيقًا كاملاً: openpi يسرد أكثر من 70 جيجابايت لذلك، لذا يلزم A100 80 جيجابايت أو H100. رقم LoRA البالغ 22.5 جيجابايت ينتمي إلى مسار JAX؛ تطبيق PyTorch لا يحتوي على LoRA. تكامل PEFT الخاص بـ LeRobot موجود، لكن مثاله الموثق هو SmolVLA ولم يتم نشر رقم VRAM لـ pi05.
كم عدد الحلقات التي أحتاجها؟▾
خمسون، وهو نفس الحد الأدنى لـ 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 مع 0.4.0 في أكتوبر 2025. جعل 0.6.0 الحزمة الأساسية خفيفة الوزن، لذا لم يعد lerobot[pi] وحده يثبت مكدس تدريب، ونقل النشر إلى lerobot-rollout. RTC وقت التدريب موجود على الفرع الرئيسي فقط؛ المدرب المستضاف هنا يعمل بالإصدار 0.5.1.
Sources
- Physical-Intelligence/openpi: open-source models and packages for robotics
- openpi training configs, including pi05_libero and pi05_droid_finetune
- pi0: A Vision-Language-Action Flow Model for General Robot Control
- pi0.5: a Vision-Language-Action Model with Open-World Generalization
- Knowledge Insulating Vision-Language-Action Models: Train Fast, Run Fast, Generalize Better
- PaliGemma: A versatile 3B VLM for transfer
- Training-Time Action Conditioning for Efficient Real-Time Chunking
- LeRobot pi05 documentation on the main branch, including training-time RTC
- LeRobot documentation: parameter efficient fine-tuning with PEFT
- LeRobotDataset v3.0 format documentation
- LeRobot release notes: v0.3.2 through v0.6.1, with the v0.6.0 breaking changes
- LeRobot v0.5.0: Scaling Every Dimension
- lerobot/pi05_base model card
- LeRobot documentation: Real-Time Chunking (RTC)
- openpi Pi0Config: the model defaults pi0 and pi05 inherit
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started