
Βελτιστοποιήστε το Pi0.5, το VLA αντιστοίχισης ροής από την Physical Intelligence, με τα δικά σας δεδομένα ρομπότ. Πραγματικές εντολές για openpi και lerobot pi05, παγίδες μορφής συνόλου δεδομένων, όρια VRAM και καθυστέρησης.
Το Pi0.5 είναι το μοντέλο που επιλέγετε όταν μια πολιτική πρέπει να λειτουργήσει σε ένα δωμάτιο που δεν έχει ξαναδεί. Είναι επίσης το πιο δύσχρηστο από τις πέντε εκπαιδεύσιμες πολιτικές εδώ για να τελειοποιήσετε χειροκίνητα: το upstream αποθετήριο είναι αρχικά JAX, η μεταφορά του LeRobot μετέφερε την ανάπτυξη εκτός του lerobot-record στην έκδοση 0.6.0 και έκανε την βασική εγκατάσταση πολύ μικρή για εκπαίδευση, και μια πλήρης τελειοποίηση δεν χωράει σε μια 4090. Παρακάτω: τι αντιστοίχιση ροής κοστίζει στην εξαγωγή συμπερασμάτων, οι δύο διαδρομές εντολών, και ο αριθμός 485 ms που αποφασίζει αν το αποτέλεσμα είναι χρησιμοποιήσιμο.
Τι πρέπει να γνωρίζετε
- •Ένα VLA αντιστοίχισης ροής: ένα VLM PaliGemma 3B συν έναν ειδικό δράσης 300M που αποκωδικοποιεί συνεχή τμήματα δράσης. Δύο διαδρομές για την τελειοποίησή του, 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 έως 12 USD ανά εκτέλεση.
Τι είναι στην πραγματικότητα το Pi0.5
Η Physical Intelligence δημοσίευσε το pi0 τον Οκτώβριο του 2024: ένα μοντέλο αντιστοίχισης ροής μοντέλο όρασης-γλώσσας-δράσης σε ένα προεκπαιδευμένο VLM: PaliGemma με 3 δισεκατομμύρια παραμέτρους συν έναν ειδικό δράσης 300M αρχικοποιημένο από το μηδέν, 3,3 δισεκατομμύρια συνολικά. Η εργασία αναφέρει προεκπαίδευση σε πάνω από 10.000 ώρες δεδομένων ρομπότ σε 7 διαμορφώσεις ρομπότ και 68 εργασίες. Περισσότερα στο το άρθρο για το pi0.
Το Pi0.5 (arXiv 2504.16054, 22 Απριλίου 2025) διατηρεί αυτόν τον σκελετό και αλλάζει τη διατροφή εκπαίδευσης: δεδομένα ιστού, ανίχνευση αντικειμένων, προφορικές οδηγίες από ανθρώπους που καθοδηγούν το ρομπότ, ετικέτες υποεργασιών, δεδομένα δια-ενσωμάτωσης από ρομπότ σε πολλά σπίτια. Το αποτέλεσμα είναι ένα ρομπότ που καθαρίζει κουζίνες σε σπίτια που δεν ήταν στο σύνολο εκπαίδευσης. Το README του openpi προσθέτει μια λεπτομέρεια που ο τίτλος δεν αναφέρει: το δημοσιευμένο pi0.5 εκπαιδεύτηκε με απομόνωση γνώσης (arXiv 2505.23705).
| Ιδιότητα | pi0 | pi0.5 |
|---|---|---|
| Παραλλαγή VLM backbone | gemma_2b (PaliGemma) | gemma_2b (PaliGemma) |
| Παραλλαγή ειδικού δράσης | gemma_300m | gemma_300m |
| action_dim | 32 | 32 |
| προεπιλογή action_horizon | 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 είναι σαφές: το αποθετήριο υποστηρίζει μόνο την κεφαλή αντιστοίχισης ροής (flow matching head), τόσο για την εκπαίδευση όσο και για την εξαγωγή συμπερασμάτων του pi0.5. Η εργασία περιγράφει δύο στάδια και ο κώδικας περιέχει μόνο το δεύτερο: η προ-εκπαίδευση αναπαριστά κάθε ενέργεια ως διακριτά tokens μέσω του FAST tokenizer, και κατά την ανάπτυξη το μοντέλο εξάγει συμπεράσματα για μια υποεργασία υψηλού επιπέδου πριν από κάθε τμήμα ενέργειας. Κανένα από αυτά δεν βρίσκεται στο αποθετήριο. Η κάρτα lerobot/pi05_base δίνει την ίδια λίστα και προσθέτει RL, αν και η εργασία pi0.5 δεν περιγράφει καθόλου στάδιο ενισχυτικής μάθησης. Η θύρα LeRobot κληρονομεί αυτό το πεδίο εφαρμογής, όπως και κάθε φιλοξενούμενος εκπαιδευτής σε αυτήν, συμπεριλαμβανομένου αυτού εδώ. Η αδειοδότηση είναι επίσης διαιρεμένη: η σελίδα τεκμηρίωσης του pi05 αναφέρει Apache 2.0, η κάρτα lerobot/pi05_base φέρει την ετικέτα license: gemma.
Τι αλλάζει η αντιστοίχιση ροής στην εκπαίδευση και την εξαγωγή συμπερασμάτων
Μια πολιτική που μπορείτε να εκπαιδεύσετε σε ένα SO-100 είτε παλινδρομεί ενέργειες απευθείας (ACT) είτε τις μετατρέπει σε tokens και τις αποκωδικοποιεί αυτοπαλινδρομικά (pi0-FAST). Το Flow matching δεν κάνει κανένα από τα δύο: μαθαίνει ένα διανυσματικό πεδίο που μεταφέρει θόρυβο σε ένα καθαρό κομμάτι ενέργειας, και στη συνέχεια το ενσωματώνει. Η εργασία pi0 χρησιμοποιεί 10 βήματα ολοκλήρωσης με μέγεθος βήματος 0.1. Η ρύθμιση pi05 του LeRobot φέρει την ίδια num_inference_steps: int = 10.
- Εκπαίδευση: η απώλεια παλινδρομεί ένα θορυβώδες κομμάτι ενέργειας. Δεν υπάρχει tokeniser για ρύθμιση, ούτε διακριτοποίηση των γωνιών των αρθρώσεών σας.
- Συμπερασματολογία: ένα κομμάτι κοστίζει δέκα εμπρόσθιες διελεύσεις μέσω του ειδικού ενέργειας. Αυτό είναι δομικό, όχι πρόβλημα ρύθμισης.
- Έξοδος: συνεχείς ενέργειες διάστασης 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 κληρονομεί τον tokenizer του, και αυτός ο tokenizer βρίσκεται σε ένα περιορισμένο αποθετήριο. Αυτός είναι ο πιο συνηθισμένος τρόπος που μια πρώτη εκτέλεση αποτυγχάνει, πριν από το πρώτο βήμα εκπαίδευσης.
Η τεκμηρίωση του LeRobot pi05 το αναφέρει ξεκάθαρα: το pi0.5 χρησιμοποιεί τον περιορισμένο tokenizer google/paligemma-3b-pt-224, οπότε αποδεχτείτε την άδειά του στο Hub και εκτελέστε πρώτα την εντολή hf auth login. Η πρόσβαση χορηγείται χειροκίνητα, όχι άμεσα. Παραλείψτε το, ξεκινήστε μια πληρωμένη εκτέλεση στο cloud, και θα πληρώσετε για έναν pod που δεν μπορεί να κατεβάσει έναν tokenizer.
Πριν ξεκινήσετε: μορφή συνόλου δεδομένων, επεισόδια, υλικό
Το Pi0.5 στο LeRobot διαβάζει ένα σύνολο δεδομένων LeRobot σε διάταξη v3.0, η οποία κυκλοφόρησε με το lerobot 0.4.0 τον Οκτώβριο του 2025: πολλά επεισόδια ανά αρχείο Parquet και MP4 αντί για ένα αρχείο ανά επεισόδιο, με όρια στο meta/episodes/ αντί για ονόματα αρχείων. Καταγράψτε με τον πελάτη επιφάνειας εργασίας ή ακολουθήστε το καταγράψτε το πρώτο σας σύνολο δεδομένων και το έχετε.
| Λειτουργία | Απαιτούμενη μνήμη GPU | Παράδειγμα GPU |
|---|---|---|
| Συμπερασματολογία | more than 8 GB | RTX 4090 |
| Εκλεπτυσμένη ρύθμιση, LoRA | more than 22.5 GB | RTX 4090 |
| Εκλεπτυσμένη ρύθμιση, πλήρης | more than 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. Μια συνεδρία καταγραφής δεν μπορεί να τροφοδοτήσει και τα δύο χωρίς μετατροπή, και το σφάλμα δεν αναφέρει "λάθος έκδοση συνόλου δεδομένων". Δείτε dataset rejected: v3 required.
# 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 blobs.
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
Το upstream παρέχει μετατροπείς για 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 τοις εκατό της μνήμης GPU αντί για το προεπιλεγμένο 75. Σε μια κάρτα 80 GB αυτό καθορίζει αν η εκτέλεση θα επιβιώσει.
bashXLA_PYTHON_CLIENT_MEM_FRACTION=0.9 uv run scripts/train.py pi05_so100 \ --exp-name=my_experiment \ --overwrite - 6Εξυπηρέτηση
Ο διακομιστής ακούει στη θύρα 8000 και απαντά σε ερωτήματα παρατήρησης· το runtime του ρομπότ σας είναι ο πελάτης.
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 GB είναι μόνο JAX, μέσω των παραλλαγών gemma_2b_lora και gemma_300m_lora. Χειρότερα: η εγκατάσταση αντιγράφει τροποποιημένα αρχεία πάνω από το εγκατεστημένο σας transformers 4.53.2, και το README προειδοποιεί ότι με την προεπιλεγμένη λειτουργία hardlink του uv, αυτό τροποποιεί μόνιμα τα transformers στην κρυφή μνήμη του uv και μπορεί να επηρεάσει άλλα έργα. Αναιρέστε το με uv cache clean transformers.
Διαδρομή Β: λεπτομερής ρύθμιση με lerobot pi05
Η θύρα LeRobot ενσωματώνει τα ίδια βάρη στο CLI που ήδη χρησιμοποιείτε για ACT και SmolVLA. Όλα τα παρακάτω ελέγχθηκαν έναντι του lerobot 0.6.1, της έκδοσης από τις 3 Αυγούστου 2026, και των εγγράφων του pi05 στις 23 Αυγούστου 2026. Οι εκδόσεις έχουν σημασία εδώ: τα σύνολα δεδομένων v3.0 έφτασαν με την έκδοση 0.4.0 τον Οκτώβριο του 2025, το blog 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, η βασική εγκατάσταση περιλαμβάνει μόνο τις βασικές εξαρτήσεις ML, και το πρόσθετο pi δεν προσθέτει κώδικα δεδομένων ή εκπαίδευσης, οπότε μια λεπτομερής ρύθμιση (fine-tune) χρειάζεται και το πρόσθετο εκπαίδευσης. Παλαιότερες εντολές μιας γραμμής αποτυγχάνουν εδώ κατά τον χρόνο εισαγωγής.
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 με ποσοστημόρια (quantiles), οπότε το 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 GB. Περάστε το 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 του checkpoint | κληρονομούνται αποθηκευμένες ρυθμίσεις όπως το 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 | μόνο στο main branch, όχι στην 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 όταν δεν λέτε τίποτα, και η φόρμα εδώ στέλνει ένα τρίτο σύνολο. Η έκπληξη είναι ο ρυθμός μάθησης: και οι δύο προεπιλογές upstream κορυφώνονται στο 2.5e-5, ενώ η δική του διαμόρφωση pi05_libero του openpi και αυτή η πλατφόρμα τον ανεβάζουν στο 5e-5.
| Ρύθμιση | openpi TrainConfig | lerobot pi05 και lerobot-train | AY-Robots στέλνει |
|---|---|---|---|
| Μέγεθος batch | 32 | 8 | 1 |
| Μέγιστος ρυθμός μάθησης | 2.5e-5, cosine decay | optimizer_lr 2.5e-5 | 5e-5 |
| Βήματα εκπαίδευσης | 30,000 | 100,000 | 30,000 |
| Διάστημα σημείου ελέγχου | 1,000 steps | 20,000 steps | δεν περιλαμβάνεται στη φόρμα |
| Seed | 42 | 1,000 | στη φόρμα |
| Action chunk | action_horizon 50 | chunk_size 50, n_action_steps 50 | δεν περιλαμβάνεται στη φόρμα |
| Τύπος δεδομένων βάρους | bfloat16 | float32 until you pass --policy.dtype | δεν περιλαμβάνεται στη φόρμα |
| Συσσώρευση κλίσης | δεν υπάρχει τέτοια ρύθμιση, fsdp_devices αντ' αυτού | absent from every release so far | 16, και απορρίπτεται |
Είναι πιστή η μεταφορά; Η ομάδα του LeRobot ρύθμισε περαιτέρω το βασικό μοντέλο LIBERO για επιπλέον 6k βήματα και συνέκρινε με τους αριθμούς αναφοράς του openpi σε τέσσερις σουίτες: 97.5 τοις εκατό μέσος όρος έναντι 96.85, μπροστά στο Libero 10, πίσω στο Spatial. Η διαδρομή είναι επιλογή εργαλείων, όχι ποιότητας.
- Περισσότερες από 10,000 ώρες προ-εκπαίδευσης ρομπότ βρίσκονται πίσω του, οπότε 50 επεισόδια της εργασίας σας μπορεί να είναι αρκετά.
- Συνεχείς ενέργειες: κανένας tokenizer για ρύθμιση, κανένα όριο διακριτοποίησης στις γωνίες των αρθρώσεών σας.
- Η μεταφορά του LeRobot σημειώνει 97.5 τοις εκατό στον μέσο όρο LIBERO έναντι του 96.85 του openpi, οπότε το πιο φιλικό CLI δεν κοστίζει τίποτα μετρήσιμο.
- Διαδρομές αποδοτικές ως προς τις παραμέτρους και στις δύο πλευρές: παραλλαγές JAX LoRA του openpi, ενσωμάτωση PEFT του LeRobot.
- Η πλήρης βελτιστοποίηση απαιτεί περισσότερα από 70 GB. Το μέγεθος LoRA των 22.5 GB είναι ο αριθμός JAX του openpi. Δεν έχει δημοσιευτεί κανένας για το pi05 υπό PEFT.
- 485 ms ανά βήμα ενέργειας, το πιο αργό από τα πέντε εδώ: διπλάσιο από το SmolVLA, είκοσι τέσσερις φορές το ACT.
- Απαιτείται LeRobot v3.0, οπότε ένα σύνολο δεδομένων που καταγράφηκε για μια εκτέλεση GR00T χρειάζεται μετατροπή, και το αντίστροφο.
- Οι νέες επιλογές προσγειώνονται πρώτα στο main: η μνήμη RTC και MEM κατά τον χρόνο εκπαίδευσης δεν περιλαμβάνονται στην έκδοση 0.6.1, οπότε τα νεότερα έγγραφα μπορεί να σημαίνουν εγκατάσταση από το git.
Η πραγματικότητα των 485 ms, και πού παύει να είναι χρησιμοποιήσιμη
Αυτό καθορίζει το έργο σας, οπότε προηγείται του πίνακα κόστους. Η ανά βήμα ενέργειας που μετρήθηκε εδώ για το Pi0.5 είναι 485 ms. Έναντι των άλλων τεσσάρων:
| Πολιτική | Συμπερασματολογία ανά βήμα ενέργειας | Παράμετροι | Επίπεδο GPU | Ελάχιστα επεισόδια |
|---|---|---|---|---|
| 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 ms ανά βήμα ενέργειας. Οι διαδρομές μετ' επιστροφής στο δημόσιο διαδίκτυο, επιπλέον των 485 ms, μετατρέπουν μια λειτουργική πολιτική σε διστακτική. Η απομακρυσμένη συμπερασματολογία είναι βιώσιμη για αργές κινήσεις pick-and-place, όχι για γρήγορη αντιδραστική κίνηση. Θα προτιμούσαμε να το πούμε αυτό παρά να πουλήσουμε μια επίδειξη που λειτουργεί μόνο σε LAN. Εάν ο βραχίονας σας σταματάει μεταξύ των τμημάτων, ξεκινήστε από η πολιτική παγώνει στη μέση της κίνησης.
Το upstream έχει μια απάντηση, και το μισό της βρίσκεται ήδη στην έκδοση που μπορείτε να εγκαταστήσετε. Το Real-Time Chunking δημιουργεί το επόμενο τμήμα ενώ ο βραχίονας εκτελεί ακόμα το τρέχον, και στη συνέχεια καθοδηγεί τα επικαλυπτόμενα βήματα του νέου τμήματος να παραμείνουν κοντά στο ήδη εκτελεσμένο μέρος, ώστε ο βραχίονας να μην κολλήσει ή να τρανταχτεί στην ένωση. Η μορφή χρόνου συμπερασματολογίας που κυκλοφόρησε στο changelog 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 ms εξακολουθούν να δαπανώνται, αλλά εκτός της κρίσιμης διαδρομής, οπότε η ουρά δεν αδειάζει μεταξύ των τμημάτων. Η παραλλαγή χρόνου εκπαίδευσης από το arXiv 2512.05964 προχωράει περαιτέρω: το μοντέλο μαθαίνει να εξαρτάται από ένα καθαρό πρόθεμα ενέργειας, οπότε κατά τη συμπερασματολογία η επικάλυψη είναι σκληρά 'ζωγραφισμένη' με χρονοβήματα ροής ανά ενέργεια αντί για καθοδηγούμενη, και η αντίστροφη διέλευση καθοδήγησης εξαφανίζεται. Κατά την εκπαίδευση, δειγματοληπτεί ένα μήκος προθέματος ανά παράδειγμα και υπολογίζει την απώλεια ροής στο υπόλοιπο επίθεμα. Αυτό το flag υπάρχει μόνο στο main, όχι στην έκδοση 0.6.1, και η καθυστέρηση για την οποία εκπαιδεύετε πρέπει να παραμείνει κάτω από το chunk_size.
Δύο τρόποι για να αποκτήσετε ένα checkpoint Pi0.5
Νοικιάζετε ή έχετε στην κατοχή σας μια κάρτα 80 GB, εγκαθιστάτε μία από τις παραπάνω στοίβες, μετατρέπετε το σύνολο δεδομένων σας και επιβλέπετε την εκτέλεση. Διατηρείτε κάθε ρύθμιση: το JAX LoRA του openpi, τους προσαρμογείς PEFT του LeRobot, τις σχετικές ενέργειες, τις προσαρμοσμένες αντιστοιχίσεις πλήκτρων. Διατηρείτε επίσης κάθε αποτυχία.
- Υλικό: A100 80 GB ή H100, ή μια κάρτα 24 GB στην διαδρομή JAX LoRA του openpi.
- Ρύθμιση: ένα απόγευμα για την πρώτη εκτέλεση, κυρίως αντιστοίχιση πλήκτρων και ο gated tokenizer.
- Δεν είναι διαθέσιμο στην φιλοξενούμενη φόρμα: προσαρμογείς 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Επιλέγετε μοντέλο και σύνολο δεδομένων στην φόρμα εκπαίδευσης, το backend νοικιάζει μια GPU σε μια spot αγορά με βάση την απαιτούμενη VRAM, εκτελεί τον εκπαιδευτή και γράφει σημεία ελέγχου σε αποθήκευση αντικειμένων. Το Pi0.5 είναι μόνο cloud εδώ. Υπάρχουν οδηγοί για SO-100, SO-101, Koch v1.1 και LeKiwi.
| Ρύθμιση | Τι στέλνει η πλατφόρμα για το Pi0.5 |
|---|---|
| Βασικό σημείο ελέγχου | lerobot/pi05_base |
| Τύπος πολιτικής | pi05 |
| Μέγεθος batch | 1 |
| Ρυθμός μάθησης | 5e-5 |
| Μέγιστα βήματα | 30000 |
| Συσσώρευση κλίσης | 16, αλλά δείτε την παρακάτω προειδοποίηση |
| Επιπλέον ρυθμίσεις στη φόρμα | seed, logFreq |
| Μορφή συνόλου δεδομένων | LeRobot v3.0 |
| Επίπεδο GPU | A100 80 GB or H100 80 GB |
Ο εκπαιδευτής στέλνει μια τιμή συσσώρευσης κλίσης 16 και το lerobot 0.5.1 δεν έχει flag για να την λάβει, οπότε απορρίπτεται. Κανένα κυκλοφορημένο lerobot δεν έχει: η ρύθμιση υπάρχει μόνο στο main, ως --accelerator.gradient_accumulation.steps. Το πραγματικό μέγεθος batch εδώ είναι 1, έναντι του 256 που χρησιμοποιεί η διαμόρφωση pi05_libero του openpi. Αξίζει να το γνωρίζετε πριν διαβάσετε μια καμπύλη απώλειας. Η ρύθμιση εφαρμόζεται στις εκτελέσεις GR00T N1.7 και GR00T N1.5.
Η εξαγωγή συμπερασμάτων λειτουργεί με τον ίδιο τρόπο: ένα pod παρέχεται για να εξυπηρετήσει την πολιτική και ο τοπικός σας πελάτης επικοινωνεί μαζί του. Το pod διαθέτει έναν αδρανή φύλακα και καταστρέφεται, οπότε μια ξεχασμένη καρτέλα δεν χρεώνεται σιωπηλά. Ισχύει η προειδοποίηση καθυστέρησης, γι' αυτό και το ACT στα 20 ms συχνά κερδίζει μια γρήγορη εργασία.
Όταν δεν λειτουργεί
| Σύμπτωμα | Πιθανότερη αιτία |
|---|---|
| Η εκτέλεση απορρίφθηκε πριν ξεκινήσει | Σύνολο δεδομένων v2.1 αλλά το Pi0.5 θέλει v3.0, ή το αντίστροφο για το GR00T |
| ImportError, λείπει το πακέτο datasets | lerobot 0.6.x χωρίς το training extra |
| ValueError σχετικά με τα q01 και q99 στο batch ένα | Δεν υπάρχουν ποσοστημόρια στο meta/stats.json· υπολογίστε ξανά ή χρησιμοποιήστε MEAN_STD |
| CUDA εκτός μνήμης στο βήμα 0 | Πλήρης λεπτομερής ρύθμιση κάτω από 70 GB· δοκιμάστε checkpointing ή train_expert_only |
| Σφάλμα 401 ή gated repo | Η άδεια του PaliGemma tokenizer δεν έγινε αποδεκτή |
| Η απώλεια πέφτει, το ρομπότ δεν κάνει τίποτα | Ασυμφωνία κανονικοποίησης, ή η πολιτική αντιγράφει την κατάσταση |
| Ο βραχίονας σταματά μεταξύ των τμημάτων | Καθυστέρηση ανά βήμα συν χρόνος μετάδοσης· η ουρά τμημάτων αδειάζει |
| Λειτουργεί σε μια ρύθμιση, αποτυγχάνει σε άλλη | Πολύ λίγα επεισόδια, ή όλα σε μία διαμόρφωση |
- Το σύνολο δεδομένων απορρίφθηκε: απαιτείται v3
- Έλλειψη μνήμης κατά την εκπαίδευση
- Η απώλεια μειώνεται αλλά η πολιτική δεν κάνει τίποτα
- Η πολιτική παγώνει εν μέσω κίνησης
- Η πολιτική λειτουργεί μόνο σε μία ρύθμιση
- Η εργασία εκπαίδευσης έχει κολλήσει στην ουρά
Τι κοστίζει μία εκτέλεση
Το Pi0.5 βρίσκεται στην ακριβή κατηγορία επειδή απαιτεί κάρτα 80 GB, και οι τιμές spot μεταβάλλονται, οπότε το ποσό είναι ένα εύρος και όχι μία τιμή. Για πολλές εργασίες SO-100, εκπαιδεύστε SmolVLA ή ACT στην κατηγορία 24 GB πρώτα, επιβεβαιώστε ότι η εργασία είναι εκπαιδεύσιμη, και μετά αφιερώστε ώρες A100 σε αυτήν. Εκπαιδεύστε την πρώτη σας πολιτική περιγράφει αυτόν τον φθηνότερο κύκλο, και τιμολόγηση περιλαμβάνει τις τρέχουσες κατηγορίες.
| Κατηγορία | Πολιτικές | Τυπική εκτέλεση | Τιμή ανά ώρα | Κόστος ανά εκτέλεση |
|---|---|---|---|---|
| A100 80 GB ή H100 | Pi0.5, GR00T N1.7, GR00T N1.5 | 3 έως 6 ώρες | 1.20 έως 2.00 USD | περίπου 4 έως 12 USD |
| RTX 4090 ή οποιαδήποτε κάρτα 24 GB | SmolVLA, ACT | 2 έως 5 ώρες | 0.30 έως 0.60 USD | περίπου 1 έως 3 USD |

