Ajustement fin avec PPO
Après avoir initialisé l’entraîneur, vous devez maintenant mettre en place la boucle pour affiner le modèle.
L’entraîneur de récompense ppo_trainer a été initialisé à l’aide de la classe PPOTrainer de la bibliothèque Python trl.
Cet exercice fait partie du cours
<cours>Reinforcement Learning from Human Feedback (RLHF)</cours>Instructions de l’exercice
- Générez des tenseurs de réponse à partir des identifiants d’entrée et de l’entraîneur dans la boucle PPO.
- Complétez l’étape dans la boucle PPO qui utilise les requêtes, les réponses et les données de récompense pour optimiser le modèle PPO.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
for batch in tqdm(ppo_trainer.dataloader):
# Generate responses for the given queries using the trainer
response_tensors = ____(batch["input_ids"])
batch["response"] = [tokenizer.decode(r.squeeze()) for r in response_tensors]
texts = [q + r for q, r in zip(batch["query"], batch["response"])]
rewards = reward_model(texts)
# Training PPO step with the query, responses ids, and rewards
stats = ____(batch["input_ids"], response_tensors, rewards)
ppo_trainer.log_stats(stats, batch, rewards)