CommencezCommencez gratuitement

Réglage fin avec PPO

Après avoir initialisé l'entraîneur, vous devez maintenant initialiser la boucle pour effectuer le réglage fin du modèle.

L'entraîneur de récompense ppo_trainer a été initialisé en utilisant la classe PPOTrainer de la bibliothèque Python trl.

Cette activité fait partie du cours

Reinforcement Learning from Human Feedback (RLHF)

Voir le cours

Instructions de l’exercice

  • Générez des tenseurs de réponse à partir des identifiants d'entrée (input ids) et de l'entraîneur, à l'intérieur de 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