Πριν δεσμεύσετε ένα βράδυ: GR00T N1.7 έναντι Pi0.5 και Pi0.5 έναντι SmolVLA παραθέτουν τους ίδιους αριθμούς αντιμέτωπους. Η Αρένα περιέχει 85 μοντέλα VLA με 332 αποτελέσματα συγκριτικής αξιολόγησης, το καθένα συνδεδεμένο με την πηγή του, και πληροφορίες για την οικογένεια βρίσκονται στο την επισκόπηση VLA μας.
Εκπαιδεύστε το Pi0.5 χωρίς να χτίσετε το stack
Επιλέξτε το σύνολο δεδομένων και τους υπερπαραμέτρους σε μια φόρμα. Το backend νοικιάζει μια κάρτα 80 GB στην αγορά spot, εκτελεί τον εκπαιδευτή και γράφει τα σημεία ελέγχου σε αποθήκευση αντικειμένων. Οδηγοί για SO-100, SO-101, Koch v1.1 και LeKiwi.
Ανοίξτε τους οδηγούς εκπαίδευσηςΜπορώ να κάνω fine-tune το Pi0.5 σε μια RTX 4090;▾
Όχι πλήρες fine-tune: το openpi αναφέρει πάνω από 70 GB για αυτό, οπότε μια A100 80 GB ή μια H100. Το νούμερο LoRA των 22.5 GB ανήκει στη διαδρομή JAX. Η υλοποίηση PyTorch δεν έχει LoRA. Η ενσωμάτωση PEFT του LeRobot υπάρχει, αλλά το τεκμηριωμένο παράδειγμά της είναι το SmolVLA και δεν έχει δημοσιευτεί κανένα νούμερο VRAM για το pi05.
Πόσα επεισόδια χρειάζομαι;▾
Πενήντα, το ίδιο κατώφλι με τα GR00T και ACT. Μόνο το SmolVLA πηγαίνει χαμηλότερα, στα 30. Το βασικό σημείο ελέγχου φέρει πάνω από 10.000 ώρες προ-εκπαίδευσης, οπότε το fine-tune προσαρμόζεται αντί να μαθαίνει από το μηδέν: 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 από την εργασία;▾
Όχι. Και τα δύο υποστηρίζουν μόνο την κεφαλή δράσης flow matching. Το στάδιο προ-εκπαίδευσης διακριτών tokens με τον FAST action tokenizer και η πρόβλεψη υποεργασιών υψηλού επιπέδου δεν κυκλοφόρησαν, και η κάρτα lerobot/pi05_base προσθέτει RL σε αυτή τη λίστα, παρόλο που η εργασία pi0.5 δεν περιγράφει κανένα στάδιο ενισχυτικής μάθησης. Εκπαιδεύετε μια πολιτική χαμηλού επιπέδου υπό την προϋπόθεση μιας συμβολοσειράς γλώσσας που παρέχετε, όχι ένα μοντέλο που αποσυνθέτει μια μεγάλη εργασία από μόνο του.
Έναντι ποιων εκδόσεων έχει γραφτεί αυτός ο οδηγός;▾
openpi στο main και lerobot 0.6.1, η έκδοση από 3 Αυγούστου 2026, και οι δύο διαβάστηκαν στις 23 Αυγούστου 2026. Τα σύνολα δεδομένων v3.0 έφτασαν με την 0.4.0 τον Οκτώβριο του 2025. Η 0.6.0 έκανε το βασικό πακέτο ελαφρύ, οπότε το lerobot[pi] από μόνο του δεν εγκαθιστά πλέον ένα training stack, και μετέφερε την ανάπτυξη στο lerobot-rollout. Το Training-time RTC είναι μόνο στο main. Ο φιλοξενούμενος εκπαιδευτής εδώ τρέχει την 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