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 ले LoRA लाई 22.5 GB मा सूचीबद्ध गर्दछ, यसको JAX मार्गमा मात्र।
  • डेटासेट LeRobotDataset v3.0 हुनुपर्छ जसमा meta/stats.json मा q01 र q99 क्वान्टाइलहरू छन्, अन्यथा ब्याचले त्रुटि दिन्छ।
  • पहिले आफ्नो lerobot संस्करण जाँच गर्नुहोस्: 0.6.0 ले आधारभूत प्याकेजलाई हल्का बनायो र lerobot-record बाट डिप्लोयमेन्ट हटायो।
  • यहाँ यो प्रति एक्शन स्टेप 485 ms मा चल्छ, 50 एपिसोडहरू चाहिन्छ, र प्रति रन लगभग 4 देखि 12 USD खर्च हुन्छ।

Pi0.5 वास्तवमा के हो

Physical Intelligence ले अक्टोबर 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, prompt मा स्टेटलाई बिनहरूमा विभाजित गरिएको छ
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
openpi मुख्य शाखामा src/openpi/models/pi0_config.py बाट पढिएको, 23 अगस्ट 2026।

PaliGemma ब्याकबोन, र यसको अगाडिको गेट

PaliGemma (arXiv 2407.07726) एउटा SigLIP-So400m भिजन इन्कोडर हो जुन Gemma-2B भाषा मोडेलमा आधारित छ, लगभग 3B प्यारामिटरहरू सहित। Pi0.5 ले यसको टोकेनाइजर विरासतमा प्राप्त गर्दछ, र त्यो टोकेनाइजर एउटा गेटेड रिपोजिटरीमा छ। यो पहिलो रन असफल हुने सबैभन्दा सामान्य तरिका हो, पहिलो तालिम चरण अघि।

GPU भाडामा लिनु अघि गेटेड लाइसेन्स स्वीकार गर्नुहोस्

LeRobot pi05 कागजातहरूले स्पष्ट रूपमा भन्छ: pi0.5 ले गेटेड google/paligemma-3b-pt-224 टोकेनाइजर प्रयोग गर्दछ, त्यसैले Hub मा यसको लाइसेन्स स्वीकार गर्नुहोस् र पहिले 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 मा मात्र परीक्षण गरिएको, फ्ल्यागहरूको सट्टा कन्फिग वस्तुहरूद्वारा संचालित। PyTorch मार्ग सेप्टेम्बर 2025 मा आइपुग्यो, 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 को सट्टा GPU मेमोरीको 90 प्रतिशत प्रयोग गर्न दिन्छ। 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 मार्ग होइन

openpi को PyTorch कार्यान्वयनले pi0-FAST, मिश्रित परिशुद्धता, FSDP, LoRA वा EMA तौलहरूलाई समर्थन गर्दैन, त्यसैले 22.5 GB पुग्ने LoRA JAX मात्र हो, gemma_2b_loragemma_300m_lora भेरियन्टहरू मार्फत। अझ खराब: सेटअपले तपाईंको स्थापित transformers 4.53.2 मा प्याच गरिएका फाइलहरू प्रतिलिपि गर्छ, र README ले चेतावनी दिन्छ कि uv को पूर्वनिर्धारित हार्डलिंक मोडले uv क्यास भित्र transformers लाई स्थायी रूपमा परिमार्जन गर्छ र अन्य परियोजनाहरूमा चुहावट हुन सक्छ। यसलाई uv cache clean transformers मार्फत पूर्ववत गर्नुहोस्।

मार्ग B: lerobot pi05 सँग फाइन-ट्यून गर्नुहोस्

LeRobot पोर्टले तपाईंले पहिले नै प्रयोग गरिरहनुभएको CLI मा उही तौलहरू समावेश गर्दछ ACTSmolVLA। तलका सबै कुरा 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-trainlerobot-record पहिले नै 0.3.2, अगस्ट 2025 मा प्रवेश बिन्दुहरू थिए। एउटा ट्यूटोरियल जसले अझै पनि 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 बाट फाइन-ट्युन गर्नुहोस्

    ब्याच साइजलाई तपाईंको कार्डले धान्ने जतिमा सेट गर्नुहोस्; कागजातहरूले 80 GB मा LIBERO मा 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.jsonn_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, कोसाइन क्षयoptimizer_lr 2.5e-55e-5
