የAY-Robots ማሰልጠኛ ማትሪክስ በአምስት ፖሊሲዎች እንደ ረድፎች እና በአራት ሮቦት ክንዶች እንደ አምዶች፣ እያንዳንዱ ሕዋስ ወደ አንድ የተወሰነ የማስተካከያ መመሪያ የሚወስድ አገናኝ ነው።
Pi0.5ፍሎው ማችንግVLA ስልጠናLeRobotማስተካከል

Pi0.5ን በራስዎ ሮቦት ዳታ ላይ እንዴት ማሰልጠን እንደሚቻል

AY-Robots ResearchAugust 23, 202616 ደቂቃ ንባብ

ከPhysical Intelligence የመጣውን ፍሎው-ማችንግ VLA የሆነውን Pi0.5ን በራስዎ ሮቦት ዳታ ላይ ያስተካክሉ። ለopenpi እና lerobot pi05 እውነተኛ ትዕዛዞች፣ የዳታሴት ቅርጸት ወጥመዶች፣ የVRAM እና የlatency ገደቦች።

Pi0.5 አንድ ፖሊሲ ከዚህ በፊት አይቶት በማያውቅ ክፍል ውስጥ መስራት ሲኖርበት የሚጠቀሙበት ሞዴል ነው። እንዲሁም ከሚከተሉት አምስት ሊሰለጥኑ የሚችሉ ፖሊሲዎች እዚህ ጋር በእጅ ለማስተካከል አስቸጋሪው ነው። ምክንያቱም የላይኛው ሪፖዚተሪ መጀመሪያ JAX ነው፣ የLeRobot ፖርት በ0.6.0 ውስጥ ዲፕሎይመንትን ከlerobot-record አውጥቶታል እና መሰረታዊ ጭነቱ ለማሰልጠን በጣም ትንሽ እንዲሆን አድርጎታል፣ እንዲሁም ሙሉ ማስተካከያ በ4090 ላይ አይገጥምም። ከታች: ፍሎው ማችንግ በኢንፈረንስ ጊዜ ምን ያህል እንደሚያስወጣ፣ ሁለቱ የትዕዛዝ መንገዶች፣ እና ውጤቱ ጥቅም ላይ ሊውል የሚችል መሆኑን የሚወስነው የ485 ms ቁጥር።

ማወቅ ያለብዎት ነገር

  • ፍሎው-ማችንግ VLA: 3B PaliGemma VLM እና 300M የድርጊት ኤክስፐርት ቀጣይነት ያላቸውን የድርጊት ክፍሎች የሚፈታ። ለማስተካከል ሁለት መንገዶች አሉ፣ openpi እና LeRobot pi05፣ በLIBERO አማካይ ላይ 0.65 ነጥብ ልዩነት አላቸው።
  • ሙሉ ማስተካከያ ከ70 ጊባ በላይ VRAM ያስፈልገዋል። openpi LoRAን በ22.5 ጊባ ይዘረዝራል፣ በJAX መንገዱ ላይ ብቻ።
  • የውሂብ ስብስቡ LeRobotDataset v3.0 መሆን አለበት፣ በmeta/stats.json ውስጥ q01 እና q99 ኳንታይሎች ያሉት፣ አለበለዚያ ባች አንድ ስህተት ይጥላል።
  • በመጀመሪያ የlerobot ስሪትዎን ያረጋግጡ: 0.6.0 መሰረታዊ ፓኬጁን ቀላል አድርጎታል እና ዲፕሎይመንትን ከlerobot-record አውጥቶታል።
  • እዚህ ጋር በአንድ የድርጊት ደረጃ 485 ms ይወስዳል፣ 50 ክፍሎችን ይፈልጋል፣ እና በአንድ ሩጫ ከ4 እስከ 12 ዶላር ያስወጣል።

Pi0.5 በእርግጥ ምንድን ነው

Physical Intelligence በጥቅምት 2024 pi0ን አሳተመ: ፍሎው ማችንግ የእይታ-ቋንቋ-ድርጊት ሞዴል በቅድመ-ሰለጠነ VLM ላይ የተመሰረተ: PaliGemma በ3 ቢሊዮን ፓራሜትሮች እና ከባዶ የተጀመረ 300M የድርጊት ኤክስፐርት፣ በጠቅላላው 3.3 ቢሊዮን። ወረቀቱ ከ10,000 ሰዓታት በላይ በሆነ የሮቦት ዳታ ላይ በ7 የሮቦት ውቅሮች እና በ68 ተግባራት ላይ ቅድመ-ስልጠና እንደተደረገ ይዘግባል። ተጨማሪ መረጃ በ የpi0 ጽሑፍ

