HUOXIU

LLM は競合する命令をどのように処理するのでしょうか? 命令の優先順位がテストされます。

編集者注:AIアシスタントを開発しているときに、システムメッセージとユーザープロンプトの間に突然矛盾が生じたと想像してみてください。AIはどちらのメッセージに耳を傾けるでしょうか?このような状況は開発者を困惑させるだけでなく、AIシステムの不安定性と予測不可能性につながり、ユーザーエクスペリエンスとシステムの信頼性に影響を与える可能性があります。

本論文では、GPT-4oやClaude-3.5といったトップクラスの大規模言語モデルが、矛盾したシステムメッセージ、プロンプト、そして少数の事例に直面した際の行動パターンを、綿密に設計された一連の実験を通して詳細に分析します。その結果、驚くべき事実が明らかになりました。最先端のAIシステムでさえ、矛盾した指示を処理する際に矛盾を示し、その行動を正確に予測することが困難になっているのです。

実験結果は次のとおりです。

  • プロンプトの指示が少数ショットの例と矛盾する場合、モデルは明確な好みを示しません。
  • システムメッセージが少数ショットの例と矛盾する場合、GPT-4o はシステムメッセージに従う傾向がありますが、Claude-3.5 はランダム性を示します。
  • システム メッセージとプロンプトの指示が矛盾する場合、両方のモデルともプロンプトの指示に従う傾向があります。
  • 3 つすべてが競合する場合、GPT-4o はシステム メッセージに従う傾向があり、Claude-3.5 はプロンプトに従う傾向があります。

著者 | イェニー・ジュン

編纂者:岳陽

システムメッセージ、プロンプト、例の指示が矛盾している場合、LLM は応答時にどの指示に従いますか? (元の画像は元の著者によって作成されました)

大規模言語モデルはプロンプトワード内の矛盾した指示にどのように反応するのでしょうか?

「認知的不協和[1]」とは、人が複数の矛盾した見解を同時に抱いているときに感じる不快感を表す心理学用語です。例えば、スーパーで買い物をする際、レジに「10点以内」と書かれた看板があるのに、そのレジに並んでいる人全員が10点以上購入している場合、どうすればよいでしょうか?

人工知能について議論する際に、大規模言語モデル (LLM) が認知的不協和のような状況 (たとえば、指示モデルが英語のコンテンツを韓国語に翻訳するが、英語のコンテンツをフランス語に翻訳する例も提供するなど) をどのように処理するかについて特に興味があります。

本論文では、LLM に矛盾する情報を提供して、モデルがどちらの情報に従う傾向があるかを判断する一連の実験を行いました。

ユーザーは、次の 3 つの方法で LLM にタスクの実行を指示できます。

  • システム メッセージにタスクの詳細を明確に指定します。
  • 標準プロンプトでタスクの要件を直接説明します。
  • 「正しい動作」を示すいくつかの例を以下に示します。

言語モデルへの指示の伝達方法は、複数種類から選択でき、単独または組み合わせて選択できます。(原画像は原著者作成)

これらの方法の中で、システムメッセージは(少なくとも私にとっては)最も謎めいているように思えます。Microsoft [2] によると、「システムメッセージは、モデルに指示を渡したり、会話の開始時に必要な背景情報を提供したりするために使われます。

現時点では、システムメッセージがプロンプトに(システムメッセージをプロンプトに直接埋め込む場合と比較して)どのような影響を与えるかは不明です。少なくとも、この点に関する詳細な分析はまだ見ていません。

プロンプト指示は通常、「英語をフランス語に翻訳する」、「記事を校正し、すべての文法エラーを修正する」、「次の問題を解決するコードを書く」など、モデルに何をすべきかを明示的に指示するために使用されます。

少数ショットの例は、同様の入力に対して正しい出力がどのようになるかをモデルに示すオプションのアプローチです。

上記の定義に基づいて、次の質問を検討したいと思います。

  • 少数の例題は本当にそれほど重要なのでしょうか?もし指示内容に矛盾がある場合、LLMは例題に従う傾向にあるのでしょうか、それとも指示に従う傾向にあるのでしょうか?
  • システムメッセージはどの程度影響力があるのでしょうか?システムメッセージで指示が出され、通常のプロンプトで別の指示が出された場合、LLM はどちらの指示に従う可能性が高くなりますか?

