プロンプトに条件を足し続けるのは今日からやめなさい:条件を10個に増やした週、返金の依頼が窓口に届いた

担当者が、問い合わせの振り分けをAIに任せた。プロンプトには、こう書いた。

もし返金の依頼なら経理へ。ほかの問い合わせは窓口へ。

条件は、少しずつ増えた。十個まで書き足した週のことだ。

返金の依頼が、窓口に届いた。

最初に書いた一行は、消えていない。十個まで丁寧に書いた条件は、なぜ守られなかったのか。

条件を書き足すほど、後ろから抜け落ちる

複数の性能試験(ベンチマーク)で、共通の結果が出ている。指示の数や複雑さが増えるほど、すべてを守る精度が落ちる。

ManyIFEvalという試験は、精度の落ち方を指示の呪いと名づけた。分岐を重ねると、後ろのほうの条件が抜け落ちる。

十個目の条件を足した週の事故は、偶然ではない。

プロンプトの上では、十個の条件はすべて並んでいる。並んでいることと、守られることは別だ。

条件を足すほど安全になる、という感覚は逆である。足すたびに、大事な一行が埋もれていく。

足した条件を負かす、AIが学習で見慣れた問題の型

抜け落ちる理由は、数だけではない。

Misguided Attentionというベンチマークがある。有名な思考実験の前提だけを少し変えて出題する。

2025年1月の第0.3版の説明は、狙いをこう書く。多くのAIは、学習データで頻繁に見た元の問題と取り違える。

AIは、細部を追わずに、元の問題の解き方で答える。

トロッコ問題で、線路の先の5人がすでに亡くなっている、と書き換えた問いがある。素直に読めば、レバーを切り替える理由はゼロだ。

それでも、多くのモデルは5人と1人の命を比べる話を始める。

プロンプトに足した新しい条件は弱いシグナルで、学習データで見慣れた問題の型は強いシグナルです。多くのモデルは強いほうに引っ張られます

足した条件は、弱いシグナルだ。見慣れた型は、強いシグナルだ。

失敗は、偶然の産物と別物である。強いシグナルに引かれて、体系的に起きる。

返金の依頼が窓口に回った理由も、同じ構図で説明がつく。

条件が単純なら、AIは守る。指示が増えるか、見慣れた型に似るかすると、条件より型が勝つ。

AIの「もし」は、プログラムの「もし」と別物だった

では、AIは条件文をそもそも正しく扱えるのか。

プログラムの条件分岐(if文)は、条件を記号として評価する。処理は、必ずどちらかに進む。

プロンプトでは、もしAならX、ほかの場合はY、と書く。AIは、学習した大量の文章の型から、もっともらしい続きを作る。

AIが返す分岐は、条件付きの文章の型を再現した結果にすぎない。

米国の研究者ホリデイらは、2024年11月の自然言語処理の国際会議EMNLP 2024で論文を出した。

29のAIの言語モデル(大規模言語モデル、LLM)を、条件文や「かもしれない」を含む推論で試した。

結果は厳しい。すべてのモデルが、基本的な誤りを犯した。

一歩ずつ考えさせる指示で、誤りは減った。最も優れたモデルでも、基本的な誤りは残った。

大事な振り分けを、AIの「もし」だけに預けてはいけない。答えは、プロンプトの外にある。

もう一つのやり方は、外部での分岐だ。AIには、入力の分類だけをさせる。

分類の結果を受けて、プログラムのif文が次の処理を選ぶ。実務向けのLLMアプリの基盤では、外部での分岐が標準である。

分岐をどこに置くかで、確実さに差がつく

1〜2分岐の単純な分岐なら、プロンプトの中で書ける。手順は三つある。

一つ目に、条件ごとに、何をするかを具体的に結びつける。

二つ目に、どの条件からも外れた入力に向けて、既定の動きを書く。入力があいまいなときは、聞き返す分岐を入れる。

三つ目に、分岐を一歩ずつ解いた例を見せる。途中の推論を書かせる方法と、例を見せる方法を組み合わせた形だ。

組み合わせた形は、プロンプトの中でとれる対策の中で最も堅い。

振り分けや大事な意思決定には、プロンプトチェーンを使う。プロンプトチェーンとは、複数のプロンプトを順につなぐ仕組みを指す。

最初のプロンプトでは、分類だけを一語で答えさせる。一語の答えを受けて、プログラムが次のプロンプトを選ぶ。

AIは、文脈を読める分類器として使う。次のプロンプトのかっこの中を、自分の業務に書き換えて使う。

次の問い合わせを、下の分類のどれか一つに分けてください。
答えは、分類名の一語だけにしてください。
分類:(例:返金、配送、故障、その他)
迷う場合:(例:要確認)
問い合わせ:(ここに本文を貼ります)

どこまでをAIの言葉の理解に任せるかは、頼む人が先に決める。線を引いておけば、振り分けを誤ったときに原因を探せる。

十一個目の条件を書く前に

十一個目の条件を書き足す手を、いったん止める。

AIには、返金の依頼かどうかだけを一語で答えさせる。「返金」の一語を受けて、if文が経理へ回す。

返金の依頼を経理へ回すのは、長い条件の列ではない。AIの一語とif文の組み合わせだ。

拙著『ChatGPT はじめてのプロンプトエンジニアリング』を読むと、条件を書き足す前に、何を頼み、どんな背景を渡し、どんな形式で返してもらうかというプロンプトの骨組みを整えられるようになります。社内の研修や講演で取り上げる場合は、講演と研修の案内をご覧ください。

出典

著者プロフィール・お問い合わせ