Pi0.5 (arXiv 2504.16054, 22 ኤፕሪል 2025) ያንን አጽም ይዞ የስልጠናውን አመጋገብ ይለውጣል፦ የድር መረጃ፣ የነገር ማወቂያ፣ ሮቦቱን ከሚያሰለጥኑ ሰዎች የቃል መመሪያዎች፣ ንዑስ ተግባር መለያዎች፣ ከብዙ ቤቶች ከሚገኙ ሮቦቶች የተገኘ የሰውነት-አቋራጭ መረጃ። ውጤቱም በስልጠና ስብስብ ውስጥ ያልነበሩ ቤቶች ውስጥ ወጥ ቤቶችን የሚያጸዳ ሮቦት ነው። የ openpi README ርዕሱ ያልጠቀሰውን ዝርዝር ይጨምራል፦ የተለቀቀው pi0.5 በእውቀት መከላከያ (arXiv 2505.23705) የሰለጠነ ነበር።

ባህሪpi0pi0.5
VLM የጀርባ አጥንት ልዩነትgemma_2b (PaliGemma)gemma_2b (PaliGemma)
የድርጊት ባለሙያ ልዩነትgemma_300mgemma_300m
action_dim3232
የድርጊት አድማስ ነባሪ5050
max_token_len48200
discrete_state_inputfalsetrue, ሁኔታው በጥያቄው ውስጥ ወደ ክፍሎች ተከፋፍሏል
መሰረታዊ የፍተሻ ነጥብgs://openpi-assets/checkpoints/pi0_basegs://openpi-assets/checkpoints/pi05_base
ይፋ የሆነው ሙሉው ጽሑፍ አይደለም

የ openpi README ግልጽ ነው፦ ማከማቻው የፍሰት ማዛመጃ ራስን ብቻ ይደግፋል፣ ለ 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 ደረጃ መጠን ይጠቀማል፤ የLeRobot's pi05 config ተመሳሳይ 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 የጀርባ አጥንት፣ እና ከፊቱ ያለው በር

PaliGemma (arXiv 2407.07726) በGemma-2B የቋንቋ ሞዴል ላይ የተመሰረተ SigLIP-So400m ቪዥን ኢንኮደር ሲሆን፣ ወደ 3B የሚጠጉ ፓራሜትሮች አሉት። Pi0.5 የራሱን ቶከናይዘር የሚወርስ ሲሆን፣ ያ ቶከናይዘር ደግሞ በጌትድ ሪፖዚተሪ ውስጥ ይገኛል። ይህ የመጀመሪያው ሩጫ ከመጀመሪያው የስልጠና ደረጃ በፊት የሚሞትበት በጣም የተለመደ መንገድ ነው።

ጂፒዩ ከመከራየትዎ በፊት ጌትድ ፈቃዱን ይቀበሉ

የLeRobot pi05 ሰነዶች በግልጽ እንደሚያመለክቱት፡ pi0.5 ጌትድ የሆነውን google/paligemma-3b-pt-224 ቶከናይዘር ይጠቀማል፣ ስለዚህ በHub ላይ ፈቃዱን ይቀበሉ እና መጀመሪያ hf auth login ያሂዱ። መዳረሻ የሚሰጠው በእጅ እንጂ ወዲያውኑ አይደለም። ይህን ከዘለሉ፣ የሚከፈልበት የክላውድ ሩጫ ከጀመሩ፣ ቶከናይዘር ማውረድ የማይችል ፖድ እየከፈሉ ነው።

ከመጀመርዎ በፊት፡ የዳታሴት ቅርጸት፣ ክፍሎች፣ ሃርድዌር

