DPOがチャットボット以外でも驚異的効果!OCRの「テキスト退化」を59.4%削減したDharmaOCRの秘密

DPOはチャットボットだけじゃない!モデルの「失敗」を直接改善する強力なアプローチ
AIモデルの性能向上において、Supervised Fine-Tuning(SFT)は広く使われる手法ですが、特定の「失敗モード」に対しては限界があることが知られています。特に生成系のモデルでは、意図しない繰り返しや意味不明な出力、いわゆる「テキスト退化」が課題となることがありますよね。
今回ご紹介するのは、Direct Preference Optimization(DPO)が、一般的なチャットボットのアライメント(人間が役立つ・無害だと判断する方向に調整すること)以外にも、OCR(光学文字認識)のような客観的なタスクで、モデル固有の失敗モードを劇的に改善した事例です。Dharma-AIがリリースした構造化OCRモデル「DharmaOCR」は、DPOを適用することで、モデルが生成する「繰り返しループ」を平均59.4%、最高87.6%も削減することに成功しました。これは、開発者にとって、自身のAIモデルの品質を向上させる上で非常に示唆に富む結果と言えるでしょう。
何ができるのか: DPOでAIモデルの特定の「失敗」を劇的に改善
DPOは、通常、LLMがよりユーザーの意図に沿った、安全な応答を生成するように訓練するために用いられます。しかし、DharmaOCRの事例は、このDPOの適用範囲がはるかに広いことを示しています。
- テキスト退化の劇的な削減: DharmaOCRは、ブラジルポルトガル語の構造化文書抽出タスクにおいて、モデルが文字起こしの代わりに繰り返しループを生成する「テキスト退化」という問題に直面していました。SFTではこの退化率を十分に下げることができませんでしたが、DPOを適用した結果、テストされた全てのモデルファミリーでテキスト退化を減少させ、平均59.4%の削減、最高87.6%の削減(例: Nanonets-OCR2–3Bでは1.61%から0.20%へ)を達成しました。
- 客観的なタスクへのDPO適用: これまでのDPOの応用は、ヘルプフルネスやハーネスネスといった人間の主観的な判断に基づくチャットアライメントがほとんどでした。しかし、OCRは主観性や会話の文脈がない客観的なタスクです。DharmaOCRは、「正しい文字起こしは選ばれる」「退化ループは拒否される」という明確な選好シグナルを利用してDPOトレーニングセットを構築し、アライメントではなく特定の失敗モードの直接的な緩和ツールとしてDPOをテストしました。
- SFTの限界を超える効果: SFTはトークンごとに予測を評価しますが、繰り返しループのような「完了レベルの失敗」をペナルティすることができませんでした。DPOは、完全な出力(選ばれたものか拒否されたものか)をトレーニングシグナルとすることで、このSFTの構造的限界を乗り越え、退化を効果的に抑制しました。
どう使えるのか: モデル自身の「失敗」から学習するDPOの汎用性
DPOがDharmaOCRのテキスト退化問題を解決できた鍵は、そのトレーニングシグナルが「モデル自身の失敗」から得られた点にあります。モデルが間違った出力(この場合は繰り返しループ)を生成したとき、それを「拒否された出力」としてマークし、正しい出力とペアにしてDPOの訓練データとしました。
このアプローチは、「正しい出力は選ばれ、特定の失敗は拒否される」という明確な選好シグナルを定義できるあらゆるAIモデルに応用できる可能性を秘めています。あなたの開発しているAIモデルが、以下のような特定の失敗モードに悩まされている場合、DPOは強力な解決策となるかもしれません。
- SFTでは改善しきれない特定の出力品質問題: SFTで基本的な性能は出ているものの、特定のパターンで不適切な出力(例: 無限ループ、ハルシネーション、特定の誤認識など)が発生し続ける場合。
- 明確な「良い出力」と「悪い出力」の区別がある場合: 例えば、コード生成でコンパイルエラーになるコードや、画像生成で特定の不具合がある画像を「悪い出力」と定義できる場合。
DPOは、個々のトークンではなく「完全な出力」を評価するため、繰り返しループのような出力全体に関わる失敗を効率的に学習し、ペナルティすることが可能です。これにより、モデルは単に正しいトークンを予測するだけでなく、「全体として望ましい出力」を生成するように調整されます。
試すならどこから始めるか: DharmaOCRの事例からヒントを得る
Dharma-AIは、DharmaOCRモデルをHugging Faceで利用可能としており、その方法論を詳述した論文も公開しています。もしあなたがAIモデルの特定の失敗モードに直面しており、SFTだけでは限界を感じているのであれば、DharmaOCRの事例は非常に参考になるでしょう。
- 公開されているDharmaOCRの情報を参照する: Hugging Faceで公開されているDharmaOCRモデルや、その論文を確認することで、DPOを特定の失敗モードに適用するための具体的なデータセット構築やトレーニング戦略のヒントが得られるかもしれません。
- 自身のモデルの失敗パターンを特定する: まずは、あなたのAIモデルがどのような特定の失敗モードを持っているのかを明確に定義し、「良い出力」と「悪い出力」のペアをどのように生成できるかを検討することから始めましょう。
DPOは、チャットボットのアライメントだけでなく、多様なAIタスクにおいてモデルの出力品質を向上させるための汎用的なツールとして、今後さらに注目されるでしょう。自身のプロジェクトでDPOの可能性を探ってみてはいかがでしょうか。


