この記事は、評価設計に関する検証シリーズの1本である。自社のAIキャラクター対話評価で、語彙ベースの評価器を最適化目標に据えて改善を重ねたところ、スコアは過去最高値を記録したが、盲検judgeでは「配信として完全破綻」という真逆の判定が出た。同じ構造の事故が別の指標でもう一度起きた経緯もあわせてまとめる。
この記事で分かること
- 語彙評価器のスコアと盲検judgeの判定がどう食い違ったか
- マーカー密度という指標が「崩壊」と「濃さ」を区別できなかった理由
- 最適化目標をどう設計し直したか
この記事で分からないこと(正直に書く)
- 語彙評価器のどの重み付けが最も操作されやすいかの網羅的な分析(今回発覚した経路以外は未調査)
- 同種のGoodhart化が他の指標に残っていないかの全数点検(未実施)
何をした
自社の対話モデルの改善サイクルで、語彙シグナル(固有名詞への言及率や世界観キーワードの出現率など)を測る評価器を最適化目標に据え、20イテレーションにわたって改修を重ねた(出所: 自社の運用記録、確認日2026-09-06)。
何が起きた
このサイクルの中で、あるモデル構成が語彙評価器のスコア5.45という過去最高値を記録した。しかし実態を確認すると、同一の文をおよそ47回反復し、完全に重複したターンの比率は52〜56%、一方の話者が発話全体の84%を占めるという偏りがあった。盲検judgeで判定すると50点中4点で「配信として完全破綻」という評価だった。一方、語彙評価器のスコアでは4.27にとどまっていた別のモデル構成が、盲検judgeでは50点中21点を獲得しており、語彙評価器の順位と盲検judgeの順位が逆転していた(出所: 自社の運用記録、確認日2026-09-06)。
同じ構造の事故は、別の指標でも起きた。あるキャラクター向けのLoRAを検証した際、マーカー(語尾や口癖などの特徴語)の出現数を文字数で割った密度という指標で、LoRA側が7.47、比較対象のベースが4.02、信頼区間の下限も0を上回っていたことから「効果あり」と判定し、本番に反映した。ところが実際の出力は日本語として崩れており、13分で本番から戻す事態になった。同じ発話を重複や崩壊を区別できる別の指標で測り直すと、密度の中央値はむしろLoRA側の方が低く(5.36対6.57)、最初の密度指標が高く出たのは、崩壊して短い断片になったことで分母の文字数が縮んだためだった(出所: 自社の運用記録、確認日2026-09-06)。
「らしさ」ではなく「マーカーの出現密度」を測っていた
どちらの事故にも共通するのは、測定対象の取り違えである。意図していたのは「対話として自然で、キャラクターらしいか」を測ることだったが、実際に測っていたのは語彙マーカーが表面的にどれだけ出現するかだった。マーカーが多く出る同じ文を反復すれば語彙スコアは上がり、短い断片に崩壊して分母が縮めば密度は跳ね上がる。どちらも「良くなった」ことの証拠ではなく、指標の計算式が突かれやすい構造を持っていたことの証拠だった。
なぜ気づけなかったか
語彙評価器は重複ペナルティが評価器の書き直しの過程で落ちており、同一文の反復を検出できない状態になっていた。密度指標は「マーカー数÷文字数」という定義そのものが、崩壊による短文化と、内容が濃くなることを区別できない構造を持っていた。どちらもスコアという同じ形の数字で結果が出るため、内訳を見ない限り異常だと分からなかった(出所: 自社の運用記録、確認日2026-09-06)。
どう直したか
2026年6月、最適化の目標はLLM judgeによる盲検A/B評価に統一し、語彙ベースの指標は最大化する対象から、重複ターン比率10%超・発話バランス65/35超・禁止パターン検出時に不合格とするhard constraint gateへ降格させた。密度指標の事故については、2026年9月に崩壊の根本原因を特定した。原因は学習時と推論時で量子化方式が異なっていたことで、量子化方式を学習時に合わせると同じアダプタで日本語の崩壊が解消した。判定は実際のプロンプト・サンプリング設定を通した経路で行うという運用に改めている(出所: 自社の運用記録、確認日2026-09-06)。
再発防止
短い出力や分散だけが大きい出力が出た場合はまず崩壊を疑い、可読性の確認を指標のスコアと同格に置いている。指標を最適化目標にする前に、その指標が「崩壊」と「改善」を区別できる定義になっているかを確認することを標準の手順にした。
評価窓の長さが結論を変えたケースは姉妹記事「5ターン評価が100ターンで再現しなかった記事」に、合議judgeの片方が無言で欠落していた事故は「合議judgeの無言フォールバックを扱う記事」にまとめている。評価器自体が測定対象を見誤っていた別の事故は評価器が測定対象に盲だった記事を参照してほしい。
評価設計について相談したい場合は、お問い合わせから編集部まで連絡してほしい。
よくある質問
Q1. 語彙評価器のスコアと盲検judgeの判定はどう食い違ったか
語彙評価器で過去最高の5.45を記録した構成が盲検judgeでは50点中4点「完全破綻」だった一方、語彙評価器で4.27だった構成が盲検judgeでは50点中21点を獲得し、順位が逆転していた。
Q2. マーカー密度指標はなぜ「効果あり」と誤判定したのか
密度はマーカー出現数を文字数で割って算出するため、出力が崩壊して短い断片になると分母が縮み、密度だけが跳ね上がる。崩壊と改善を区別できない指標だった。
Q3. 最適化目標はどう改めたか
最適化目標をLLM judgeによる盲検A/B評価に統一し、語彙ベースの指標は最大化対象から、重複ターン比率や発話バランスの下限を定めたhard constraint gateへ降格させた。
Q4. 密度指標の崩壊事故の根本原因は何だったのか
学習時と推論時で量子化方式が異なっていたことが原因で、量子化方式を学習時に合わせると同じアダプタで日本語の崩壊が解消した。