LoslegenKostenlos loslegen

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

Reinforcement Learning aus menschlichem Feedback (RLHF)

Kurs anzeigen

Anleitung zur Übung

  • 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 Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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