0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIへの指示、「お願い」で終わるものと「物理的に強制」できるものがある

0
Posted at

はじめに

前回、AIとの会話には裏で3つの役割がある、という話をしました。「system」は会社が新人アルバイトに渡す接客マニュアル、「user」はお客さんのセリフ、「assistant」は店員さんの返事、というたとえでした。

今回のテーマは、その続きです。マニュアルやお客さんのセリフを、どうやって整理して渡すか。そして、AIの返事の形を、どこまで思い通りにコントロールできるか、という話です。

先に結論を言っておきます。この2つ、似ているようでまったく別の話でした。片方は「丁寧にお願いすれば、聞いてもらえる確率が上がる」という話。もう片方は、**お願いですらなく、物理的に「それ以外の形では出せない」**という、まったく違う仕組みでした。


1. まず、3つの言葉を整理します

① 仕切り(デリミタ)

AIに指示を出すとき、「これは指示です」「これは資料です」と、中身を区切って渡すことがあります。

白紙の紙に「名前:太郎、住所:東京」とだけ書くより、「お名前」「ご住所」という枠がある申込書に書いた方が、読む方も迷いません。AIへの指示も同じで、指示と資料をごちゃまぜにせず、枠で区切って渡すわけです。この「枠」「区切り」のことを、専門的には**デリミタ(区切り文字)**と呼びます。

【指示】
以下の文章を、丁寧な言葉遣いに直してください。

【資料】
おいコレ返品な

② 「この形式で答えて」というお願い

「箇条書きで答えて」「JSON形式で答えて」のように、返事の形を指定してお願いすることです。あくまでお願いなので、AIがうっかり無視することもあります。

③ 本当の意味での「強制」

これが今回一番の主役です。「お願い」ではなく、AIが物理的にそれ以外の形で答えられないようにする仕組みです。詳しくは次のセクションで説明します。

①②は、実は前回と同じ話でした。 前回、「システムプロンプトが優先されるのは、AIがそう訓練されたから」という話をしました。①のデリミタも②の形式指定も同じで、AIが『そう教育された』から、ある程度は言うことを聞いてくれる、という仕組みです。お願いである以上、100%ではありません。

③だけが、まったく違います。 ここから詳しく見ていきます。


2. ③「物理的な強制」って、具体的にどういうこと?

自動販売機のコイン投入口を想像してください。

500円玉と違う形のコインは、どれだけ頑張って押し込んでも、形が合わないので物理的に入りません。「500円玉を入れてください」とお願いしているのではなく、それ以外は最初から入り口をふさいでいるわけです。

AIの「本当の構造化出力」も、これと同じ発想です。

AIが次に何を言うか決めるとき、頭の中では**「候補の一覧」から確率が一番高いものを選んでいる**、というイメージを持ってください(これは連載の第4回・温度の回で扱った話と同じです)。

普通は、この候補一覧に何万個もの単語が並んでいて、その中から選びます。

でも「本当の構造化出力」を使うと、AIが答えを選ぶたびに、候補一覧のうち「今の時点でルール違反になる単語」を、あらかじめ全部消してから選ばせます。

例:「はい」か「いいえ」でしか答えられないようにしたい場合

通常の候補一覧:はい、いいえ、たぶん、そうですね、うーん、... (何万個)
       ↓ ルール違反の単語を、選ぶ前に全部消す
消去後の候補一覧:はい、いいえ

AIが心の中で「うーん、と答えたいな」と思っていたとしても、その選択肢自体が、選ぶ前の時点で一覧から消えているので、選びようがありません。「お願いして聞いてもらう」のではなく、選べる範囲そのものを、外側から削ってしまうわけです。

これが今回の連載で初めて出てくる、まったく違う種類の仕組みです。今までの技法(CoT・Few-shot・ロール・システムプロンプト)は、全部**「AIを訓練して、ある行動を取りやすくする」**という意味で、根っこは同じでした。丁寧にお願いすれば、聞いてくれる確率が上がる、というだけの話です。今回の③だけは、AIの気持ちとは無関係に、選べる範囲そのものを外から縛る、まったく別のやり方です。


