nemo_rl.algorithms.utils
nemo_rl.algorithms.utils
Contenu du Module
Fonctions
API
Calcule une estimation par jeton de la divergence KL entre deux log_probs.
D’après Schulman 2020, toujours positif.
logprobs_policy: torch.Tensor (b, s) logprobs_reference: torch.Tensor (b, s)
Fonction pour calculer une référence pour chaque paire (prompt, réponse) du lot.
La même référence est calculée pour chaque prompt. Les échantillons définis à 0 dans ‘valid_mask’ ne sont pas inclus dans le calcul de la référence.
prompts: tensor (b, s) Tenseur des prompts utilisés par le modèle. Peut être sur n’importe quel appareil rewards: tensor (b,) Récompenses de type flottant. Peut être sur n’importe quel appareil valid_mask: tensor (b,) Vecteur de 0/1, où 0 est à ignorer et 1 est à conserver leave_one_out_baseline: bool Calculer une référence non biaisée en excluant l’échantillon pour lequel la référence est calculée (de RLOO https://arxiv.org/abs/2402.14740)
Retourne : tensor (b,), tensor (b,) de références et d’écart-type sur le même appareil que ‘rewards’
Calcule la moyenne d’un micro-lot, en utilisant une statistique globale comme facteur de normalisation.
Définit la graine pour python, numpy et pytorch.
Obtenir le tokenizer et définir le jeton de remplissage sur le jeton de fin de séquence s’il n’est pas déjà défini.
Cette fonction initialise un tokenizer de la bibliothèque Hugging Face transformers et le configure avec des modèles de chat et des jetons de remplissage appropriés.
Args : tokenizer_config : Un dictionnaire contenant la configuration du tokenizer. Clés requises :
- name : Le nom ou le chemin du tokenizer préentraîné Clés optionnelles :
- chat_template : Le modèle de chat à utiliser. Peut être :
- None : Utilise un modèle de passage qui renvoie simplement le contenu du message
- “default” : Utilise le modèle par défaut du tokenizer
- Une chaîne de modèle jinja2 personnalisée Si non spécifié, le modèle par défaut du tokenizer sera utilisé. get_processor : Indique s’il faut renvoyer un processeur (via AutoProcessor) au lieu d’un tokenizer.
Retourne : PreTrainedTokenizerBase : L’instance de tokenizer configurée
Exemples :
Remplit le lot donné de sorte que sa taille soit divisible par (mbs * dp_size).
Args : batch (dict) : Le lot à remplir. dp_size (int) : Taille du parallélisme des données. mbs (int) : Taille du micro-lot.
Retourne : dict : Le lot rempli.