昨日と同じ質問をしたのにAIの回答が違っていて、原因を探しながらも落ち着いて向き合っている開発担当者

AIの回答が日によって変わる|再現性のなさと付き合う型

昨日、うまくいったんです。

同じプロンプトを投げて、いい感じの回答が返ってきて、「よし、これで行ける」とスクリーンショットまで撮った。翌日、上司に見せようともう一度同じことを聞いたら——返ってきた答えが違う。悪くはないけれど、昨日ほど的確じゃない。手元にあるのは、昨日のスクリーンショットだけ。

この気まずさ、AIを実務に持ち込んだことがある人なら、たぶん一度は味わっています。自分の設定ミスを疑って、プロンプトを一字一句見比べて、でもどこも変えていない。変わったのはこちらではなく、AIのほうです。

この記事は、その「毎回同じにならない」性質——再現性のなさとどう付き合うかの話です。ゼロにする方法はありません。でも、①揺れを減らす → ②揺れる前提で組む → ③揺れを説明できるようにする、この3つを押さえておけば、デモと本番のギャップも、上への説明も、ずいぶん楽になります。

結論:AIの回答が日によって変わるのは、故障でも設定ミスでもなく、仕組み上そういうものです。だから対処は3方向。①減らす——temperature(出力のばらけ具合を決めるつまみ)を下げる、モデルのバージョンを固定する、プロンプトを版で管理する、入力に日付や乱れた文脈を混ぜない。②前提にする——「毎回同じ文字列が返る」ことを期待した実装・テストをやめ、中身が満たすべき条件(必須項目がある・値が範囲内・禁止事項を含まない)で判定する。③説明する——上や発注元には「AIは検索ではなく確率で文章を組み立てるので、同じ入力でも表現は揺れます。だから結果の形と最低条件を決めて、そこを保証します」と伝える。要は「同じ答え」ではなく「同じ品質」を約束するに、目標を置き換えることです。

一度に全部やらなくて大丈夫です。 まずは「temperature を下げて、モデルのバージョンを固定する」。ここだけでも体感がかなり変わります。

何が起きているのか——「同じ入力=同じ出力」ではない

同じ質問から複数の少しずつ違う回答が生まれ、そのうち条件を満たすものだけを合格として扱う考え方を示した図
目指すのは「毎回同じ答え」ではなく「毎回、条件を満たす答え」。判定の線をどこに引くかを決めておく

まず、AIが気まぐれなわけでも、あなたの使い方が下手なわけでもない、という話から。

AI(大規模言語モデル)は、質問に対する答えをどこかから引っ張ってくるのではなく、次に来そうな言葉を確率的に選びながら文章を組み立てています。「次はこの語が来る確率が高い」という候補の中から、少しゆらぎを持って選ぶ。だから、同じ質問でも通る道が毎回わずかに違い、結果として表現や構成が変わります。検索エンジンのように、同じキーを引けば同じレコードが返る、という作りではないのです。

そのうえで、現場で「変わった」と感じる原因は、だいたいこのあたりに分かれます。

やっかいなのは、これらが同時に効いていることです。だから「なぜ変わったのか」を1発で特定しようとすると、たいてい行き詰まります。順番に潰していきましょう。

① 揺れを減らす——先に固定できるものを固定する

完全には消せませんが、揺れ幅を小さくする手はいくつもあります。効くものから順に。

ここまでで、「昨日と全然違う」レベルの揺れはかなり収まります。それでも残る細かい揺れは、次の②で受け止めます。

② 揺れる前提で組む——「同じ文字列」で判定しない

減らしても、ゼロにはなりません。だから実装とテストのほうを、揺れに強い形に変えます。ここが一番効きます。

言い方を変えると、目標を「毎回同じ答えを返す」から「毎回、決めた条件を満たす答えを返す」に置き換えるということです。この置き換えができると、揺れは事故ではなく、想定内の幅になります。

③ 揺れを説明できるようにする——デモと本番のギャップを埋める言葉

技術的に整えても、上や発注元への説明でつまずくことがあります。「先週見せてもらったやつと違うんだけど」と言われる場面ですね。ここは、言葉を先に用意しておくと落ち着いて話せます。

過度な期待と現実の差に挟まれるのは、正直しんどい仕事です。でも、「できること・できないこと」を先に言葉にしておいた人は、あとで一番信用されます。似た場面の言い方は「で、効果あったの?」AI活用の成果を数字で報告するコツにもまとめました。

明日からやること(まずこの3つ)

大がかりな作り込みは要りません。今日触れる範囲だけ。

  1. temperature を用途に合わせて見直す:決まった形の答えがほしい処理は、低めに寄せる。設定した値がいくつなのか、そもそも把握できていなければ、まず確認するところから。
  2. モデルの指定を、バージョン込みの名前に変える最新を指す指定になっていないか見る。変えたら、その版の提供終了予定を公式で確認してカレンダーに入れる。
  3. 評価用のサンプルを10件だけ作る:入力と「満たすべき条件」を10組。これが、揺れを測る最初の物差しになります。完璧な評価基盤は要りません。10件で十分に始まります。

この3つは、いちど作れば使い回せます。「なんとなく調子が悪い気がする」を、「10件中8件は通っている」に変えられるだけでも、ずいぶん気が楽になります。

AIの再現性と付き合うチェックリスト

全部に○が要るわけではありません。いま気になっている機能について、関係する所だけで十分です。

① 揺れを減らす

② 揺れる前提で組む

③ 説明できるようにする

この記事のまとめ

AIの回答が日によって変わるのは、あなたの設定ミスではありません。そういう仕組みのものを使っている、というだけの話です。

だから、直そうとするのではなく、付き合い方を決める。temperature とモデルの版を固定して揺れを減らし、テストと実装を「条件で判定する」形に変えて揺れを受け止め、上には「同じ答え」ではなく「同じ品質」を約束する。この3方向がそろうと、昨日と違う答えが返ってきても、慌てなくてよくなります

完璧な再現性は、そもそも手に入りません。手に入るのは、揺れても大丈夫な作りのほうです。

AIの回答の揺れを前提にした確認の仕組みを整えて、落ち着いた表情で次の作業に向かおうとしている開発担当者
揺れても大丈夫な形にしておけば、昨日と違う答えが返ってきても慌てなくていい

昨日のスクリーンショットと違う答えが返ってきた朝は、少し焦ります。 でも、そこで「おかしいな」と気づけたことこそが、揺れに強い作りを始める入口です。今日、temperature をひとつ見直せたなら、それで十分な前進です。

よければ、こちらも

関連用語