TRLにおけるVision Language Modelのアライメント
Hugging Faceは、TRLライブラリ内でVision Language Models (VLMs) のための高度なアライメント手法への包括的なサポートを導入しました。このアップデートにより、開発者は単純なペアワイズの選好最適化を超えて、Mixed Preference Optimization (MPO)、Group Relative Policy Optimization (GRPO)、および Group Sequence Policy Optimization (GSPO) のような、よりスケーラブルで堅牢な手法へと移行することが可能になります。
高度なマルチモーダル・アライメント手法
TRLは現在、選好データからより豊かな信号を抽出し、複雑なタスクにおけるVLMの性能を向上させるために設計された、いくつかの最先端のアライメント・アルゴリズムを統合しています。
Mixed Preference Optimization (MPO)
MPOは、推論タスクにおけるSupervised Fine-Tuning (SFT) でよく見られる分布のシフトと、Direct Preference Optimization (DPO) でよく見られる一貫した根拠の欠如に対処します。MPOは、以下の3つの異なる損失関数を組み合わせることでDPOを拡張します:
- Preference loss (DPOからのsigmoid)
- Quality loss (Binary Classifier Optimization (BCO)からの)
- Generation loss (SFTからの)
ソース論文によると、この組み合わせた損失を実装することで、MathVistaベンチマークにおいて6.2ポイントの改善をもたらす可能性があります。TRLでは、これは DPOTrainer を使用し、loss_type を ["sigmoid", "bco_pair", "sft"] と設定し、対応する重みを割り当てることで実装されます。
Multimodal Group Relative Policy Optimization (GRPO)
GRPOは、個々のサンプルではなく、グループ(軌跡のバッチ)に対してポリシー・アップデートを行う強化学習アライメント手法です。このアプローチにより、ノイズがグループ内で平均化されるため、モデルは報酬ノイズに対してより堅牢になり、何が高品質な回答を構成するかという、より広い感覚を学習することが可能になります。
TRLでGRPOを実装するには、ユーザーは報酬関数(例:<think> と <answer> タグの存在を確認するフォーマット検証用、および正解と比較して解法を検証する精度用)を定義し、それらを GRPOTrainer に渡します。
Group Sequence Policy Optimization (GSPO)
GSPOは、トレーニングの安定性を向上させるためにQwenによって開発されたGRPOのバリエーションです。これは、トークンレベルではなくシーケンスレベルで重要度サンプリングの重みを計算することでこれを実現します。これは、特にMixture-of-Experts (MoE) スタイルのモデルにとって関連性の高い利点です。TRLは GRPOConfig を通じてGSPOをサポートしており、ユーザーは importance_sampling_level="sequence" と共に、特定のepsilonおよびbetaパラメータを指定できます。
拡張されたVLMサポートとSFT
主要な新しいアルゴリズムに加えて、TRLは既存のアライメントおよびファインチューニングのワークフローへのサポートを拡張しました。
RLOO と Online DPO
TRLは現在、VLMのための Reinforce Leave One Out (RLOO) および Online Direct Preference Optimization (Online DPO) をサポートしています。これらの手法はマルチモーダル・データセット上でのアライメントを可能にし、それぞれ RLOOTrainer および OnlineDPOTrainer を介してアクセス可能です。
Native Supervised Fine-tuning (SFT)
transformers APIの標準化に伴い、SFTTrainer は現在VLMに対して完全なネイティブ・サポートを提供しています。ユーザーは、VLMと images カラムを含むデータセットを使用してトレーナーを初期化できます。トレーニング中に画像トークンが削除されるのを防ぐために、SFTConfig において max_length=None と設定することが推奨されます。
vLLM統合によるオンライン・アライメント
トレーニング・ループ内でサンプルを生成する必要があるオンライン・アライメント手法をサポートするために、TRLはvLLMを統合しています。この統合により、2つの主要な運用モードが提供されます:
- Colocate mode: トレーニング・ループと同じプロセス内でvLLMを実行し、GPUをトレーニングと生成の両方で共有します。
- Server mode: vLLMを個別のプロセスとして提供し、それをトレーニング・スクリプトがクエリします。
さらに、TRLは現在、transformersバックエンドをvLLMで使用することをサポートしており、これは --vllm_model_impl transformers フラグによって有効化できます。
Sources
関連
- Dispatch
- Dispatch
- プロジェクト
- プロジェクト
- Dispatch