Aan de slagGa gratis aan de slag

PPO-finetuning

Nadat je de trainer hebt geïnitialiseerd, moet je nu de lus opzetten om het model te finetunen.

De beloningstrainer ppo_trainer is geïnitialiseerd met de klasse PPOTrainer uit de trl-pythonbibliotheek.

Deze oefening maakt deel uit van de cursus

Reinforcement Learning from Human Feedback (RLHF)

Cursus bekijken

Oefeninstructies

  • Genereer respons-tensors met behulp van de input-ids en de trainer binnen de PPO-lus.
  • Voltooi de stap binnen de PPO-lus die queries, responses en beloningsgegevens gebruikt om het PPO-model te optimaliseren.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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)
Code bewerken en uitvoeren