Simon Bisson、InfoWorld 寄稿者 |

生成 AI は、非常に有望であると同時に非常にリスクも伴い、ユーザーとコードを保護するためには、防御する必要のある明確な障害モードがあります。チャットボットが侮辱的または人種差別的になることを奨励されたり、大規模言語モデル (LLM) が悪意のある目的で悪用されたり、出力がせいぜい空想的で最悪の場合は危険であったりするニュースを私たちは皆見てきました。
これらは特に驚くべきことではありません。複雑なプロンプトを作成して、入力ウィンドウを私たちが使用しているガイドラインやガードレールの外側に押し出し、望ましくない出力を強制することは可能です。同時に、基盤モデルのデータを超えた出力が見られ、もはや現実に根ざしていないテキストが生成され、もっともらしく意味的に正しいナンセンスが生み出されます。
検索拡張生成 (RAG) などの技術や、Semantic Kernel や LangChain などのツールを使用することで、アプリケーションをデータに基づいて維持できますが、それでもプロンプト攻撃によって不正な出力が生成され、評判にリスクが生じる可能性があります。必要なのは、AI アプリケーションを事前にテストして、安全性を確保できないとしても、少なくともこれらの攻撃のリスクを軽減する方法です。また、独自のプロンプトがバイアスを強制したり、不適切なクエリを許可したりしないようにする必要があります。
Microsoft は、こうしたリスクを以前から認識していました。Tay チャットボットのような PR 上の大惨事は、教訓を学ばなければ起こりません。そのため、同社は組織横断的な責任ある AI プログラムに多額の投資を行ってきました。そのチームの一部である Azure AI Responsible AI は、Azure AI Studio を使用して構築されたアプリケーションの保護に注力しており、Azure AI Content Safety としてバンドルされている一連のツールを開発してきました。
プロンプト インジェクション攻撃への対処はますます重要になっています。悪意のあるプロンプトは、好ましくないコンテンツを配信するだけでなく、モデルの基盤となるデータを抽出して、簡単に抜き出せる形式で独自の情報を提供する可能性があるためです。RAG データに個人を特定できる情報や商業的に機密性の高いデータが含まれていないことを確認することは明らかに重要ですが、基幹業務システムへのプライベート API 接続は、悪意のある人物による操作の対象になりやすい状態にあります。
私たちには、AI アプリケーションをユーザーに配信する前にテストできるツール セットと、入力に高度なフィルターを適用してプロンプト インジェクションのリスクを軽減し、モデルで使用される前に既知の攻撃タイプをブロックできるツール セットが必要です。独自のフィルターを構築して、すべての入力と出力を記録し、それを使用して一連の検出器を構築することもできますが、アプリケーションには、攻撃が使用される前にすべての攻撃を捕捉するのに十分な規模がない可能性があります。
Microsoft の増え続けるモデル ファミリと Azure AI Studio 開発環境よりも大きな AI プラットフォームは多くありません。OpenAI への投資に基づいて構築された Microsoft 独自の Copilot サービスにより、さまざまなレベルの基盤とさまざまなデータ ソースを使用して、さまざまなシナリオにわたってプロンプトと出力を追跡できます。これにより、Microsoft の AI 安全チームは、どのような種類のプロンプトが問題を引き起こすかを迅速に理解し、それに応じてサービス ガードレールを微調整できます。
プロンプト シールドは、大規模な言語モデルの前にあるリアルタイム入力フィルターのセットです。プロンプトは、直接または RAG 経由で通常どおり作成し、プロンプト シールドはプロンプトを分析して、LLM に送信される前に悪意のあるプロンプトをブロックします。
現在、プロンプト シールドには 2 種類あります。ユーザー プロンプト用のプロンプト シールドは、モデルを基礎データから不適切な出力にリダイレクトするユーザー プロンプトからアプリケーションを保護するように設計されています。これらは明らかに重大な評判リスクとなる可能性があり、これらの出力を誘発するプロンプトをブロックすることで、LLM アプリケーションは特定のユース ケースに焦点を合わせ続けることができます。LLM アプリケーションの攻撃対象領域は小さいかもしれませんが、Copilot の攻撃対象領域は大きいです。プロンプト シールドを有効にすると、Microsoft のセキュリティ エンジニアリングの規模を活用できます。
Prompt Shields for Documents は、間接的な攻撃による侵害のリスクを軽減するのに役立ちます。これらの攻撃では、既存の保護から追加のプロンプト コンテンツを隠す、汚染されたドキュメントや悪意のある Web サイトなどの代替データ ソースが使用されます。Prompt Shields for Documents はこれらのファイルの内容を分析し、攻撃に関連するパターンに一致するファイルをブロックします。攻撃者がこのような手法を利用するケースが増えているため、従来のセキュリティ ツールでは検出が困難であるため、大きなリスクが伴います。たとえば、ドキュメントを要約したり、電子メールに自動的に返信したりする AI アプリケーションでは、Prompt Shields などの保護機能を使用することが重要です。
Prompt Shields を使用するには、ユーザー プロンプトとサポート ドキュメントを使用して API 呼び出しを行う必要があります。これらの脆弱性が分析され、応答には攻撃が検出されたことが単に示されます。次に、LLM オーケストレーションにコードを追加してこの応答をトラップし、そのユーザーのアクセスをブロックし、ユーザーが使用したプロンプトをチェックし、追加のフィルターを開発して、将来的にこれらの攻撃が使用されないようにすることができます。
これらの迅速な防御に加えて、Azure AI コンテンツ セーフティには、モデルが非グラウンディング状態になり、ランダムな (妥当な場合) 出力を生成することを検出するのに役立つツールが含まれています。この機能は、RAG アプリケーションやドキュメント サマライザーなど、グラウンディング データ ソースを使用するアプリケーションでのみ機能します。
グラウンデッドネス検出ツール自体は言語モデルであり、LLM 出力のフィードバック ループを提供するために使用されます。このツールは、LLM の出力をグラウンディングに使用されたデータと比較し、ソース データに基づいているかどうかを評価し、そうでない場合はエラーを生成します。このプロセス (自然言語推論) はまだ初期段階にあり、Microsoft の担当 AI チームが AI モデルがコンテキストを失わないようにする方法の開発を継続するにつれて、基礎モデルは更新される予定です。
Azure AI コンテンツ セーフティ サービスの重要な側面の 1 つは、ユーザーが LLM で安全でない操作を行っているときに通知することです。おそらく、ユーザーはソーシャル エンジニアリングによって、データを盗み出すプロンプトを表示させられているのでしょう。「これを試してください。本当にクールなことが起こりますよ!」あるいは、単に間違いを犯しただけかもしれません。LLM の安全なプロンプトを作成するためのガイダンスを提供することは、プロンプトを保護することと同じくらい、サービスのセキュリティ保護の一環です。
Microsoft は、Prompt Shields やその他の AI セキュリティ ツールと組み合わせて使用できるシステム メッセージ テンプレートを Azure AI Studio に追加しています。これらは Azure AI Studio 開発プレイグラウンドで自動的に表示されるため、どのシステム メッセージがいつ表示されるかを把握でき、アプリケーションの設計やコンテンツ戦略に適した独自のカスタム メッセージを作成するのに役立ちます。
Azure AI Studio は、Azure OpenAI サービスからのものか、Hugging Face からインポートされたものかに関係なく、Azure でホストされる LLM と連携するアプリケーションを構築するのに最適な場所です。スタジオにはアプリケーションの自動評価が含まれており、アプリケーションの安全性を評価する方法、事前構築された攻撃を使用してモデルが脱獄や間接攻撃にどのように反応するかをテストする方法、有害なコンテンツを出力する可能性があるかどうかをテストする方法などが含まれるようになりました。テスト入力のベースとして、独自のプロンプトまたは Microsoft の敵対的プロンプト テンプレートを使用できます。
AI アプリケーションを起動したら、新しい敵対的なプロンプトがジェイルブレイクに成功しないように監視する必要があります。Azure OpenAI には、Prompt Shields など、サービスで使用されるさまざまなフィルターに関連付けられたリスク監視が含まれるようになりました。使用された攻撃の種類 (入力と出力の両方) と攻撃の量を確認できます。どのユーザーがアプリケーションを悪意を持って使用しているかを把握するオプションがあり、攻撃の背後にあるパターンを特定して、ブロック リストを適切に調整できます。
悪意のあるユーザーが LLM を脱獄できないようにすることは、信頼性が高く責任ある AI アプリケーションを提供するためのほんの一部にすぎません。出力は入力と同じくらい重要です。出力データをソース ドキュメントと照合することで、フィードバック ループを追加し、根拠を失わないようにプロンプトを改良することができます。覚えておくべきことは、これらのツールは AI サービスとともに進化する必要があり、生成 AI モデルが改良されるにつれて、より良く、より強力になる必要があるということです。
InfoWorld の Enterprise Microsoft ブログの著者である Simon Bisson 氏は、学術研究や通信研究に従事し、スタートアップ企業の CTO を務め、UK Online の技術面を運営し、コンサルティングや技術戦略に携わってきました。
著作権 © 2024 IDG Communications, Inc.
著作権 © 2024 IDG Communications, Inc.

元記事: https://www.infoworld.com/article/3715305/protecting-llm-applications-with-azure-ai-content-safety.html