Fine-tuning cu PPO
După ce ai inițializat trainerul, trebuie să inițializezi bucla pentru fine-tuning-ul modelului.
Trainerul de recompensă ppo_trainer a fost inițializat folosind clasa PPOTrainer din biblioteca Python trl.
Acest exercițiu face parte din cursul
Reinforcement Learning from Human Feedback (RLHF)
Instrucțiuni pentru exercițiu
- Generează tensori de răspuns folosind ID-urile de intrare și trainerul, în cadrul buclei PPO.
- Completează pasul din bucla PPO care folosește interogările, răspunsurile și datele de recompensă pentru a optimiza modelul PPO.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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)