በLeRobot ውስጥ ያለው Pi0.5 LeRobot ዳታሴት በv3.0 አቀማመጥ ያነባል፣ ይህም ከlerobot 0.4.0 ጋር በጥቅምት 2025 የመጣ ነው፡ በአንድ Parquet እና MP4 ፋይል ውስጥ ብዙ ክፍሎች እንጂ በአንድ ክፍል ፋይል አይደለም፣ ወሰኖቹም በፋይል ስሞች ፋንታ በmeta/episodes/ ውስጥ ናቸው። በ ዴስክቶፕ ክሊየንት ይመዝግቡ ወይም የመጀመሪያውን ዳታሴትዎን ይመዝግቡ የሚለውን ይከተሉ እና ያገኙታል።

ሁኔታየሚያስፈልገው የጂፒዩ ማህደረ ትውስታየጂፒዩ ምሳሌ
ግምትከ 8 ጊባ በላይRTX 4090
ጥሩ ማስተካከያ፣ ሎራከ 22.5 ጊባ በላይRTX 4090
ጥሩ ማስተካከያ፣ ሙሉከ 70 ጊባ በላይA100 80 ጊባ ወይም 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 ፖሊሲዎች ገጽ አምስቱን የሰለጠኑ ፖሊሲዎች በፓራሜትሮች፣ በጂፒዩ ደረጃ፣ በዘግየት እና በዝቅተኛው ክፍሎች በማነፃፀር ያሳያል።
Pi0.5 በአንድ የድርጊት እርምጃ 485 ሚሴ እና ዝቅተኛው 50 ክፍሎች ባለው A100 እና H100 ደረጃ ላይ ይገኛል።

መንገድ ሀ: በ openpi ማከማቻ ማስተካከል

የማጣቀሻ ትግበራ: መጀመሪያ JAX፣ በኡቡንቱ 22.04 ላይ ብቻ የተሞከረ፣ በconfig ነገሮች የሚመራ እንጂ በፍላጎቶች አይደለም። የPyTorch መንገድ በሴፕቴምበር 2025 ደርሷል፣ በLIBERO ላይ የተረጋገጠ። ሶስት ደረጃዎች: ውሂብዎን ይቀይሩ፣ config ይግለጹ፣ ያሰልጥኑ እና ያገልግሉ።

  1. 1
    ክሎን ያድርጉ እና ይጫኑ

    openpi uvን ይጠቀማል። GIT_LFS_SKIP_SMUDGE LeRobot ያለ LFS blobs እንደ ጥገኛ እንዲገባ የሚያስችለው ነው።

    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
    የስልጠና config ያክሉ

    Configs በ 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
    የኖርም ስታቲስቲክስን አስሉ

    በconfig ስም ላይ ይሰራል። ይህንን መዝለል እዚህ ላይ የተለመደው የመጀመሪያ ውድቀት ነው።

    bash
    uv run scripts/compute_norm_stats.py --config-name pi05_so100
  5. 5
    ያሰልጥኑ

    ተለዋዋጩ JAX ነባሪውን 75 በመቶ ከመጠቀም ይልቅ 90 በመቶውን የጂፒዩ ማህደረ ትውስታ እንዲጠቀም ያስችለዋል። በ80 ጂቢ ካርድ ላይ፣ ይህ አሂድ ስራው ይሳካ እንደሆነ ይወስናል።

    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፣ የተቀላቀለ ትክክለኛነት (mixed precision)፣ FSDP፣ LoRA ወይም EMA ክብደቶችን አይደግፍም፣ ስለዚህ 22.5 ጊባ የሚደርሰው LoRA በgemma_2b_lora እና gemma_300m_lora ልዩነቶች በኩል JAX ብቻ ነው። የከፋው ነገር፡ ማዋቀሩ የተስተካከሉ ፋይሎችን በተጫነው transformers 4.53.2 ላይ ይገለብጣል፣ እና README የuv ነባሪ የሃርድሊንክ ሁነታን በመጠቀም ይህ transformersን በuv መሸጎጫ ውስጥ በቋሚነት እንደሚያሻሽል እና ወደ ሌሎች ፕሮጀክቶች ሊሰራጭ እንደሚችል ያስጠነቅቃል። በuv cache clean transformers አማካኝነት ይቀልብሱት።

መንገድ B: በlerobot pi05 ማስተካከያ ያድርጉ

