Kom igångKom igång gratis

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)

Visa kurs

Ö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)
Redigera och kör kod