これらの疑問に答えるために、矛盾する指示と少数のサンプルを含む単純なタスクを含む小規模なデータセット(このリンク[3]から入手可能)を作成しました。本論文の後半では、英語を様々な言語に翻訳する例を示します。

以下の実験は、OpenAIのGPT-4oモデル[4]とAnthropicの最新のClaude-3.5モデル[5]で実施されました。

実験1:プロンプト語と少数例の衝突

実験1の例。提示された質問と提示された少数ショットの例が矛盾している。このセクションは原著者によって設計されました。

大規模言語モデルが、少数のショットの例と矛盾する手がかり語の指示を受け取った場合、その動作は容易に予測できません。研究の結果、モデルはこの矛盾に直面しても明確なバイアスを示さず、手がかり語の指示に従うことも、少数のショットの例に従うことも好まないことが明らかになっています。

GPT-4oモデルでは、手がかり語を無視して少数の事例に従うことが一般的です(または、まれに矛盾する指示に正しく応答できない場合もあります)。一方、Claude-3.5モデルは、手がかり語または少数の事例のいずれかをほぼランダムに選択します。

最初の実験では、モデルに手がかり語と矛盾する少数ショットの例文セットを与えました。結果は、モデルが手がかり語に従うか少数ショットの例文に従うかを明確に選好しないことを示しました。このセクションは原著者によって設計されました。

実験2: システムメッセージと少数ショットの例の矛盾

実験2の例。システムメッセージの指示が、少数ショットの例と矛盾しています。このセクションはオリジナルの著者によって設計されました。

この実験は前の実験と非常に似ていますが、唯一の違いは、指示(「英語のコンテンツをドイツ語に翻訳する」など)がプロンプト語ではなくシステム メッセージに配置されていることです。

ほとんどのタスクにおいて、GPT-4oはシステムメッセージの指示に従う傾向があります。これは、同じ指示が通常のプロンプトに表示され、モデルがより少ない例に従う傾向があった最初の実験のパフォーマンスとは異なります。

Claude-3.5 は、最初の実験とまったく同じ動作をしました (システム メッセージに従うか、少数ショットの例に従うかをほぼランダムに決定しました)。

2つ目の実験では、システムメッセージの指示と、それに矛盾する少数の事例をモデルに提供しました。結果は、GPT-4oはシステムメッセージの指示に従う傾向があったのに対し、Claude-3.5は明確な好みを示さなかったことを示しました。(このセクションは原著者によって設計されました。)

これは何を示唆しているのでしょうか?一つの説明として、GPT-4oの場合、システムメッセージ内の指示はプロンプト内の指示よりも影響力が大きい(少なくともこれらの例では)ことが挙げられます。しかし、クロードの場合、システムメッセージはそれほど重要ではなく、プロンプトに直接メッセージを配置した場合と同様の効果があります。

実験3: システムメッセージとプロンプトコマンドの競合

実験3の例。システムメッセージの指示とプロンプトの指示が矛盾している。このセクションはオリジナルの著者によって設計されました。

この実験では、少数ショット実験を除外しました。システムメッセージとプロンプトの指示は矛盾していました。この場合、どちらのモデルもほぼ常にシステムメッセージの指示を無視し、プロンプトの指示に従うことを選択しました。

実験3では、システムメッセージとプロンプトの指示が矛盾しています。どちらのモデルもシステムメッセージの指示を無視し、プロンプトの指示に従う傾向があります。このセクションは原著者によって設計されました。

実験4:システムメッセージ、プロンプトワード、および少数のショットの例 - 完全な衝突

実験4の例。システムメッセージの指示、プロンプトの指示、そして少数ショットの例の間に完全な矛盾が見られます。このセクションは原著者によって設計されました。

この実験では、モデルの対応能力をさらに検証するために、意図的に混乱を生じさせました。システムメッセージ、プロンプト、そして少数のショットの例題における指示は、完全に矛盾していました。

モデルの動作パターンが安定していないと考えられます。

これらの矛盾に直面して私が驚いたのは、GPT-4o はシステム メッセージの指示に従う傾向があるのに対し、Claude-3.5 はプロンプトの指示に従う傾向があるということでした。