የLeRobot ፖርት ለACT እና SmolVLA አስቀድመው ለሚጠቀሙት CLI ተመሳሳይ ክብደቶችን ይይዛል። ከዚህ በታች ያለው ነገር ሁሉ በ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 በ0.3.2፣ ኦገስት 2025 ውስጥ የመግቢያ ነጥቦች ነበሩ። አሁንም python -m lerobot.scripts.train የሚጠራ ትምህርት የአንድ አመት ለውጦችን የቀደመ ነው እና በቀሪውም ላይ አለመታመን ተገቢ ነው።

  1. 1
    በትክክለኛ ተጨማሪዎች ይጫኑ

    ከ0.6.0 ጀምሮ መሰረታዊው ጭነት ዋና ዋና የML ጥገኞችን ብቻ ይይዛል፣ እና የፒ ተጨማሪ ምንም የውሂብ ስብስብ ወይም የስልጠና ኮድ አይጨምርም፣ ስለዚህ ጥሩ ማስተካከያ የስልጠና ተጨማሪውንም ይፈልጋል። የቆዩ የአንድ መስመር ትዕዛዞች እዚህ ላይ በሚጫኑበት ጊዜ ይሳናሉ።

    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 ያስፈልገዋል። የቆዩ የውሂብ ስብስቦች ዝቅተኛ፣ ከፍተኛ፣ አማካይ፣ መደበኛ መዛባትን ብቻ ይይዛሉ።

    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 ላይ 64ን በ80 ጂቢ ይጠቀማሉ። 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_ የውሂብ ስብስብ ስሞችን አይቀበልም። Base ክንዱን ያሽከረክራል፣ sentry ደግሞ ሮልአውቱን ይመዘግባል።

    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ን ያቀዘቅዛል፣ ባለሙያውን ያሰለጥናልነባሪ ሐሰት፣ አነስተኛ ማህደረ ትውስታ፣ በስኬት ላይ የተወሰነ ወጪ
--policy.gradient_checkpointingማግበርን ከማከማቸት ይልቅ እንደገና ያሰላልነባሪ ሐሰት፣ ሩጫው በማይመጥንበት ጊዜ የመጀመሪያው ማንሻ
--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 ማጣቀሻ ትዕዛዝ እንደሚያደርገው።

ሶስት ነባሪ ስብስቦች፣ እና የትኞቹ አሰልጣኙን እንደሚደርሱ

የ openpi TrainConfig ማጣቀሻ ነው፣ የ LeRobot PI05Config ደግሞ lerobot-train ምንም ሳይሉ ሲጠቀሙበት ነው፣ እና እዚህ ያለው ፎርም ሶስተኛ ስብስብ ይልካል። አስገራሚው የትምህርት መጠን ነው፡ ሁለቱም የላይኛው ነባሪዎች በ2.5e-5 ከፍተኛ ደረጃ ላይ ሲደርሱ፣ የ openpi የራሱ pi05_libero config እና ይህ መድረክ ወደ 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, and it is dropped

ፖርቱ ታማኝ ነው? የ LeRobot ቡድን የ LIBERO መሰረታዊ ሞዴልን ለተጨማሪ 6k ደረጃዎች በጥሩ ሁኔታ አስተካክሎ ከ openpi የማጣቀሻ ቁጥሮች ጋር በአራት ስብስቦች አነጻጽሯል፡ 97.5 በመቶ አማካይ ከ 96.85 ጋር ሲነጻጸር፣ በ Libero 10 ቀድሞ፣ በ Spatial ደግሞ ወደኋላ ቀርቷል። መንገዱ የመሳሪያ ምርጫ እንጂ የጥራት ምርጫ አይደለም።

Pi0.5ን በራስዎ ዳታ ማስተካከል
ጥቅሞች
  • ከ 10,000 ሰዓታት በላይ የሮቦት ቅድመ-ስልጠና ከኋላው አለ፣ ስለዚህ 50 የሥራዎ ክፍሎች በቂ ሊሆኑ ይችላሉ።
  • ቀጣይነት ያላቸው ድርጊቶች፡ ለማስተካከል ምንም ቶከናይዘር የለም፣ በመገጣጠሚያ ማዕዘኖችዎ ላይ ምንም የመከፋፈል ወለል የለም።
  • የ LeRobot ፖርት በ LIBERO አማካይ ላይ 97.5 በመቶ ከ openpi 96.85 ጋር ሲነጻጸር ያስመዘገበ ሲሆን፣ ስለዚህ ወዳጃዊው CLI የሚለካ ወጪ የለውም።
  • በሁለቱም በኩል መለኪያ-ውጤታማ መንገዶች፡ የ openpi JAX LoRA ልዩነቶች፣ የ LeRobot PEFT ውህደት።
