Passer à la navigation

nemo_rl.environments.interfaces

Afficher en Markdown

Contenu du Module

Classes

NomDescription
EnvironmentReturnType de retour standard par lots pour les méthodes d’étape d’environnement.
EnvironmentInterfaceClasse d’assistance qui fournit un moyen standard de créer un ABC par héritage.

Données

MetadataT

API

nemo_rl.environments.interfaces.MetadataT

Valeur: TypeVar(...)

class nemo_rl.environments.interfaces.EnvironmentReturn

Bases: typing.NamedTuple, typing.Generic[nemo_rl.environments.interfaces.MetadataT]

Type de retour standard par lots pour les méthodes d’étape d’environnement.

Tous les éléments sont par lots. observations : Nouvelle observation de l’environnement. C’est un type ‘message’ (par lots), qui est un dict avec les clés ‘role’ et ‘content’. metadata : Métadonnées mises à jour de l’environnement. next_stop_strings : Les chaînes d’arrêt pour le prochain tour. Si votre environnement est un jeu ou similaire, vous pouvez vouloir retourner une liste de chaînes d’arrêt qui sont des actions valides pour le prochain tour ou similaire. Ce champ vous permet de contrôler cela par tour. rewards : les récompenses pour ce tour. terminateds : si l’épisode s’est terminé ce tour. answers : les réponses pour ce tour.

observations: list[dict[str, str]]

Valeur: None

metadata: list[nemo_rl.environments.interfaces.MetadataT]

Valeur: None

next_stop_strings: list[list[str] | None] | list[None]

Valeur: None

rewards: torch.Tensor

Valeur: None

terminateds: torch.Tensor

Valeur: None

answers: list[str | None] | None

Valeur: None

class nemo_rl.environments.interfaces.EnvironmentInterface

Bases: abc.ABC, typing.Generic[nemo_rl.environments.interfaces.MetadataT]

message_log_batch: list[nemo_rl.data.interfaces.LLMMessageLogType],
metadata: list[nemo_rl.environments.interfaces.MetadataT]
) -> nemo_rl.environments.interfaces.EnvironmentReturn[nemo_rl.environments.interfaces.MetadataT]

Exécute une étape dans l’environnement. Permet l’asynchronie avec des serveurs distants, mais ce n’est pas obligatoire (cette fonction est un appel distant ray).

message_log_batch : lot de journaux de messages de type API OpenAI qui représentent des interactions avec le LLM. Chaque élément est une liste[dict[str, Union[str, torch.Tensor]]]. Par exemple, si c’était un environnement de mathématiques, le journal de messages serait [ {“role”: “user”, “content”: “problème”}, {“role”: “assistant”, “content”: “réponse”}, ] mais si c’était un environnement de code avec des commentaires, ce serait : [ {“role”: “user”, “content”: “problème”}, {“role”: “assistant”, “content”: “réponse”}, {“role”: “user”, “content”: “résultat du code”}, {“role”: “assistant”, “content”: “réponse du modèle”}, ] metadata : lot de ce dont l’environnement a besoin pour garder une trace. C’est-à-dire solutions mathématiques, tests unitaires de code, ou états d’agent. Peut être None si l’épisode est terminé.

Retourne :

  • Un tuple EnvironmentReturn contenant les observations, métadonnées, chaînes d’arrêt suivantes, récompenses et indicateurs de fin.
global_post_process_and_metrics(batch: nemo_rl.distributed.batched_data_dict.BatchedDataDict) -> tuple[nemo_rl.distributed.batched_data_dict.BatchedDataDict, dict]

Fonction de post-traitement après que tous les rollouts sont terminés pour le lot et retourne des métriques.