PPO 微调
在已初始化训练器之后,您现在需要初始化循环来微调模型。
奖励训练器 ppo_trainer 已使用 trl Python 库中的 PPOTrainer 类完成初始化。
本练习是课程的一部分
来自人类反馈的强化学习(RLHF)
练习说明
- 在 PPO 循环中,使用输入 id 和训练器生成响应张量。
- 在 PPO 循环中完成使用查询、响应和奖励数据来优化 PPO 模型的 step。
交互式实操练习
通过完成这段示例代码来试试这个练习。
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)