Ajuste fino con PPO
Después de inicializar el entrenador, ahora tienes que preparar el bucle para ajustar el modelo.
El entrenador de recompensas ppo_trainer se ha inicializado usando la clase PPOTrainer de la librería de Python trl.
Este ejercicio forma parte del curso
Reinforcement Learning from Human Feedback (RLHF)
Instrucciones del ejercicio
- Genera tensores de respuesta usando los input ids y el entrenador dentro del bucle de PPO.
- Completa el paso dentro del bucle de PPO que usa consultas, respuestas y datos de recompensa para optimizar el modelo PPO.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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)