Finjustering med PPO
Nu när du har initialiserat tränaren är nästa steg att sätta upp loopen för att finjustera modellen.
Belöningstränaren ppo_trainer har initierats med klassen PPOTrainer från Python-biblioteket trl.
Den här övningen är en del av kursen
Reinforcement Learning from Human Feedback (RLHF)
Övningsinstruktioner
- Generera svarstensorer med hjälp av indata-id:n och tränaren i PPO-loopen.
- Slutför steget i PPO-loopen som använder frågor, svar och belöningsdata för att optimera PPO-modellen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)