LoslegenKostenlos starten

PPO-Finetuning

Nachdem der Trainer initialisiert wurde, musst du nun die Schleife zum Finetunen des Modells aufsetzen.

Der Reward-Trainer ppo_trainer wurde mit der Klasse PPOTrainer aus der Python-Bibliothek trl initialisiert.

Diese Übung ist Teil des Kurses

<Kurs>Reinforcement Learning aus menschlichem Feedback (RLHF)</Kurs>
Kurs ansehen

Übungsanweisungen

  • Generiere innerhalb der PPO-Schleife Antwort-Tensoren mithilfe der Input-IDs und des Trainers.
  • Vervollständige den Schritt innerhalb der PPO-Schleife, der Queries, Antworten und Reward-Daten nutzt, um das PPO-Modell zu optimieren.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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)
Code bearbeiten und ausführen