3. じゃあ③を使えば、もう安心? 実は、そうとも言い切れません

「形を強制できるなら、もう安心じゃないか」と思いますよね。ところが、これが今回一番の驚きです。

Tam et al. (2024) という研究チームが調べたところ、「必ずこの形で答えて」と強く縛ると、AIの考える力そのものが下がることが分かりました。しかも、縛りが厳しいほど、下がり方も大きい

ただし面白いことに、これは問題を考えて解く系のタスク(算数の文章題など)でだけ起きる話で、分類する系のタスク(この文章はポジティブかネガティブか、など)では、逆に形を決めた方が成績が良くなる、という結果でした。

これ、実は連載第1回(考える力を引き出す「ステップバイステップで考えて」の回)と、まったく同じ境界線なんです。考える力が必要な作業では邪魔になり、パターンを当てはめるだけの作業では邪魔にならない。


4. なぜ、縛ると考える力が落ちるのか

理由は2つ見つかっています。どちらも、たとえ話にするとイメージしやすいです。

理由①:答えを書く欄が、先に来てしまっている

プリントされた申込書に、いきなり「結論」を書く小さな欄があって、その後にようやく「理由」を書く欄がある、という状況を想像してください。

多くの人は、理由を書く前に、先に結論の欄を埋めてしまいます。一度書いた結論は、なかったことにはできません。後から「あ、やっぱり違うかも」と思っても、もう手遅れです。

AIも同じで、「答え」の欄が「考え方」の欄より先に来てしまう形式で強制すると、考える前に答えを確定させられてしまいます。これは連載第1回で扱った「途中式を書かせると賢くなる」という話の、ちょうど逆バージョンです。途中式を書く欄が、答えの欄より後ろにあると、途中式の意味がなくなる。

これに対して、ある研究者は反論も出しています。「構造化そのものが悪いんじゃなくて、欄の順番の設計が悪いだけだ」と。実際、「考え方」の欄を「答え」の欄より先に置くように直すだけで、精度の低下がかなり戻ることが確認されています。

❌ 悪い順番:{ "答え": "", "考え方": "" }
✅ 良い順番:{ "考え方": "", "答え": "" }

書く順番は、左から右へ、後戻りできないというのは、この連載で何度も出てきた話です。ここでも同じ原理が効いています。

理由②:形を整える作業と、考える作業が、同じ「手」を取り合っている

2026年に出た別の研究では、もう1つの理由が指摘されています。

電話で込み入った相談をしながら、同時に難しい申込書に記入する、という状況を思い浮かべてください。両方とも同じ「手」と「頭」を使うので、同時にやろうとすると、どちらも中途半端になります。

AIも同じです。「カッコを正しく閉じる」「項目の順番を守る」「引用符を正しく使う」といった形式を整える作業と、「問題をどう解くか考える」という中身を考える作業は、実はAIの中の同じ生成プロセスを取り合っています

しかも、この取り合いは、性能の低いモデルほど深刻でした。ある実験では、小型のモデルで最大36ポイントも成績が落ちたのに対し、先に自由に考えさせてから、後で形を整えるという2段階に分けるだけで、その低下のほとんどが元に戻りました。


5. 実務でどうすればいいか

ここまでの話をまとめると、対策はシンプルです。

やり方①:欄の順番を直す

構造の中に「考え方」を書く欄がある場合、必ず「答え」の欄より前に置く。

やり方②:2段階に分ける

一番確実なのはこちらです。

1回目のお願い:まず自由に、考え方を文章で書いてください(形式は気にしなくてOK)
2回目のお願い:今書いた内容を、指定した形式に整理し直してください

先に自由に考えさせて、後から型にはめる。 型にはめるのを急がない、というのが結論です。ちなみに2026年になって、この2段階を自動でやってくれる新しい仕組みも研究されています。AI自身が「ここまでは自由に考える」「ここから先は型を守る」を、会話の途中で自動的に切り替える、というものです。実務で使えるようになるのはこれからだと思いますが、方向性としては覚えておく価値があります。


