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
Reinforcement Learning from Human Feedback (RLHF)
Instructions
- 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 cet exemple de code.
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)