この記事は、評価設計に関する検証シリーズの1本である。自社が運用するAIキャラクター対話ハーネスで、「強いベースモデルに替えれば天井が上がる」という仮説を実測したところ、素交換では7軸合議評価が本番構成の5.29から2.93まで悪化した。悪化の大半が乗り換えコストだったという結論と、同じ失敗パターンが別の形でもう一度起きた経緯をまとめる。
この記事で分かること
- ベースモデルの素交換で評価がどれだけ悪化したか
- 悪化の内訳のうち、どこまでが「乗り換えコスト」でどこまでが「ベースの実力」か
- 同じ失敗パターンがどう再演したか
この記事で分からないこと(正直に書く)
- 公平な条件(書式整備・thinkingモードの調整済み)で同じベースを評価した場合のスコア(未実施)
- 乗り換えコストとベース実力の寄与を数値で分離した内訳(judgeの定性的な指摘までしか無い)
「強いベースに替えれば天井が上がる」という仮説
自社の対話ハーネスは本番構成のベースモデル上で調整を重ねており、7軸合議judge(Sonnet+Opusの盲検)で5.29という評価を得ていた。「別系統のより強いベースモデルに替えれば、この天井を超えられるのではないか」という仮説を立て、2026年6月に素交換のテストを行った(出所: 自社の運用記録、確認日2026-09-06)。
実測は5.29から2.93に悪化した
同じハーネスのまま、別系統の32Bクラスのベースモデルに差し替えて100ターン評価を行ったところ、7軸合議は2.93(Sonnet 2.9/Opus 3.0)まで悪化した(出所: 自社の運用記録、確認日2026-09-06)。「強いベースに替えれば天井が上がる」という仮説は、少なくとも素交換では支持されなかった。
低い理由の大半は交換コストだった
judgeの指摘を精査すると、低評価の大半は乗り換えに伴うコストで、ベース自体の実力を示すものではなかった。プロンプト形式や停止シーケンスが本番構成のベースに最適化されており、別系統のモデルでは話者タグの崩れなど書式面の破綻が起きていた。加えて、対象のベースモデルは本来thinkingモードでの利用を前提としており、リアルタイム応答の制約でthinkingを無効化した弱いモードでの評価になっていた。存在しない作品設定の混線や、口調が別キャラクターのものになるといった捏造・誤帰属も一部で見られ、こちらはベース自体の実力に由来する可能性がある(出所: 自社の運用記録、確認日2026-09-06)。
「ベースの実力」ではなく「乗り換えコスト」を測っていた
意図していたのは、別系統のベースモデルが持つ潜在能力を測ることだった。しかし実際に測っていたのは、本番構成に最適化された書式・サンプリング設定・注入形式を、別のベースにそのまま流し込んだときにどれだけ崩れるかという乗り換えコストだった。ハーネス側の改善による上乗せ分は本番ベース固有に最適化されており、別のベースでは再調整なしにパリティすら割ってしまう。この前提は、7月中旬に本番ベースの更新版を再テストした際にも裏付けられた。更新版では合議5.0(Sonnet 4.9/Opus 5.1)となり、現行の5.29と比べて改善は見られず、judgeの変動幅の範囲内にとどまったため採用を見送っている(出所: 自社の運用記録、確認日2026-09-06)。
別経路でも起きた—同じアーキ名の別バージョンが黙って載っていた事故
同じ「ベースの取り違え」は、別の作業でも別の形で起きた。通しセッション生成のスクリプトでモデルIDがハードコードされており、実際に読み込んでいたのは学習時に使ったバージョンと異なるバージョンのベースモデルだった。アーキテクチャ名が同一だったため、アダプタの読み込み処理は何のエラーも出さずに通っていた。生成された対話は「じわっと壊れた日本語」として現れ、当初はキャラクター性の退行や敬語化といった別の原因に帰属しかけた(出所: 自社の運用記録、確認日2026-09-06)。アーキテクチャ名が同じでも、学習時と推論時のバージョンが一致するとは限らない。
どう直したか・再発防止
素交換の評価については、公平な比較には話者タグ・停止シーケンスの整備、thinkingモードの扱いの統一、注入形式の再調整という3条件を揃える必要があると結論づけ、条件を揃えないままの短時間の素交換ではベースの実力を判定しないという運用にした。アーキ名の取り違え事故については、モデルIDを環境変数化してハードコードを排し、生成ログに実ロードのシャード数とトークナイザ/chat_templateのハッシュ値を記録し、アダプタの学習時ベース名と実ロード先の一致をassertする仕組みを追加している(出所: 自社の運用記録、確認日2026-09-06)。
学習指標だけでは対話の質を判断できなかったケースは姉妹記事「蒸留DPOの学習指標と対話評価が食い違った記事」に、合議judgeの片方が無言で欠落していた事故は「合議judgeの無言フォールバックを扱う記事」にまとめている。評価器自体が測定対象を見誤っていた別の事故は評価器が測定対象に盲だった記事を参照してほしい。
モデル選定と評価設計について相談したい場合は、お問い合わせから編集部まで連絡してほしい。
よくある質問
Q1. ベースモデルの素交換で評価はどう変わったか
7軸合議評価が本番構成の5.29から2.93まで悪化した(Sonnet 2.9/Opus 3.0)。
Q2. 悪化の理由はベースモデル自体の実力不足なのか
judgeの指摘では、低評価の大半は書式崩れやthinkingモード無効化といった乗り換えコストで、ベース自体の実力を示す部分は一部にとどまった。
Q3. 本番構成のベースモデルを新しい版に更新したらどうなったか
更新版で再テストしたところ合議5.0(Sonnet 4.9/Opus 5.1)となり、現行の5.29と比べて改善は見られず、judgeの変動幅の範囲内として採用を見送った。
Q4. アーキ名が同じ別バージョンが読み込まれる事故はどう防いだか
モデルIDを環境変数化し、生成ログに実ロードのシャード数とトークナイザ/chat_templateのハッシュ値を記録した上で、アダプタの学習時ベース名と実ロード先の一致をassertするようにした。