Les méthodes Actor-Critic (AC) sont des méthodes de gradient de politique largement utilisées qui utilisent critics pour soutenir l’entraînement. Les méthodes AC peuvent obtenir une variance plus faible et une meilleure efficacité d’échantillonnage que REINFORCE, mais cela nécessite une conception et un réglage minutieux de critic pour assurer un entraînement stable. Dans l’apprentissage par renforcement multi-agents (MARL), Actor-Critic les méthodes comprennent Multi-Agent Actor-Critic (MAAC) et Indépendant Actor-Critic (IAC).
Les deux agents mettent en œuvre conjointement et évaluent leur réponse conjointe avec la fonction de récompense, mais utilisent critics différemment. MAAC entraîne un critic sur l’historique conjoint, de sorte que chaque agent partage son TD erreur. IAC entraîne un critic par agent sur l’historique de cet agent, de sorte que chaque agent obtient sa propre TD erreur.
MAAC#
Multi-Agent Actor-Critic (MAAC) utilise un Centralisé Critic (CC) pour évaluer les valeurs des historiques conjoints \( V_{\boldsymbol{\phi}}(\mathbf{h}_t) \) avec critic_type="v", ou des paires historique-action \( Q_{\boldsymbol{\psi}}(\mathbf{h}_t, \mathbf{a}_t) \) avec critic_type="q". Le critic reçoit les invites des agents combinées en une seule séquence de texte; le mode Q inclut également leurs complétions générées. Le gradient de politique de chaque agent est:
où \( \boldsymbol{\delta}_t = r_t + \gamma V_{\boldsymbol{\phi}}(\mathbf{h}_{t+1}) - V_{\boldsymbol{\phi}}(\mathbf{h}_{t}) \), et le modèle critic est mis à jour par:
Ici, \( r_t \) est la récompense traitée, avec la pénalité de référence KL optionnelle soustraite lorsque cela est activé ; les récompenses peuvent être partagées entre les agents ou fournies par agent. La dernière étape collectée, incluant une étape terminée prématurément ou une étape d’une seule étape rollout, utilise la récompense seule comme cible, sans bootstrapping. La probabilité de complétion est la somme des probabilités logarithmiques générées token ; les invites et le remplissage de fin tokens sont exclus. La perte est ensuite moyennée sur les échantillons. Les tampons sont regroupés par agent et par étape avant de mettre à jour, et advantage_normalization normalise les erreurs TD au sein de chaque tel groupe. Les cibles et les avantages restent fixes pendant la mise à jour. Le partage critic est mis à jour séquentiellement avec chaque lot d’agents, et value_loss_coef ajuste sa perte.
En mode Q, l’implémentation utilise le même poids TD-résiduel actor, avec une action suivante échantillonnée dans le bootstrapping. Elle ne met pas en œuvre un objectif séparé actor pondéré directement par Q ou une base uniquement d’état pour Q.
num_agents: Nombre d’agentsnum_turns: Nombre d’étapescritic_type: Type de cible Critic (vpour V(h),qpour Q(h,a))num_train_epochs: Nombre d’échantillons d’entraînement epochsagent_learning_rate: Taux d’apprentissage pour les agentscritic_learning_rate: Taux d’apprentissage pour le partage criticvalue_loss_coef: Poids de la perte criticadvantage_normalization: Si normaliser les avantages avant les mises à jourrollout_buffer_size: Nombre d’échantillons à collecter par agent avant une mise à jourtrain_batch_size: Taille du mini-batch dans chaque mise à jourmax_new_tokens: Nombre maximal de tokens à générer par complétiontemperature: Température pour l’échantillonnagetop_p: Top-p pour l’échantillonnage nucléairetop_k: Top-k pour l’échantillonnagenum_generations: Nombre de générations par requête par agentexternal_prompt_passthrough: Utiliser directement des requêtes externes dans l’entraînement multi-toursdiscount: Facteur de réduction pour la prédiction de la prochaine étape critic dans les cibles TD;expected_returnutilise des sommes de récompenses non réduitesearly_termination_threshold: Une requête rollout se termine après une étape dont la récompense moyenne traitée dépasse ce seuil;Nonedésactive l’arrêt précoceeval_interval: Intervalle d’évaluation (en lots d’entraînement)eval_num_samples: Nombre d’échantillons d’évaluation par intervalleeval_batch_size: Taille de lot pour l’évaluation DataLoaderlogging_steps: Nombre minimum d’évaluations de récompense d’action conjointe entre les logs de métriques d’entraînementparallel_training:nonepour un appareil oumppour le positionnement explicite de l’agent/criticagent_devices,critic_devices: Attributions d’appareils, requises en modempreference_kl_enabled,reference_kl_coef: Si la pénalité de récompense de référence KL est activée et son poids (désactivée par défaut)reference_devices: Placement d’appareil optionnel pour les modèles de référence
agent_modelouagents: Chaîne d’identifiant de modèle Actor pour les agents homogènes, ou liste de modèles d’agents (le placement multi-agentagent_modeldoit être une chaîne)critic_modeloucritics: Unique et partagé critic, fourni sous forme d’identifiant, d’instance de modèle ou de liste d’un élémenttokenizer: Partagé tokenizer, ou liste par agent lors de l’utilisation deagents; requis avecagentsou une instance de modèle, sinon chargé à partir deagent_modelreward_func: Fonction appelable retournant les récompenses (requis)reward_processor: Post-traitement de récompense optionnelformatters: Fonction appelable unique ou liste pour le formatage des invites par agentargs: Instance deMAACConfig(facultatif)train_dataset: Jeu de données d’entraînement (obligatoire)eval_dataset: Jeu de données d’évaluation (facultatif)model_config: Options de chargement de modèle;critic_value_head_hidden_dimconfigure le critic centralisé de value head (facultatif)wandb_config: Configuration de journalisation de Weights & Biases (facultatif)metrics_callback: Appel de rappel facultatif prenant des échantillons de rollout et renvoyant un dictionnaire de métriques scalairesexternal_transition: Fonction de transition requise lors de l’utilisation denum_turns > 1
Mises à jour de MAAC sur les échantillons collectés sans échantillonnage d’importance ou de découpage de ratio de politique.
MAACConfign’a pas d’optionvalue_clip_range. Le modèle partagé critic utilise le premier agent tokenizer, qui doit être compatible avec le modèle critic.
Le trainer utilise une formation fixe DataLoader taille du lot de 1. Pour
num_turns > 1, unexternal_transitionetnum_generations=1sont requis.train_batch_sizepar défautrollout_buffer_size; les mises à jour utilisent les échantillons disponibles dans chaque groupe d’agents/de tours, y compris les petits groupes lorsque les tampons sont vidés.
IAC#
Optimisation indépendante de Actor-Critic (IAC) de la politique de chaque agent tout en utilisant les réponses conjointes de plusieurs agents. Chaque agent conserve sa propre actor et critic, et les autres agents servent de partie de l’environnement. Les récompenses peuvent être partagées ou spécifiques à l’agent. Le critic est conditionné par la requête/l’historique de cet agent en mode V, ou par sa requête et sa complétion en mode Q. Le gradient de politique pour chaque agent est:
où \( \delta_{i,t} = r_t + \gamma V_{\phi_i}(h_{i,t+1}) - V_{\phi_i}(h_{i,t}) \). Le actor utilise la même perte moyenne d’échantillon et la somme de complétions de token que MAAC, avec une normalisation facultative au sein de chaque groupe d’agent/tour. Le actor en mode Q utilise également cette erreur TD.
CoMLRL prend en charge deux variantes de IAC:
Modèle séparé Critic: Utilise un modèle indépendant pour l’estimation de la valeur. Les paramètres de Actor et critic sont optimisés séparément, au prix de la nécessité de stocker un modèle supplémentaire par agent.
Modèle partagé: Attache un petit modèle de value head au transformateur backbone, partageant les représentations d’historique (ou historique-action) du modèle actor pour réduire les besoins en espace.
Les paramètres de critics sont mis à jour en minimisant l’erreur de TD:
Lors de l’utilisation d’un modèle partagé (use_separate_critic=False), les modèles actor et value head optimisent la perte de actor plus la perte de critic pondérée par value_loss_coef. À moins que value_clip_range=None, une limite de valeur est appliquée pour améliorer la stabilité de l’entraînement:
où \( \hat{V}_t \) est le TD cible, \( \epsilon \) est value_clip_range, et les erreurs sont moyennées sur le mini-batch. Séparez critics utilisez l’erreur au carré non tronquée.
num_agents: Nombre d’agentsnum_turns: Nombre de toursnum_train_epochs: Nombre d’exemples d’entraînement epochsagent_learning_rate: Taux d’apprentissage pour les agentscritic_learning_rate: Taux d’apprentissage pour les modèles séparés critics ; les modèles partagés utilisentagent_learning_ratepour actor et value headvalue_loss_coef: Coefficient pour la perte de valeurvalue_clip_range: Plage de seuil pour la valeur en mode modèle partagé;Nonedésactive le seuiladvantage_normalization: Si normaliser les avantagesrollout_buffer_size: Nombre d’échantillons à collecter avant une mise à jourtrain_batch_size: Taille du mini-batch pour les mises à jour de la politiquemax_new_tokens: Nombre maximal de nouveaux tokens à générertemperature: Température pour l’échantillonnagetop_p: Top-p pour l’échantillonnage nucléairetop_k: Top-k pour l’échantillonnagenum_generations: Nombre de générations par invite pour chaque agentuse_separate_critic: Si utiliser un modèle critic séparécritic_type: Type de cible Critic (vpour V(h),qpour Q(h,a))critic_value_head_hidden_dim: Dimension cachée pour critic value headvalue_head_hidden_dim: Dimension cachée pour value head en mode modèle partagéexternal_prompt_passthrough: Utiliser directement des invites externes lors de l’entraînement multi-toursdiscount: Facteur de réduction dans les cibles de TD;expected_returnutilise des sommes de récompenses non déduitesearly_termination_threshold: Un rollout se termine lorsque la récompense moyenne traitée d’un tour dépasse ce seuil;Nonedésactive l’arrêt précoceeval_interval: Intervalle d’évaluation (en lots d’entraînement)eval_num_samples: Nombre d’échantillons d’évaluation par intervalleeval_batch_size: Taille du lot d’évaluation DataLoaderlogging_steps: Nombre minimum d’évaluations de récompense d’action conjointe entre les logs de métriques d’entraînementparallel_training:nonepour un appareil oumppour le positionnement explicite de l’agent/criticagent_devices,critic_devices: Affectations de dispositifs;mpnécessiteagent_deviceset, pour des dispositifs séparés critics,critic_devicesreference_kl_enabled,reference_kl_coef: Activer ou non la pénalité de récompense de référence gelée KL et son poids (désactivé par défaut)reference_devices: Placement facultatif du modèle de référence
agent_modelouagents: Chaîne d’identifiant de modèle pour les agents homogènes, ou liste des modèles d’agents (le modèle multi-agentagent_modeldoit être une chaîne)critic_modeloucritics: Identifiant Critic, instance de modèle, ou liste de modèles critic lorsqueuse_separate_critic=Truetokenizer: Partagé tokenizer, ou liste par agent lors de l’utilisation deagents; requis avecagentsou une instance de modèle, sinon chargé à partir deagent_modelreward_func: Fonction appelable qui renvoie une liste de nombres à virgule flottante (requis)reward_processor: Processeur facultatif pour appliquer aux récompensesformatters: Fonction appelable unique ou liste de fonctions appelables par agent pour formater les éléments de l’ensemble de données en invitesargs: Instance deIACConfig(facultatif)train_dataset: Ensemble de données d’entraînement (requis)eval_dataset: Ensemble de données d’évaluation (facultatif)model_config: Dictionnaire de configuration du modèle (facultatif)wandb_config: Configuration pour la journalisation de Weights & Biases (facultatif)metrics_callback: Appel de rappel facultatif prenant des échantillons de rollout et renvoyant un dictionnaire de métriques scalairesexternal_transition: Fonction de transition facultative requise pour l’entraînement multi-tours
IAC met à jour les échantillons collectés sans importance de l’échantillonnage ou de la suppression de la différence entre la politique et le ratio. En mode modèle partagé (
use_separate_critic=False), les value heads sont liés aux modèles actor ; passercritic_modeloucriticsprovoque une erreur, etvalue_clip_rangene s’applique que dans ce mode. Les agents peuvent être homogènes ou hétérogènes. En mode séparé (critic) (use_separate_critic=True), les utilisateurs peuvent fournir une listecriticsde longueurnum_agentsou une source uniquecritic_modelpour la diffusion. Des instances de modèles distinctes ou un identifiant chargé séparément pour chaque critic conservent leurs paramètres indépendants ; la diffusion d’un objet de modèle préchargé réutilise ses paramètres. Chaque critic consomme le actor de son token IDs, de sorte qu’un modèle différent critic doit être compatible avec le actor de son tokenizer.
Le trainer utilise une formation fixe DataLoader taille du lot de 1. Pour
num_turns > 1, unexternal_transitionetnum_generations=1sont requis.train_batch_sizepar défautrollout_buffer_size; les mises à jour utilisent les échantillons disponibles dans chaque groupe d’agents/de tours, y compris les petits groupes lorsque les tampons sont vidés.