CommencerCommencez gratuitement

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>
Voir le 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)
Modifier et exécuter le code