LeRobot documentation

Politiques

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Politiques

Chaque politique hérite de PreTrainedPolicy, qui combine un torch.nn.Module avec le mixin du Hub, de sorte que toute politique peut être poussée et chargée depuis le Hugging Face Hub avec les mêmes deux appels.

Chaque politique dispose de son propre guide avec des recettes d’entraînement et des résultats — ACT, SmolVLA, π₀, π₀.₅ et les autres sont répertoriés sous Politiques. Pour en ajouter une, consultez Ajouter une politique.

PreTrainedPolicy

classe lerobot.policies.PreTrainedPolicy

< >

( config: PreTrainedConfig*inputs**kwargs )

Classe de base pour les modèles de politique.

chunk_inference_spec

< >

( )

Déclarer le contrat d'auteur par défaut pour le service de chunks d'observations actuelles.

Hériter de cette implémentation déclare que predict_action_chunk effectue toutes les préparations nécessaires pour les appelants directs, accepte l’observation complète actuelle et renvoie [B, chunk_size, A] dans les coordonnées du modèle. Sa paire de processeurs canonique doit prendre en charge des chunks entiers. n_action_steps est la tranche de lecture ordinaire ; RTC conserve l’horizon de prédiction complet.

Une politique exigeant une préparation limitée à select_action, d'autres dispositions d'actions ou un échantillonnage temporel doit redéfinir cette méthode et refuser les configurations non prises en charge ou fournir un exécuteur personnalisé. La présence de la méthode ou un warmup réussi ne constituent pas une preuve de ce contrat. L'état de la politique/du processeur n'est autorisé que dans le cadre d'une session exclusive et reset() doit le réinitialiser pour une nouvelle exécution.

count_queued_actions

< >

( )

Nombre d'actions déjà calculées et en attente d'être servies.

0 pour une politique qui ne conserve aucune file d’actions (ne découpe jamais) ou dont la file est actuellement vide (sur le point de calculer un nouveau bloc). Lit les mêmes files que drop_queued_actions vide, nommées dans :attr:_action_queue_attrs.

drop_queued_actions

< >

( )

Supprimez les actions précalculées par les appels antérieurs de select_action.

Force un nouveau passage avant sur le prochain select_action afin qu'un changement de conditionnement en cours d'épisode (par exemple, une nouvelle instruction) prenne effet immédiatement plutôt qu'après le vidage de la file d'attente. Contrairement à reset, le reste de l'état de l'épisode est conservé. À appeler depuis le thread qui appelle select_action. Efface les files d'attente nommées dans :attr:_action_queue_attrs ; une politique qui ne conserve aucune file d'attente d'actions hérite d'une opération nulle.

forward

< >

( batch: dict[str, Tensor] ) → tuple[Tensor, dict | None]

Paramètres

  • batch (dict[str, Tensor]) — description

Retourne

tuple[Tensor, dict | None]

La perte et éventuellement d'autres informations. À l'exception de la perte, qui est un Tensor, tous les autres éléments doivent être des types Python natifs, compatibles avec la journalisation.

résumé

from_pretrained

< >

( 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 )

La politique est définie par défaut en mode évaluation à l'aide de policy.eval() (les modules dropout sont désactivés). Pour l'entraîner, vous devez d'abord la remettre en mode entraînement avec policy.train().

generate_text

< >

( batch: dict[str, Any] )

Exécuter la tête de texte de la politique sur un lot d’observations prétraitées.

La requête est transmise via batch en tant que données complémentaires (:data:~lerobot.utils.constants.QUERY_KIND / QUERY_TEXT) ; une réponse next_subtask est transmise directement à set_task, elle doit donc correspondre exactement à une sous-tâche, et non à un plan ou à une liste numérotée. Renvoie le texte généré et ne doit pas modifier l'état de production des actions (files, historique des observations).

get_optim_params

< >

( )

Retourne les paramètres spécifiques à la politique (paramètres ou groupes de paramètres) à transmettre à l'optimiseur.

predict_action_chunk

< >

( batch: dict[str, Tensor]**kwargs: Unpack[ActionSelectKwargs] )

Retourne le chunk d’actions (pour les politiques de chunking d’actions) pour une observation donnée, éventuellement en mode par lot.

