一貫性(Consistency)とは、AIモデルが同一または類似の入力に対して、複数回にわたって安定した品質・内容の出力を生成できる性質を指します。一貫性は精度とは独立した評価軸であり、高精度のモデルでも一貫性が低い場合、本番環境での信頼性確保が困難になります。
なぜ一貫性を評価するのか
Section titled “なぜ一貫性を評価するのか”LLMの出力は、サンプリング設定やモデル提供側の実装に影響されます。OpenAI APIのtemperatureパラメータは、値を高くすると出力がよりランダムになり、低くするとより決定的になる設定として説明されています。[1] この非決定性はクリエイティブ用途では有益な多様性をもたらしますが、業務システムにおいては次の問題を引き起こします。
- 下流処理の破綻: 出力フォーマットが変わると、後続の解析処理がエラーになる
- ユーザーの混乱: 同じ質問に異なる回答が返ると、どちらが正しいか判断できない
- デバッグの困難: 再現しない問題は原因特定が難しい
- 品質保証の困難: 一度合格した評価が次回は不合格になる
一貫性の評価は、これらのリスクを定量的に把握し、許容水準内であることを確認するために必要です。
一貫性の非決定性の源泉
Section titled “一貫性の非決定性の源泉”| 源泉 | 説明 | 対処方法 |
|---|---|---|
| 温度(Temperature) | 高いほどサンプリングが多様化する | 低温度設定(0〜0.3)で安定化 |
| サンプリング(Top-p / Top-k) | 確率分布の裾野をどこまで考慮するか | Greedy sampling(最尤選択)で最大安定化 |
| コンテキストウィンドウ位置効果 | 長いコンテキスト内での情報の重み付けが変化する | 重要情報を先頭/末尾に配置 |
| モデルの内部状態 | バッチサイズ・精度モードによる微小な計算誤差 | 同一サービングインフラで比較 |
評価すべき一貫性の4種類
Section titled “評価すべき一貫性の4種類”1. 事実的一貫性(Factual Consistency)
Section titled “1. 事実的一貫性(Factual Consistency)”同一の事実に関する問いに対して、複数回の実行で矛盾する回答を生成しないことを確認します。
例: 「ChatGPTはOpenAIが開発しましたか?」に対して、ある実行では「はい」、別の実行では「いいえ」と答える場合は事実的一貫性が低い。
2. フォーマット一貫性(Format Consistency)
Section titled “2. フォーマット一貫性(Format Consistency)”出力の構造・形式が繰り返しの実行でも安定していることを確認します。JSONスキーマのフィールド名・型・ネスト構造、マークダウンの見出しレベル、箇条書きの数などが該当します。
3. 行動的一貫性(Behavioral Consistency)
Section titled “3. 行動的一貫性(Behavioral Consistency)”同じ種類のタスクに対して、同様の推論アプローチ・判断基準を適用することを確認します。「A社の製品をB社の製品より優位に扱う」といった一貫しないバイアスも行動的一貫性の問題として現れます。
4. クロスセッション一貫性(Cross-Session Consistency)
Section titled “4. クロスセッション一貫性(Cross-Session Consistency)”同一セッション内でユーザーが述べた情報や選好を、セッション後半でも正しく参照できているかを確認します。特に長いコンテキストでの注意機構の劣化が問題になります。
一貫性の測定方法
Section titled “一貫性の測定方法”基本手順: 同一プロンプトを複数回実行し、出力のばらつきを計測します。
指標例
- 完全一致率: N回中、完全に同一の出力が返る割合(フォーマット評価向け)
- 意味的類似度: センテンスエンベディングのコサイン類似度(事実的一貫性向け)
- キーフィールド一致率: JSONの特定フィールドが同一値を返す割合(構造化出力向け)
- 判定一致率: 分類タスクでの判定の一致度(コーエンのκ係数で表現可能)
graph LR
I["同一プロンプト"]
I --> R1["実行 1"]
I --> R2["実行 2"]
I --> R3["実行 3"]
I --> RN["実行 N(10回以上)"]
R1 --> C["出力比較・集計"]
R2 --> C
R3 --> C
RN --> C
C --> S1["完全一致率"]
C --> S2["意味的類似度"]
C --> S3["キーフィールド\n一致率"]
C --> SC["一貫性スコア"]セルフコンシステンシープロンプティング
Section titled “セルフコンシステンシープロンプティング”セルフコンシステンシー(Self-Consistency)とは、同一問題に対して複数の推論経路をサンプリングし、最も一貫した回答を選ぶ手法です。Wang et al.(2022)は、Chain-of-Thought推論にSelf-Consistencyを組み合わせることで複数ベンチマークの性能改善を報告しました。[2]
仕組み
- 同じ問いを複数回サンプリングする
- 各回答の多数決または重み付き投票を行う
- 最も支持された回答を最終出力とする
効果: 単純な精度向上だけでなく、出力の信頼性スコアを「何割の実行が同じ結論に達したか」として定量化できる利点があります。
コストとのトレードオフ: 推論コストがN倍になるため、レイテンシ要件が厳しいリアルタイム用途には向きません。バッチ処理や精度最優先のタスクに適しています。
温度パラメータと一貫性の関係
Section titled “温度パラメータと一貫性の関係”| 温度設定 | 一貫性レベル | 多様性レベル | 適切な用途 |
|---|---|---|---|
| 低め | 高 | 低 | 構造化データ抽出、分類、定型フォーマット出力 |
| 中程度 | 中 | 中 | 一般的な質疑応答、解説文生成 |
| 高め | 低 | 高 | クリエイティブ文章、ブレインストーミング |
温度0の注意点: 温度0(Greedy Decoding)でも、APIの実装差・モデルバージョン変更・量子化精度の違いによって出力が変わる可能性があります。完全な再現性を保証するには、モデルバージョンのピン留めが必要です。
セッション内矛盾とは、同一会話の中でモデルが前後で異なる事実を述べる問題です。長いコンテキストでは注意機構がコンテキスト冒頭の情報を正確に参照できなくなる場合があります。
検出方法
- 会話ログから主張の一覧を抽出する
- 論理的に矛盾するペアをLLMまたはNLIモデルで検出する
- 矛盾発生率を指標として継続的に監視する
実用的な閾値
Section titled “実用的な閾値”一貫性の許容水準は用途によって異なります。
- 構造化出力(JSON・表): スキーマ違反が下流処理を壊さない水準
- 事実的回答(Q&A): 同一事実に関する矛盾が業務判断を妨げない水準
- 自由文生成: 意味のぶれが読者体験を損なわない水準
- 分類タスク: 判定のぶれが運用上の誤判定を増やさない水準
よくある質問
Section titled “よくある質問”Q: 一貫性を上げるために常に温度0を使うべきですか?
A: 一貫性だけを目的にするなら温度0が最も効果的ですが、一律には推奨しません。温度0のGreedy Decodingは局所最適に陥りやすく、特に複雑な推論タスクでは低品質な回答に固執することがあります。タスクの特性に合わせた温度設定(例: 構造化抽出は0、推論タスクは0.3〜0.5)が現実的です。セルフコンシステンシー手法を使えば、中温度設定でも高い信頼性を得られます。
Q: 時間の経過による行動変化(ドリフト)はどのようにテストしますか?
A: モデルのバージョンが変わらない場合でも、同一テストセットを定期的(週次・月次)に再実行し、指標の推移を追跡します。同一プロンプトに対するフォーマット・内容・長さの変化を記録するリグレッションテストパイプラインが有効です。また、APIプロバイダーがモデルを無通知でアップデートするケースがあるため、モデルバージョンをAPIレスポンスヘッダから記録することも推奨されます。
Q: 一貫性スコアが低い場合にまず確認すべきことは何ですか?
A: 以下の順で確認します。(1) 温度・サンプリングパラメータの設定値、(2) プロンプトの曖昧さ(複数の正しい解釈が可能な表現がないか)、(3) 出力フォーマットの明示的な指定の有無、(4) モデルバージョンの固定状態。多くの場合、プロンプトをより具体的・制約的にすることで一貫性は改善します。
- 業務適合性の評価 — 業務指標との接続
- AI評価フレームワーク — 評価ツールの比較
- OpenAI, Chat API reference - temperature
- Wang et al., Self-Consistency Improves Chain of Thought Reasoning in Language Models, 2022年3月21日