तालिम चरणहरू30,000100,00030,000
चेकपोइन्ट अन्तराल1,000 चरणहरू20,000 चरणहरूफारममा छैन
सिड421,000फारममा छ
कार्य खण्डaction_horizon 50chunk_size 50, n_action_steps 50फारममा छैन
तौल dtypebfloat16float32 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 पोर्टले openpi को 96.85 को विरुद्धमा LIBERO औसतमा 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 मा छैनन्, त्यसैले नवीनतम कागजातहरूको अर्थ git बाट स्थापना गर्नु हुन सक्छ।

485 ms को वास्तविकता, र यो कहाँ प्रयोग गर्न योग्य रहँदैन

यसले तपाईंको परियोजनाको निर्णय गर्छ, त्यसैले यो लागत तालिका भन्दा पहिले आउँछ। Pi0.5 को लागि यहाँ मापन गरिएको प्रति कार्य चरण 485 ms छ। अन्य चारको तुलनामा:

नीतिप्रति कार्य चरण इन्फरेन्सप्यारामिटरहरूGPU टियरन्यूनतम एपिसोडहरू
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 बीचको तुलनात्मक पृष्ठ, प्यारामिटरहरू, GPU टियर, लेटेन्सी र डेटासेट ढाँचा सहित
एउटै GPU टियर, एउटै एपिसोड फ्लोर, फरक डेटासेट संस्करण, तीन गुणा लेटेन्सी अन्तर।
इन्फरेन्स सर्भोहरूको छेउमा हुनुपर्छ

यी पाँच मोडेलहरूमा नियन्त्रण लूप प्रति कार्य चरणमा २० देखि ४८५ मिलिसेकेन्डसम्म चल्छ। ४८५ मिलिसेकेन्डभन्दा बढी सार्वजनिक इन्टरनेट राउन्ड ट्रिपहरूले काम गर्ने नीतिलाई हिचकिचाहटपूर्ण बनाउँछ। रिमोट इन्फरेन्स ढिलो पिक-एन्ड-प्लेसका लागि सम्भव छ, तर द्रुत प्रतिक्रियात्मक गतिको लागि होइन। हामी 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 कागजातहरूले ८ देखि १२ लाई सामान्य दायराको रूपमा दिन्छन्। पूर्वनिर्धारित इन्फरेन्स ब्याकेन्ड --inference.type=sync हो।

यसले मोडेललाई छिटो बनाउँदैन। यसले खाली ठाउँ लुकाउँछ: ४८५ मिलिसेकेन्ड अझै खर्च हुन्छ, तर महत्वपूर्ण मार्गबाट ​​बाहिर, त्यसैले चङ्कहरू बीचमा कतार सुक्दैन। arXiv 2512.05964 बाट प्रशिक्षण-समय भेरियन्ट अझ अगाडि जान्छ: मोडेलले सफा कार्य उपसर्गमा सर्त गर्न सिक्छ, त्यसैले इन्फरेन्समा ओभरल्याप निर्देशित हुनुको सट्टा प्रति-कार्य प्रवाह टाइमस्टेपहरूसँग हार्ड-इनपेन्टेड हुन्छ, र मार्गदर्शन ब्याकवर्ड पास हराउँछ। प्रशिक्षणको क्रममा यसले प्रति उदाहरण एक उपसर्ग लम्बाइ नमूना गर्छ र बाँकी पोस्टफिक्समा प्रवाह हानि लिन्छ। त्यो फ्ल्याग मुख्यमा मात्र रहन्छ, 0.6.1 मा होइन, र तपाईंले प्रशिक्षण गर्ने ढिलाइ chunk_size भन्दा कम हुनुपर्छ।

Pi0.5 चेकपोइन्ट प्राप्त गर्ने दुई तरिकाहरू

तपाईंले ८० GB कार्ड भाडामा लिनुहुन्छ वा आफ्नै छ, माथिका स्ट्याकहरू मध्ये एउटा स्थापना गर्नुहुन्छ, आफ्नो डेटासेट रूपान्तरण गर्नुहुन्छ र रनको निगरानी गर्नुहुन्छ। तपाईंले हरेक नियन्त्रण राख्नुहुन्छ: openpi को JAX LoRA, LeRobot को PEFT एडाप्टरहरू, सापेक्षिक कार्यहरू, अनुकूलित कुञ्जी म्यापिङहरू। तपाईंले हरेक असफलता पनि राख्नुहुन्छ।

  • हार्डवेयर: A100 80 GB वा H100, वा openpi को JAX LoRA पाथमा २४ 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