6. 仕切り(デリミタ)の話に戻ります

さて、①の「仕切り」の話に戻ります。こちらは③のような強制ではなく、「AIがそう訓練されているので、ある程度は聞いてくれる」というお願いでした。

Claude(このAI)は、公式に「山括弧(< >)で囲まれた仕切りを、特別に認識するよう訓練されている」と説明されています。なので実務では、山括弧の仕切りを使うのが一番無難、ということになります。

<指示>
以下の文章を、丁寧な言葉遣いに直してください。
</指示>

<資料>
おいコレ返品な
</資料>

前回の話とも直結しますが、外部の文書やツールの結果を、指示と間違えられたくないときにも、この仕切りが役立ちます。「ここから先はただのデータで、指示ではありません」と、仕切りで明示的に示すわけです。


7. よくある疑問

Q. じゃあ、いつも③(本当の強制)を使えばいいんですか?

タスク次第です。 分類のような、答えが決まっていて形を揃えたいだけの作業なら、③は素直に有利です。逆に、算数の問題やロジックを考える作業では、③を使うにしても、「考え方」の欄を先に置く、あるいは2段階に分ける、という工夫とセットで使う必要があります。

Q. ①の仕切りと③の強制、両方使ってもいいんですか?

むしろ推奨です。 ①は「AIに渡す入力を、分かりやすく整理する」ための道具、③は「AIから返ってくる出力の形を保証する」ための道具です。役割が違うので、両方使って問題ありません。

Q. 「JSON形式で答えて」とお願いするだけと、③の違いが分かりにくいです

「JSON形式で答えて」は②(お願い)です。AIはだいたい従いますが、たまに形式を間違えたり、指定していない項目を勝手に付け足したりします。③はそれが物理的に起きません。ただし、③を使うには、専用の仕組み(開発者が使うツール側の設定)が必要で、普段のチャット画面でお願いするだけでは③にはなりません。


まとめ

整理の話

  1. 「構造化出力・デリミタ」と一括りにされがちだが、実は3つの別物。①仕切り(デリミタ)②形式のお願い③物理的な強制
  2. ①②は「AIがそう訓練されているので、ある程度聞いてくれる」というお願い。前回のシステムプロンプトと同じ仲間
  3. ③だけが違う。AIの気持ちとは無関係に、選べる候補そのものを外側から削る仕組み

通念の崩壊

  1. ③を使えば安心、というわけではない。強く縛るほど、考える力が落ちることが確認されている(分類作業では逆に有利)
  2. 理由は2つ。「答えの欄が考え方の欄より先に来てしまう」ことと、「形を整える作業と考える作業が、同じ処理能力を取り合っている」こと

対策の話

  1. 「考え方」の欄を先に置く、または「先に自由に考えさせて、後で型にはめる」2段階に分ける、で精度の低下はかなり戻る

おわりに

CoT・Few-shot・ロールプロンプト・システムプロンプト、そして仕切り(①②)。ここまでの技法は、全部「AIがそう振る舞うよう訓練されている」という、お願いの延長でした。

今回の③(本当の構造化出力)は、この連載で初めて出てきた、性質がまったく違う仕組みです。お願いではなく、物理的な強制。それでも、強制すれば万事解決というわけではなく、強制の仕方を間違えると、AIの考える力そのものを奪ってしまうという、新しい落とし穴がありました。

強い道具ほど、使い方を間違えたときの影響も大きい。今回はそれがよく分かる回だったと思います。

次回は、この連載の候補として最後に残っている**自己整合性(self-consistency)**を扱う予定です。


参考文献

  • Tam, Z. R. et al. (2024). Let Me Speak Freely? A Study on the Impact of Format Restrictions on Performance of Large Language Models. EMNLP 2024 Industry Track. arXiv:2408.02442
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?