Les classes filles utilisant le chunking d'actions doivent utiliser cette méthode dans select_action pour former le chunk d'actions mis en cache pour la sélection.

Une politique qui prend en charge le mot-clé noise démarre son échantillonnage à partir de ce tenseur, dont la forme correspond à celle que la politique lui attribuerait. Lorsque noise est None, la politique le génère de manière habituelle.

Peut retourner un PolicyOutput contenant le chunk et sa prédiction, comme pour select_action.

push_model_to_hub

< >

( cfg: TrainPipelineConfigpeft_model = Nonestate_dict: dict[str, Tensor] | None = Nonedataset_meta: LeRobotDatasetMetadata | None = None )

Paramètres

  • cfg (TrainPipelineConfig) — La configuration d’entraînement ; enregistrée sous train_config.json et utilisée pour générer la carte du modèle.
  • peft_model — L’emballage PEFT lors de l’entraînement d’adaptateurs, dont les poids remplacent les poids du modèle complet dans le dépôt publié. La valeur par défaut est None.
  • state_dict (dict[str, Tensor] | None) — Ignoré ; les poids sont désormais collectés en interne lorsque la politique est fragmentée. Valeur par défaut : None.
  • dataset_meta (LeRobotDatasetMetadata | None) — Métadonnées du jeu de données pour la carte du modèle, si disponibles. Valeur par défaut : None.

Publiez cette politique sur le Hub.

Obsolète : utilisez plutôt lerobot.common.train_utils.publish_trained_model(), qui publie également les pré/post-processeurs avec le modèle.

réinitialiser

< >

( )

À appeler chaque fois que l'environnement est réinitialisé.

Effectue des opérations telles que le nettoyage des caches.

select_action

< >

( batch: dict[str, Tensor]**kwargs: Unpack[ActionSelectKwargs] )

Retourner une action à exécuter dans l'environnement (éventuellement en mode par lots).

Lorsque le modèle utilise un historique d'observations, ou génère une séquence d'actions, cette méthode gère la mise en cache.

Retourne un tenseur d’action brut, ou un PolicyOutput : un lot, indexé comme le lot d’entrée, contenant l’action sous "action" et ce que la politique attend ou croit en plus sous "prediction" (un PolicyPrediction). La prédiction est lotée comme l’action, une valeur par environnement, et chaque entrée est indexée par ce à quoi elle se réfère : les images prédites par la clé d’observation qu’elles prédisent, le langage par le style d’annotation (« subtask », « plan », « memory »), les boîtes (schéma VQA d’annotation) par la caméra sur laquelle elles sont dessinées. Les appelants normalisent les deux types de retour avec lerobot.processor.policy_output_to_transition ; —display_data affiche la prédiction du premier environnement.

Une prédiction contient les valeurs pour cette étape : une valeur couvrant un fragment (par exemple un clip imaginé) est renvoyée morceau par morceau, avec l’action à laquelle chaque morceau appartient. Chaque entrée reste affichée jusqu’à ce qu’elle soit renvoyée à nouveau. La prédiction est activable via un champ de configuration au choix de la politique, et ne doit pas modifier les actions ; le texte destiné à orienter la politique passe par generate_text.

supports_rtc

< >

( )

Indique si cette politique implémente les sémantiques d'inférence Real-Time Chunking.

supports_text_generation

< >

( )

Indique si cette politique implémente generate_text (les deux doivent être remplacées ensemble).

validate_chunk_input_features

< >

( features: tuple[FeatureSpec, ...] )

Valider les entrées canoniques avant le service, avec des formes exactes par défaut.

Les politiques qui redimensionnent explicitement ou masquent les entrées manquantes peuvent outrepasser ce contrat. De telles exceptions relèvent de la politique, jamais du transport. Le schéma de câble négocié fixe toujours la forme de chaque fonction fournie.

wrap_with_peft

< >

( peft_config = Nonepeft_cli_overrides: dict | None = None )

