НачатьНачать бесплатно

Дообучение с PPO

После инициализации тренера вам необходимо запустить цикл для дообучения модели.

Тренер вознаграждений ppo_trainer был инициализирован с помощью класса PPOTrainer из библиотеки Python trl.

Это упражнение является частью курса

Обучение с подкреплением на основе обратной связи от людей (RLHF)

Посмотреть курс

Инструкции к упражнению

  • Сгенерируйте тензоры ответов, используя входные идентификаторы и тренера внутри цикла PPO.
  • Выполните шаг внутри цикла PPO, который использует данные запросов, ответов и вознаграждений для оптимизации модели PPO.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код