የሚደረጉ ልውውጦች
  • ሙሉ ጥሩ ማስተካከያ ከ 70 ጊባ በላይ ያስፈልገዋል። የ 22.5 ጊባ LoRA ቁጥር የ openpi JAX ቁጥር ነው፤ ለ pi05 በ PEFT ስር ምንም አልታተመም።
  • በአንድ የድርጊት ደረጃ 485 ms፣ እዚህ ካሉት አምስት ውስጥ በጣም ቀርፋፋው፡ ከ SmolVLA ሁለት እጥፍ፣ ከ ACT ሃያ አራት እጥፍ።
  • LeRobot v3.0 ያስፈልጋል፣ ስለዚህ ለ GR00T ሩጫ የተቀዳ የውሂብ ስብስብ መለወጥ አለበት፣ እና በተቃራኒው።
  • አዳዲስ አማራጮች መጀመሪያ ላይ ይደርሳሉ፡ የስልጠና ጊዜ RTC እና MEM ማህደረ ትውስታ በ 0.6.1 ውስጥ የሉም፣ ስለዚህ አዳዲስ ሰነዶች ከ git መጫንን ሊያመለክቱ ይችላሉ።

የ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 ላይ ብቻ የሚሰራ ማሳያ ከመሸጥ ይልቅ ይህን መናገር እንመርጣለን። ክንድዎ በክፍሎች መካከል የሚቆም ከሆነ፣ በእንቅስቃሴ መካከል ፖሊሲው ሲቆም ይጀምሩ።

አፕስትሪም መልስ አለው፣ እና ግማሹ አስቀድሞ ሊጭኑት በሚችሉት እትም ውስጥ ይገኛል። የእውነተኛ ጊዜ ክፍፍል (Real-Time Chunking) ክንዱ አሁን ያለውን ክፍል እየፈጸመ እያለ ቀጣዩን ክፍል ያመነጫል፣ ከዚያም የአዲሱ ክፍል ተደራራቢ እርምጃዎች አስቀድሞ ከተፈጸመው ክፍል ጋር እንዲቀራረቡ ይመራል፣ ስለዚህ ክንዱ በመገጣጠሚያው ላይ አይቆምም ወይም አይንቀጠቀጥም። የመደምደሚያ-ጊዜ ቅጹ በ0.4.2 ለPi0, Pi0.5 እና SmolVLA በተለቀቀው ለውጦች ዝርዝር ውስጥ የተካተተ ሲሆን፣ እንደገና ማሰልጠኛ ሳይሆን የማስፈጸሚያ ባንዲራ (rollout flag) ነው።

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 ጊባ ካርድ ይከራያሉ ወይም የራስዎ ያደርጋሉ፣ ከላይ ከተጠቀሱት ስታኮች አንዱን ይጭናሉ፣ የውሂብ ስብስብዎን ይቀይራሉ እና ሩጫውን ይከታተላሉ። ሁሉንም መቆጣጠሪያዎች በእጅዎ ያቆያሉ፡ openpi's JAX LoRA፣ LeRobot's PEFT adapters፣ አንጻራዊ ድርጊቶች፣ ብጁ ቁልፍ ካርታዎች። ሁሉንም ውድቀቶችም ይሸከማሉ።

  • ሃርድዌር፡ A100 80 ጊባ ወይም H100፣ ወይም 24 ጊባ ካርድ በ openpi's JAX LoRA መንገድ ላይ።
  • ማዋቀር፡ ለመጀመሪያው ሩጫ አንድ ከሰዓት በኋላ፣ በአብዛኛው የቁልፍ ካርታ እና የተዘጋው ቶከናይዘር።
  • በሆስትድ ፎርም ላይ የሌሉ፡ PEFT adapters፣ አንጻራዊ ድርጊቶች፣ training-time RTC፣ MEM memory።
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 መጫን የማይችለው፡ training-time RTC ዋና ቅርንጫፍ ባንዲራ ነው።

