CommencerCommencer 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

Reinforcement Learning from Human Feedback (RLHF)

Afficher le cours

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