यो कमाण्ड कुनै होस्टेड फारमले चलाउँदैन, र pip ले स्थापना गर्न सक्दैन: प्रशिक्षण-समय RTC मुख्य शाखाको फ्ल्याग हो।

जब यसले काम गर्दैन

लक्षणसबैभन्दा सम्भावित कारण
सुरु हुनु अघि रन अस्वीकृतडेटासेट v2.1 तर Pi0.5 लाई v3.0 चाहिन्छ, वा GR00T को लागि उल्टो
ImportError, डेटासेट प्याकेज हराइरहेकोप्रशिक्षण अतिरिक्त बिना lerobot 0.6.x
ब्याच एकमा q01 र q99 बारे ValueErrormeta/stats.json मा कुनै क्वान्टाइल छैन; पुन: गणना गर्नुहोस् वा MEAN_STD प्रयोग गर्नुहोस्
चरण ० मा CUDA मेमोरी सकियो७० GB भन्दा कममा पूर्ण फाइन-ट्यून; चेकपोइन्टिङ वा train_expert_only प्रयास गर्नुहोस्
४०१ वा गेटेड रेपो त्रुटिPaliGemma टोकेनाइजर लाइसेन्स स्वीकार गरिएन
लस घट्छ, रोबोटले केही गर्दैनसामान्यीकरण बेमेल, वा नीतिले अवस्था प्रतिलिपि गर्छ
आर्म चङ्कहरू बीच रोकिन्छप्रति-चरण विलम्बता प्लस राउन्ड ट्रिप; चङ्क क्यु खाली हुन्छ
एउटा सेटअपमा काम गर्छ, अर्कोमा असफल हुन्छधेरै कम एपिसोडहरू, वा सबै एउटै कन्फिगरेसनमा

एउटा रनको लागत कति?

Pi0.5 महँगो टियरमा पर्छ किनभने यसलाई 80 GB कार्ड चाहिन्छ, र स्पट मूल्यहरू परिवर्तन भइरहन्छन्, त्यसैले यो अंक मूल्य भन्दा दायरा हो। धेरै SO-100 कार्यहरूको लागि, तालिम दिनुहोस् SmolVLA वा ACT लाई पहिले 24 GB टियरमा, कार्य सिक्न योग्य छ कि छैन भनी पुष्टि गर्नुहोस्, त्यसपछि यसमा A100 घण्टा खर्च गर्नुहोस्। आफ्नो पहिलो नीति तालिम दिनुहोस् ले त्यो सस्तो लुप देखाउँछ, र मूल्य निर्धारण ले हालको टियरहरू समावेश गर्दछ।

टियरनीतिहरूसामान्य रनप्रति घण्टा मूल्यप्रति रन लागत
A100 80 GB वा H100Pi0.5, GR00T N1.7, GR00T N1.53 to 6 hours1.20 to 2.00 USDलगभग 4 देखि 12 USD
RTX 4090 वा कुनै पनि 24 GB कार्डSmolVLA, ACT2 to 5 hours0.30 to 0.60 USDलगभग 1 देखि 3 USD
AY-Robots लागत तालिका जसले प्रत्येक नीतिलाई कुन GPU चाहिन्छ, सामान्य रन समय र मूल्य, र नीति उपयोगी हुनु अघि कति एपिसोडहरू आवश्यक पर्दछ भनेर देखाउँछ।
उत्पादन पृष्ठमा उही दुई स्तरहरू: Pi0.5 ले 80 GB कार्ड भाडामा लिन्छ, SmolVLA र ACT 4090 मा फिट हुन्छन्।

एक साँझ प्रतिबद्ध गर्नु अघि: GR00T N1.7 विरुद्ध Pi0.5Pi0.5 विरुद्ध SmolVLA ले उही संख्याहरूलाई आमनेसामने राख्छ। एरिना मा 332 बेन्चमार्क परिणामहरू सहित 85 VLA मोडेलहरू छन्, प्रत्येक यसको स्रोतसँग जोडिएको छ, र परिवारको बारेमा पृष्ठभूमि हाम्रो 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