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)
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)