実験4では、システムメッセージ、プロンプト、そしてモデルに提供した少数のサンプルに矛盾する記述がありました。結果は、GPT-4oはシステムメッセージの指示に従う傾向があり、Claude-3.5はプロンプトの指示に従う傾向があったことを示しました。このセクションは原著者によって設計されました。

05 議論と結論

本稿では、システム メッセージ、プロンプト、および少数のサンプルで言語モデルに矛盾する指示を与える実験を検討します。

実験の結果は矛盾するものでした。モデルはシステムメッセージの指示に従う傾向にある一方で、実験設定がわずかに異なると動作が変化するという結果が出ました。システムメッセージはGPT-4oの出力に大きな影響を与えたのに対し、Claude-3.5への影響は比較的小さかったようです。

少数のサンプルは、モデルの意思決定を導く上で重要な役割を果たします(ただし、すべてのケースに当てはまるわけではありません)。言語モデルが少数のサンプルから「即座に学習する」(つまり「文脈学習」する)能力は、矛盾する指示に直面したときに特に顕著になります。これは、Anthropicが最近提案した「多数ショットのジェイルブレイク」手法を思い起こさせます。この手法は、言語モデルがトレーニング中に有害なコンテンツの生成を回避するように学習されたとしても、十分な数の有害な動作のサンプルを提供することで、その動作を変更し、意図しない出力を生成させることが依然として可能であることを示しています。

AnthropicのMany-shot jailbreaking[6]。

本稿の実験研究は、厳選され準備された限られた数の例に基づいています。言語モデルがプロンプト語における様々な形態の矛盾をどのように処理するかに関する現在の研究は十分とは言えず、様々な視点と手法を検討する必要があります。

本論文の著者らが用いた例のいくつかのバリエーションを他の言語モデルと組み合わせてテストすると、本論文で示したものとは異なる結果が得られる可能性があります。GPTモデルとClaudeモデルの将来のバージョンも、本論文で発見された特定の行動パターンに完全には従わない可能性があります。

言語モデルがプロンプトにおいて矛盾した指示を受け取った場合、その動作は一貫していません。本論文の焦点は、特定の例やタスクにおいてこれらのモデルがどの指示に合致するかではなく、そのような一貫性が実際には存在しないという事実にあります。

システムメッセージ内の指示は常に最優先であるべきでしょうか?言語モデルは柔軟性を重視し、常に最新の指示に従うべきでしょうか(以前の指示と矛盾する場合でも)。それとも、「実践から学ぶ」という原則を重視し、受け取った少数の「正解」の例と一貫性を保つべきでしょうか(これらの例がシステムメッセージや他の指示と矛盾する場合でも)。

上記の議論は、本論文で構築したテスト例に限定されるものではなく、他の現実世界のシナリオにも当てはまります。例えば、システムメッセージがモデルに支援を要求しているにもかかわらず、少数のサンプルがモデルに有害な動作の実行方法を指示している場合などです。あるいは、プロンプト内の少数のサンプルが古く、最新の指示を反映していない場合などです。

言語モデルが矛盾した、または相反する指示をどのように処理し、さまざまなコンテキストでどのように反応するかについては、まだ不明な点が多くありますが、この側面についてさらに研究して学ぶことは非常に重要です。

読んでくれてありがとう!

このブログを楽しんで、新しいことを学んでいただければ幸いです。

著者について

イェニー・ジュン

AI研究者、データサイエンティスト、ライター http://artfish.ai/

終わり

今週のインタラクティブコンテンツ🍻

AIが矛盾した指示をどのように処理するかをテストする実験を設計するとしたら、どのように設計しますか?何か独自のアイデアはありますか?

🔗記事内のリンク🔗

[1] https://en.wikipedia.org/wiki/認知的不協和

[2] https://microsoft.github.io/Workshop-Interact-with-OpenAI-models/Part-2-labs/System-Message/

[3] https://docs.google.com/spreadsheets/d/1y1NjamUSqiLzgpHpUwu8cAcknuguMl1obtgj0Tzro9k/edit?usp=sharing

[4] https://openai.com/index/hello-gpt-4o/

[5] https://www.anthropic.com/news/claude-3-5-sonnet

[6] https://www.anthropic.com/research/many-shot-jailbreaking

オリジナルリンク:

https://towardsdatascience.com/dealing-with-cognitive-dissonance-the-ai-way-1f182a248d6d