LeRobot documentation
Kebijakan
Kebijakan
Setiap policy mewarisi PreTrainedPolicy, yang menggabungkan torch.nn.Module dengan mixin Hub, sehingga setiap policy dapat didorong ke dan dimuat dari Hugging Face Hub dengan dua panggilan yang sama.
Setiap kebijakan memiliki panduan tersendiri yang berisi resep pelatihan dan hasilnya — ACT, SmolVLA, π₀, π₀.₅, dan lainnya tercantum di bawah Policies. Untuk menambahkan satu kebijakan, lihat Adding a Policy.
PreTrainedPolicy
Kelas dasar untuk model kebijakan.
Deklarasikan kontrak penulis default untuk penyajian chunk observasi saat ini.
Mewarisi implementasi ini menyatakan bahwa predict_action_chunk melakukan semua persiapan yang diperlukan oleh pemanggil langsung, menerima observasi saat ini secara lengkap, dan mengembalikan [B, chunk_size, A] dalam koordinat model. Pasangan prosesor kanoniknya harus mendukung seluruh chunk. n_action_steps adalah slice playback biasa; RTC mempertahankan horizon prediksi penuh.
Kebijakan yang memerlukan persiapan hanya select_action, tata letak aksi lain, atau pengambilan sampel temporal harus menimpa metode ini dan menolak konfigurasi yang tidak didukung atau menyediakan runner khusus. Keberadaan metode atau warmup yang berhasil bukanlah bukti untuk kontrak ini. Status kebijakan/prosesor hanya diizinkan di dalam sesi eksklusif dan reset() harus membersihkannya untuk eksekusi baru.
Jumlah aksi yang sudah dihitung dan menunggu untuk disajikan.
0 untuk kebijakan yang tidak mempertahankan antrean aksi (tidak pernah melakukan chunking) atau yang antreannya saat ini kosong (segera menghitung chunk baru). Membaca antrean yang sama yang dibersihkan oleh drop_queued_actions, yang namanya tercantum dalam :attr:_action_queue_attrs.
Buang aksi yang telah dihitung sebelumnya oleh panggilan select_action sebelumnya.
Memaksa jalur maju baru pada select_action berikutnya sehingga perubahan kondisioning di tengah episode (misalnya instruksi baru) langsung berlaku, bukan setelah antrean kosong. Berbeda dengan reset, sisa status episode tetap dipertahankan. Panggil dari thread yang memanggil select_action. Membersihkan antrean yang namanya tercantum dalam :attr:_action_queue_attrs; kebijakan yang tidak mempertahankan antrean aksi mewarisi operasi tanpa efek (no-op).
forward
< source >( batch: dict[str, Tensor] ) → tuple[Tensor, dict | None]
ringkasan
from_pretrained
< source >( pretrained_name_or_path: str | Pathconfig: PreTrainedConfig | None = Noneforce_download: bool = Falseresume_download: bool | None = Noneproxies: dict | None = Nonetoken: str | bool | None = Nonecache_dir: str | Path | None = Nonelocal_files_only: bool = Falserevision: str | None = Nonestrict: bool = False**kwargs )
Policy secara default diatur dalam mode evaluasi menggunakan policy.eval() (modul dropout dinonaktifkan). Untuk melatihnya, Anda harus terlebih dahulu mengembalikannya ke mode pelatihan dengan policy.train().
Jalankan kepala teks kebijakan pada batch observasi yang telah dipreproses.
Permintaan ditumpangkan pada batch sebagai data pelengkap (:data:~lerobot.utils.constants.QUERY_KIND / QUERY_TEXT); balasan next_subtask langsung dimasukkan ke set_task, sehingga harus tepat satu subtask, bukan rencana atau daftar bernomor. Mengembalikan teks yang dihasilkan, dan tidak boleh mengubah state yang menghasilkan aksi (antrean, riwayat observasi).
Mengembalikan parameter spesifik kebijakan (parameter atau grup parameter) untuk diteruskan ke optimizer.
Mengembalikan chunk aksi (untuk kebijakan chunking aksi) untuk observasi tertentu, berpotensi dalam mode batch.
Kelas turunan yang menggunakan action chunking harus menggunakan metode ini di dalam select_action untuk membentuk action chunk yang di-cache untuk dipilih.
Kebijakan yang mendukung kata kunci noise memulai sampling-nya dari tensor tersebut, dengan bentuk yang sama seperti yang akan diambil oleh kebijakan. Ketika noise adalah None, kebijakan mengambilnya seperti biasa.
Mungkin mengembalikan PolicyOutput yang membawa chunk dan prediksinya, seperti pada select_action.
push_model_to_hub
< source >( cfg: TrainPipelineConfigpeft_model = Nonestate_dict: dict[str, Tensor] | None = Nonedataset_meta: LeRobotDatasetMetadata | None = None )
Parameter
- cfg (TrainPipelineConfig) — Konfigurasi pelatihan; disimpan sebagai train_config.json dan digunakan untuk merender model card.
- peft_model — Pembungkus PEFT saat melatih adapter, yang bobotnya menggantikan bobot model penuh di repositori yang dipublikasikan. Nilainya default adalah None.
- state_dict (dict[str, Tensor] | None) — Diabaikan; bobot kini dikumpulkan secara internal ketika kebijakan dipecah. Nilai default adalah None.
- dataset_meta (LeRobotDatasetMetadata | None) — Metadata dataset untuk kartu model, jika tersedia. Defaultnya None.
Publikasikan kebijakan ini ke Hub.
Tidak didukung lagi: gunakan lerobot.common.train_utils.publish_trained_model() sebagai gantinya, yang juga menerbitkan pre/post-processor bersama dengan model.
Dipanggil setiap kali lingkungan direset.
Melakukan hal-hal seperti membersihkan cache.
Kembalikan satu aksi untuk dijalankan di lingkungan (mungkin dalam mode batch).
Ketika model menggunakan riwayat observasi, atau menghasilkan urutan aksi, metode ini menangani peng-cache-an.
Mengembalikan tensor aksi polos, atau PolicyOutput: sebuah batch, yang dikunci seperti batch input, yang menyimpan
aksi di bawah "action" dan apa yang diharapkan atau diyakini oleh kebijakan selain itu di bawah "prediction" (sebuah PolicyPrediction). Prediksi di-batch seperti aksi, satu nilai
per lingkungan, dan setiap entri dikunci oleh apa yang dirujuknya: frame yang diprediksi oleh
kunci observasi yang diprediksinya, bahasa oleh gaya anotasi (“subtask”, “plan”, “memory”),
kotak (skema anotasi VQA) oleh kamera tempat kotak tersebut digambar. Pemanggil menormalisasi dua
jenis pengembalian dengan lerobot.processor.policy_output_to_transition; —display_data menampilkan
prediksi dari lingkungan pertama.
A prediction menyimpan nilai untuk langkah ini: satu yang mencakup sebuah chunk (misalnya klip imajiner) dikembalikan per bagian, beserta aksi yang dimiliki oleh masing-masing bagian. Setiap entri tetap ditampilkan hingga dikembalikan lagi. Prediksi bersifat opt-in melalui field konfigurasi yang dipilih oleh policy, dan tidak boleh mengubah aksi; teks yang harus mengarahkan policy dikirim melalui generate_text.
Apakah kebijakan ini mengimplementasikan semantik inferensi Real-Time Chunking.
Apakah kebijakan ini mengimplementasikan generate_text (override keduanya secara bersamaan).
Validasi input kanonik sebelum disajikan, dengan bentuk yang tepat secara default.
Kebijakan yang secara eksplisit mengubah ukuran atau memberi masker pada input yang hilang dapat menimpa kontrak ini. Pengecualian semacam itu harus berada di sisi kebijakan, bukan di sisi transport. Skema wire yang dinegosiasikan tetap menentukan bentuk dari setiap fitur yang diberikan.
wrap_with_peft
< source >( peft_config = Nonepeft_cli_overrides: dict | None = None )
Parameter
- peft_config — Konfigurasi adapter PEFT opsional (misalnya, LoraConfig). Jika disediakan, digunakan secara langsung (dengan override CLI diterapkan).
- peft_cli_overrides — dict opsional berisi override CLI (method_type, target_modules, r, dll.) Nilai ini digabungkan dengan default kebijakan untuk membangun konfigurasi akhir.
Bungkus kebijakan ini dengan adapter PEFT untuk fine-tuning yang efisien secara parameter.
Metode ini adalah titik masuk tunggal untuk integrasi PEFT. Subkelas harus menimpa _get_default_peft_targets() untuk menyediakan modul target default, dan _validate_peft_config() untuk validasi yang spesifik terhadap kebijakan.
PreTrainedConfig
kelas lerobot.configs.PreTrainedConfig
< source >( n_obs_steps: int = 1input_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>output_features: dict[str, lerobot.configs.types.PolicyFeature] | None = <factory>device: str | None = Nonedtype: torch.dtype | None = Noneuse_amp: bool = Falseuse_peft: bool = Falsepush_to_hub: bool = Truerepo_id: str | None = Noneprivate: bool | None = Nonetags: list[str] | None = Nonelicense: str | None = Nonepretrained_path: pathlib.Path | None = Nonepretrained_revision: str | None = None )
Parameter
- n_obs_steps — Jumlah langkah lingkungan berupa observasi yang akan diteruskan ke kebijakan (mengambil langkah saat ini dan langkah-langkah sebelumnya).
- input_features — Kamus yang mendefinisikan PolicyFeature dari data input untuk kebijakan. Kunci mewakili nama data input, dan nilainya adalah PolicyFeature, yang terdiri dari atribut FeatureType dan shape.
- output_features — Kamus yang mendefinisikan PolicyFeature dari data keluaran untuk kebijakan. Kunci mewakili nama data keluaran, dan nilainya adalah PolicyFeature, yang terdiri dari atribut FeatureType dan shape.
- normalization_mapping — Kamus yang memetakan dari nilai str dari FeatureType (misalnya, “STATE”, “VISUAL”) ke NormalizationMode yang sesuai (misalnya, NormalizationMode.MIN_MAX)
Kelas konfigurasi dasar untuk model kebijakan.
make_policy
lerobot.policies.make_policy
< source >( cfg: PreTrainedConfigds_meta: LeRobotDatasetMetadata | None = Noneenv_cfg: EnvConfig | None = Nonerename_map: dict[str, str] | None = Nonedefer_weight_load: bool = Falsepretrained_path: str | Path | None = None ) → PreTrainedPolicy
Parameter
- cfg (PreTrainedConfig) — Konfigurasi untuk kebijakan yang akan dibuat. Jika
cfg.pretrained_pathdiset, kebijakan akan dimuat dengan bobot dari path tersebut. - ds_meta (LeRobotDatasetMetadata | None) — Metadata dataset yang digunakan untuk menyimpulkan bentuk dan jenis fitur. Juga menyediakan statistik untuk lapisan normalisasi.
- env_cfg (EnvConfig | None) — Konfigurasi lingkungan yang digunakan untuk menyimpulkan bentuk dan tipe fitur. Salah satu dari
ds_metaatauenv_cfgharus disediakan. - rename_map (dict[str, str] | None) — Pemetaan opsional dari kunci fitur dataset atau lingkungan untuk mencocokkan nama fitur kebijakan yang diharapkan (misalnya,
"left"→"camera1"). - defer_weight_load (bool) — Membangun kebijakan persis seperti yang akan dibangun oleh
from_pretrained— resolusi konfigurasi yang sama, buffer yang diturunkan dari statistik yang sama, penempatan perangkat dan mode eval yang sama — tetapi melewati pemuatan bobot safetensors. Digunakan saat melanjutkan dari checkpoint DCP, di mana bobot yang terbagi (sharded) akan mengalir masuk setelahaccelerator.prepare()(mesin checkpoint terdistribusi akan menimpa inisialisasi acak). Untuk kebijakan PEFT, hanya bobot adapter yang dilewati, sedangkan bobot dasar dimuat seperti biasa. - pretrained_path (str | Path | None) — Muat bobot (atau adapter PEFT) dari sini alih-alih dari
cfg.pretrained_path, yang tetap menyimpan nama model tempat kebijakan tersebut dilatih ulang setelah kebijakan dibangun. Digunakan saat melanjutkan dari checkpoint.
Mengembalikan
PreTrainedPolicy
Model kebijakan yang telah diinstansiasi dan ditempatkan pada perangkat.
Membuang
ValueError atau NotImplementedError
ValueError— Jika keduanya atau tidak ada sama sekali darids_metadanenv_cfgyang diberikan.NotImplementedError— Jika mencoba menggunakan kombinasi kebijakan-backend yang tidak didukung (misalnya, VQBeT dengan ‘mps’).
Instansiasi model kebijakan.
Fungsi pabrik ini menangani logika pembuatan kebijakan, yang memerlukan penentuan bentuk fitur input dan output. Bentuk-bentuk ini dapat diturunkan dari objek LeRobotDatasetMetadata atau objek EnvConfig. Fungsi ini dapat menginisialisasi kebijakan baru dari nol atau memuat kebijakan yang telah dilatih sebelumnya.