始める無料で始める

PPO によるファインチューニング

トレーナーを初期化したら、次はループを初期化してモデルをファインチューニングします。

報酬トレーナー ppo_trainer は、trl の Python ライブラリにある PPOTrainer クラスを使って初期化されています。

この演習はコースの一部です

人間のフィードバックによる強化学習(RLHF)

コースを見る

演習の手順

  • 入力 ID とトレーナーを使って、PPO ループ内で応答テンソルを生成します。
  • クエリ、応答、報酬データを用いて 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)
コードを編集して実行