この記事は、評価設計に関する検証シリーズの1本である。自社が運用するAIキャラクターの対話モデルに蒸留DPOを適用したところ、学習時のrewards/accは1.0という満点の収束を示した一方、フルローカルA/Bでは3.50というnegative resultに終わった。学習指標と対話評価が食い違った経緯をまとめる。
この記事で分かること
- 蒸留DPOの学習指標と、実際の対話A/Bの結果がどう食い違ったか
- 対話が壊れていた具体的な症状
- 次のイテレーションでどう方針を変えたか
この記事で分からないこと(正直に書く)
- rewards/accが1.0でも対話が壊れる境界がどこにあるか(今回の1件からは分からない)
- 中国語混入がどの学習データ由来かの特定(データ側の切り分けは未実施)
蒸留DPOで学習指標は満点だった
自社が運用する対話モデルを対象に、蒸留DPO v1を実施した。chosenをセッションログ、rejectedを別モデルの再生成応答とする1,533ペアを用意し、QLoRA(NF4、r=16)でGPU1基・2.3時間の学習を行ったところ、rewards/accは1.0という満点の収束を示した(出所: 自社の運用記録、確認日2026-09-06)。学習曲線だけを見れば成功と判断してよい結果だった。
フルローカルA/Bでは3.50というnegative resultに終わった
学習済みモデルをフルローカルのA/B評価にかけたところ、結果は3.50にとどまり、採用を見送るnegative resultとなった(出所: 自社の運用記録、確認日2026-09-06)。出力には、存在しない設定を混線させる捏造、中国語の混入、文が途中で切れる断片化が見られた。学習ログ上は綺麗に収束していたにもかかわらず、生成された対話は実運用に耐える水準になかった。
「対話が良くなったか」ではなく「損失関数が収束したか」を測っていた
このずれの核心は、rewards/accという指標が何を保証するかにある。rewards/accは、chosenとrejectedのペアをモデルが正しく順序づけられているかという学習内部の指標であり、対話として自然かどうか、事実関係が破綻していないかは一切見ていない。意図していたのは「対話の質が上がったか」を測ることだったが、実際に測っていたのは「与えたペアの選好順序を学習できたか」だけだった。ペアの質や構成に問題があっても、順序さえ学習できれば指標は満点になる。
なぜ気づけなかったか
QLoRAの学習パイプラインは、収束済みのrewards/accをもって完了とみなす設計になっており、生成物を人手やLLM judgeで確認する工程が学習直後には組み込まれていなかった。学習が「エラーなく終わった」ことと「良い対話が生成できる」ことは別の性質だが、同じ完了通知の中では区別がつかない(出所: 自社の運用記録、確認日2026-09-06)。
どう直したか
このnegative resultを受け、次のイテレーション方針を変更した。rejected応答は別モデルの再生成ではなく、対象モデル自身に再生成させる。中国語混入のような言語バイアスはDPOでは矯正しきれないと判断し、日本語継続事前学習ベースへの入れ替えを本命に据えた。ただしベースの入れ替え自体にも別種の課題があり、その内容は姉妹記事「ベースモデル素交換で評価が悪化した記事」にまとめている(出所: 自社の運用記録、確認日2026-09-06)。中期的にはClaude系アクターのログから蒸留するDPOを本命として、chosenデータの自動蓄積を進めている。
再発防止
学習指標だけで採否を決めず、生成物のA/Bを経由してから判断する運用にしている。学習ログの「収束した」という表示は、対話の質について何も保証しないという前提で扱う。
合議judgeの片方が無言で欠落していた事故は姉妹記事「合議judgeの無言フォールバックを扱う記事」に、評価窓の長さが結論を変えたケースは「5ターン評価が100ターンで再現しなかった記事」にまとめている。評価器自体が測定対象を見誤っていた別の事故は評価器が測定対象に盲だった記事を参照してほしい。
学習と評価の設計について相談したい場合は、お問い合わせから編集部まで連絡してほしい。
よくある質問
Q1. 蒸留DPOの学習指標はどうだったのか
chosenをセッションログ、rejectedを別モデルの再生成応答とする1,533ペアでQLoRA学習を行い、rewards/accは1.0という満点の収束を示した。
Q2. 対話A/Bの結果はどうだったのか
フルローカルA/Bでは3.50にとどまり、採用を見送るnegative resultだった。存在しない設定の混線、中国語の混入、文の断片化が見られた。
Q3. なぜ学習指標が良くても対話が壊れたのか
rewards/accはペアの選好順序を学習できたかを見る学習内部の指標であり、対話として自然かどうかは測っていない。ペアの質に問題があっても順序さえ学習できれば指標は満点になる。
Q4. 次のイテレーションではどう変えたのか
rejected応答は対象モデル自身に再生成させる方式に変え、中国語混入への対応はDPOではなく日本語継続事前学習ベースへの入れ替えを本命とした。中期的にはClaude系アクターのログから蒸留するDPOを進めている。