Fine-tuning con PPO
Dopo aver inizializzato il trainer, ora devi impostare il loop per effettuare il fine-tuning del modello.
Il reward trainer ppo_trainer è stato inizializzato usando la classe PPOTrainer dalla libreria Python trl.
Questo esercizio fa parte del corso
Reinforcement Learning from Human Feedback (RLHF)
Istruzioni dell'esercizio
- Genera tensori di risposta usando gli input ids e il trainer all'interno del loop PPO.
- Completa lo step nel loop PPO che usa query, risposte e dati di ricompensa per ottimizzare il modello PPO.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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)