ComeçarComece de graça

Ajuste fino com PPO

Depois de inicializar o trainer, agora você precisa iniciar o loop para fazer o ajuste fino do modelo.

O trainer de recompensa ppo_trainer foi inicializado usando a classe PPOTrainer da biblioteca Python trl.

Este exercício faz parte do curso

Reinforcement Learning from Human Feedback (RLHF)

Ver curso

Instruções do exercício

  • Gere tensores de resposta usando os input ids e o trainer dentro do loop de PPO.
  • Complete a etapa dentro do loop de PPO que usa consultas (queries), respostas e dados de recompensa para otimizar o modelo PPO.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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)
Editar e executar o código