AIの回答が毎回違うのは、ほとんどの場合まったく正常なことで、記憶力が悪いわけではありません。本当の理由は大きく2つです。1つは、モデルが文章を生成する際にランダムに単語をサンプリングしているため、同じ質問を2回実行すれば単語の選択経路が変わるのは当然だということ。もう1つは、2回の質問の条件が変わっていること——新しいチャット、メモリ機能の有効化、バックグラウンドでのモデルバージョンの切り替えなど、入力が違えば答えが変わるのも当然です。
回答が違う3つの理由
第1に、サンプリングのランダム性です。大規模モデルは問題集から答えを引いてくるのではなく、一語ずつ「サイコロを振る」ように単語を選んでいます。専門的には temperature や top-p サンプリングと呼ばれます。このランダム性は仕様であり不具合ではないため、言い回しや例、構成が毎回変わるのは正常です。
第2に、コンテキストと記憶が違うことです。新しい会話には履歴がないため、モデルは質問を文字どおりにしか解釈できません。履歴のある会話では以前の要求を参照しますし、メモリ機能がオンなら過去に覚えた好みも反映されます。質問は同じに見えても、実際の入力は変わっているのです。2つの回答の差が大きいと感じたら、まず思い出してください。同じ会話の中で質問しましたか?同種の問題を扱ったこちらの記事では、ランダム性・コンテキスト・ツールの返答を分けて解説しています:同じプロンプトなのに毎回結果が違うのはなぜ?まずランダム性・コンテキスト・ツールの返答を見分けよう。
第3に、モデルのバージョンやルーティングが変わったことです。多くの製品はモデルをこっそり更新したり、リクエストを別のモデルに振り分けたりしています。同じ入口でも、前後でまったく別のモデルが回答している可能性があり、文体や細部がぶれるのは正常です。
安定した回答がほしい場合はこうする
- 比べる基準をそろえる:2つの回答を比べるときは「言い回し」ではなく「結論」を見る。言い回しが違っても答えが違うとは限りません。
- 制約をプロンプトに書き込む:出力形式・長さ・境界を明確にします。例:「3点で回答、各点2文以内、例はなし」。制約が具体的であるほど、ランダム性の余地は小さくなります。
- 長期的な好みを固定する:文体やコード規約のような継続的な要求は、毎回説明し直すのではなく、メモリやカスタム指示に保存します。
- モデルのバージョンを固定する:一貫性が求められる場面では、2回とも同じ具体的なモデルを使っていることを確認し、公式のモデル更新アナウンスにも注意します。
多角的な回答がほしい場合はこうする
- 聞き方を変えて複数回サンプリングする:「賛成と反対の両方の立場から1つずつ」や「さらに3つの異なる解法を」と直接要求します。
- 複数の回答の共通部分を取る:事実に関する内容は、複数回で一致している部分を信じる。一致しない部分は個別に検証し、どれか1回の回答をそのまま採用しない。
警戒すべきとき:これはランダムではなく「ハルシネーション・ドリフト」
正常なランダム性の範囲を超える不一致が2種類あり、注意が必要です。1つは、2つの回答が重要な事実で互いに矛盾している場合——日付・数字・人名が合わなければ、少なくとも一方は作り話です。もう1つは、同じ質問を繰り返すほど細部が増えるのに、どれも検証に耐えない場合——典型的なハルシネーションです。ハルシネーションがなぜ起きるかはこちら:AIハルシネーションとは?大規模モデルがなぜ真顔で間違えるのか。事実に関する質問では必ずクロスチェックを。根拠を求めるときは「不確かな部分は明確にマークして」と一言添えると、自信満々の作り話の大部分を除外できます。