Paramètres

  • peft_config — Configuration d’adaptateur PEFT facultative (par ex. LoraConfig). Si fournie, elle est utilisée directement (avec les substitutions CLI appliquées).
  • peft_cli_overrides — Dictionnaire facultatif de substitutions CLI (method_type, target_modules, r, etc.) Ces éléments sont fusionnés avec les valeurs par défaut de la politique pour construire la configuration finale.

Enveloppez cette politique avec des adaptateurs PEFT pour un fine-tuning efficace en paramètres.

Cette méthode constitue le point d’entrée unique pour l’intégration de PEFT. Les sous-classes doivent redéfinir _get_default_peft_targets() pour fournir les modules cibles par défaut, et _validate_peft_config() pour la validation spécifique à la politique.

PreTrainedConfig

classe lerobot.configs.PreTrainedConfig

< >

( 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 )

Paramètres

  • n_obs_steps — Nombre d’étapes d’environnement d’observations à transmettre à la politique (prend l’étape actuelle et des étapes supplémentaires en arrière).
  • input_features — Un dictionnaire définissant la PolicyFeature des données d’entrée pour la politique. La clé représente le nom des données d’entrée, et la valeur est une PolicyFeature, qui se compose des attributs FeatureType et shape.
  • output_features — Un dictionnaire définissant la PolicyFeature des données de sortie pour la politique. La clé représente le nom des données de sortie, et la valeur est une PolicyFeature, qui se compose des attributs FeatureType et shape.
  • normalization_mapping — Un dictionnaire qui associe une valeur str de FeatureType (par exemple, “STATE”, “VISUAL”) à un NormalizationMode correspondant (par exemple, NormalizationMode.MIN_MAX)

Classe de configuration de base pour les modèles de politique.

make_policy

lerobot.policies.make_policy

< >

( 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

Paramètres

  • cfg (PreTrainedConfig) — La configuration de la politique à créer. Si cfg.pretrained_path est défini, la politique sera chargée avec les poids de ce chemin.
  • ds_meta (LeRobotDatasetMetadata | None) — Métadonnées du jeu de données utilisées pour déduire les formes et les types des caractéristiques. Fournit également des statistiques pour les couches de normalisation.
  • env_cfg (EnvConfig | None) — Configuration de l’environnement utilisée pour déduire les formes et les types des caractéristiques. Il faut fournir l’un des deux : ds_meta ou env_cfg.
  • rename_map (dict[str, str] | None) — Correspondance facultative des clés de fonctionnalités du jeu de données ou de l’environnement avec les noms de fonctionnalités attendus par la politique (par ex. "left" → "camera1").
  • defer_weight_load (bool) — Construit la politique exacte que from_pretrained construirait — même résolution de configuration, mêmes tampons dérivés des statistiques, même placement sur l’appareil et mode d’évaluation — mais saute le chargement des poids safetensors. Utilisé lors de la reprise depuis un point de contrôle DCP, dont les poids fragmentés sont diffusés après accelerator.prepare() (le moteur de point de contrôle distribué écrase l’initialisation aléatoire). Pour une politique PEFT, seuls les poids de l’adaptateur sont sautés, les poids de base sont chargés comme d’habitude.
  • pretrained_path (str | Path | None) — Charge les poids (ou l’adaptateur PEFT) depuis ici plutôt que depuis cfg.pretrained_path, qui conserve le nom du modèle à partir duquel la politique a été affinée une fois celle-ci construite. Utilisé lors de la reprise depuis un point de contrôle.

Retourne

PreTrainedPolicy

Un modèle de politique instancié et placé sur un appareil.

Lève

ValueError ou NotImplementedError

  • ValueError — Si les deux ou aucun des paramètres ds_meta et env_cfg ne sont fournis.
  • NotImplementedError — Si vous tentez d'utiliser une combinaison non prise en charge entre une politique et un backend (par exemple, VQBeT avec ‘mps’).

Instanciez un modèle de politique.

Cette fonction d’usine gère la logique de création d’une politique, ce qui nécessite de déterminer les formes des caractéristiques d’entrée et de sortie. Ces formes peuvent être dérivées soit d’un objet LeRobotDatasetMetadata, soit d’un objet EnvConfig. La fonction peut soit initialiser une nouvelle politique à partir de zéro, soit charger une politique pré-entraînée.

Update on GitHub