Dharma AI、DPO を構造化 OCR に適用──テキストのループ発生率を平均 59.4% 削減
チャットの「好み」ではなく「正誤」を DPO の信号に使い、SFT では解消困難な自己ループ問題をモデル自身の失敗例から学習して抑制した。
リリース: 2026-06-03 · 読了 3 分記事の要約
1. 核心(What)
- SFT 後のモデルで頻発するテキストのループ(degeneration)に対し、DPO を適用することでテストした全モデルで発生率が減少した。
- ブラジル・ポルトガル語の構造化 OCR タスクにおいて、ループ発生率を平均 59.4%、最大で 87.6%(1.61% から 0.20% へ)削減することに成功した。
- 23,726 件の文書を使用し、SFT 済みモデルが生成した「失敗(ループした)出力」を DPO の拒絶サンプル(rejected)として再利用するパイプラインを構築した。
2. 影響(Why)
- RAG や抽出タスクで「同じ文が繰り返される」バグは推論時のペナルティ設定では根本解決しないが、DPO で分布自体を修正できることが実証された。
- 人手による「好み」のラベル付けが不要で、モデル自身の失敗例を負例に使えるため、構造化データの精度向上コストを大幅に下げられる。
- 開発者への影響: 構造化データ抽出を実装するエンジニアは、推論パラメータの調整(Repetition Penalty 等)に頼るのをやめ、SFT 後の失敗例を負例とした DPO ステージを追加することで、ループ問題を根本から解消すべきである。
- 日本への影響: 国内の OCR サービスや金融系 BPO 事業者は、日本語特有の繰り返し(「。」の連続など)を DPO で抑制することで、後段のパースエラーを 5 割以上削減し、人手による修正コストを圧縮できる。
3. 根拠・詳細(How)
- Text Degeneration Reduction (Average): スコア 59.4
- Peak Degeneration Reduction (Nanonets-OCR2–3B): スコア 87.6
- Direct Preference Optimization Beyond Chatbots (2026-06-03 公開)