የማይሰራ ከሆነ

ምልክትበጣም ሊሆን የሚችል ምክንያት
ሩጫው ከመጀመሩ በፊት ውድቅ ተደርጓልየውሂብ ስብስብ v2.1 ግን Pi0.5 v3.0 ይፈልጋል፣ ወይም ለ GR00T ተቃራኒው
ImportError፣ datasets ጥቅል ጠፍቷልlerobot 0.6.x ያለ ስልጠና ተጨማሪ
ValueError ስለ q01 እና q99 በባች አንድ ላይበ meta/stats.json ውስጥ ምንም ኳንታይሎች የሉም፤ እንደገና ያሰሉ ወይም MEAN_STD ይጠቀሙ
CUDA out of memory በደረጃ 0ሙሉ ጥሩ ማስተካከያ ከ 70 ጊባ በታች፤ ቼክፖይንቲንግ ይሞክሩ ወይም train_expert_only
401 ወይም የተዘጋ ሪፖ ስህተትPaliGemma tokenizer ፍቃድ አልተቀበለም
ኪሳራው ይወርዳል፣ ሮቦቱ ምንም አያደርግምየመደበኛነት አለመጣጣም፣ ወይም ፖሊሲው ሁኔታውን ይገለብጣል
ክንድ በክፍሎች መካከል ይቆማልበእያንዳንዱ እርምጃ መዘግየት እና የዙር ጉዞ፤ የክፍል ወረፋው ይደርቃል
በአንድ ማዋቀር ውስጥ ይሰራል፣ በሌላ ውስጥ ይወድቃልበጣም ጥቂት ክፍሎች፣ ወይም ሁሉም በአንድ ውቅር ውስጥ

አንድ ሩጫ ምን ያህል ያስከፍላል

Pi0.5 ውድ በሆነው ደረጃ ላይ የሚገኘው 80 ጂቢ ካርድ ስለሚያስፈልገው እና የቦታ ዋጋዎች ስለሚለዋወጡ፣ አሃዙ ዋጋ ሳይሆን ክልል ነው። ለብዙ SO-100 ተግባራት፣ መጀመሪያ SmolVLA ወይም ACTን በ24 ጂቢ ደረጃ ላይ ያሰልጥኑ፣ ተግባሩ ሊማር የሚችል መሆኑን ያረጋግጡ፣ ከዚያም 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 ወጪ ሰንጠረዥ።
በምርት ገጹ ላይ ያሉት ተመሳሳይ ሁለት ደረጃዎች፡ Pi0.5 የ80 ጊባ ካርድ ይከራያል፣ SmolVLA እና ACT በ4090 ላይ ይሰራሉ።

ምሽትዎን ከመስጠትዎ በፊት፡ GR00T N1.7 ከPi0.5 ጋር እና Pi0.5 ከSmolVLA ጋር ተመሳሳይ ቁጥሮችን እርስ በርስ ያነጻጽራሉ። Arena 85 የVLA ሞዴሎችን ከ332 የቤንችማርክ ውጤቶች ጋር ይዟል፣ እያንዳንዱም ከመነሻው ጋር የተገናኘ ነው፣ እና ስለ ቤተሰቡ ዳራ በየእኛ የVLA አጠቃላይ እይታ

Pi0.5ን ስታክ ሳይገነቡ ያሰልጥኑ

የውሂብ ስብስቡን እና ሃይፐርፓራሜትሮችን በቅጽ ይምረጡ። የኋላው ክፍል በቅጽበት ገበያ የ80 ጊባ ካርድ ይከራያል፣ አሰልጣኙን ያካሂዳል እና የፍተሻ ነጥቦችን ወደ ዕቃ ማከማቻ ይጽፋል። ለSO-100፣ SO-101፣ Koch v1.1 እና LeKiwi መመሪያዎች።

የስልጠና መመሪያዎችን ይክፈቱ
Pi0.5ን በRTX 4090 ላይ በጥሩ ሁኔታ ማስተካከል እችላለሁ?

ሙሉ የጥሩ ማስተካከያ አይደለም፡ openpi ለዚህ ከ70 ጊባ በላይ ይዘረዝራል፣ ስለዚህ A100 80 ጊባ ወይም H100 ያስፈልጋል። የእሱ 22.5 ጊባ 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