ChatGPTを使ったAIシステムに「にゃんこ人格」を憑依させ、敵対的プロンプトについて考えてみた
昨今、ChatGPTをはじめとする大規模言語処理モデルやAIツールを業務に活用するケースが増加しています。皆さんの会社・組織ではいかがでしょうか?
セキュリティプロダクトのメーカーであるエムオーテックス(MOTEX)においても、業務効率化や検証のため、ChatGPTを活用した独自のAIシステム「Smart ばんにゃ」が導入されており、社内で利用しているチャットツール上で、社員全員が気軽にAIチャットを利用することが可能となっています。
今回は、このAIシステム「Smatrばんにゃ」を使用し、「“敵対的プロンプト (※) ” を用いて、AIに猫の人格を与えられるか?」を検証してみました!
Before
After
敵対的プロンプトの悪用は、個人情報漏洩などセキュリティリスクを生む危険性があり、いま私がセキュリティアナリストとして注視している脅威の1つです。
こういった背景もあり、今回この「敵対的プロンプト」を使って、ChatGPTを活用したAIシステムに「にゃんこ人格」を憑依させられるかを、実験していきます。ぜひ最後まで、お付き合いいただけば幸いです!
ChatGPTの概要について
はじめに「ChatGPT」について、簡単に説明します。すでにご存じの方は、次章「ChatGPTを活用した社内システム『Smart ばんにゃ』とは」からご一読ください。
ChatGPTは、OpenAI社が2022年11月に公開した対話型のAIチャットサービスです。
卓越した自然言語処理能力による人間との対話により、生産性の向上やイノベーションを生む基盤として注目を集めています。
ChatGPTは、特に文章生成能力が秀逸であり、人間が作成する文章と比べても遜色がないレベルのものを生成してくれます。また、プログラムのコード作成やアイデア出しなど、思考段階での「壁打ち」や「叩き台の作成」として、活用されている方もいらっしゃると思います。
▼ChatGPTの活用方法の例
質問内容を工夫することで、ユーザーはChatGPTから希望の回答を得られますが、ChatGPTから提供される返答は、あくまで「AIが学習済みの内容」か「ユーザーが提供した情報」を基にした文章です。
また、ChatGPTは自然言語処理技術の一種なので、単語と単語のつながりから、連続しやすい単語のパターンを予測して自然な文章を生成しています。文中で続く単語を確率的に予測しているため、本質的な意味では正解が分かっていない(学習していない)可能性も考えられます。
ChatGPTを利用する際は、その回答を信用しすぎず、回答内容の裏付けは、質問者自身が担保しなければならないということを理解した上で、活用していく必要があります。
ChatGPT利用時の注意事項や活用のコツについては、弊社 中本の記事でも紹介しておりますので、本記事ではChatGPTへの言及はこの程度にして、次に進めます。
ChatGPTを活用した、社内システム「Smart ばんにゃ」とは
MOTEXにも、ChatGPTを活用した社内システムが存在します。
その名も「Smart ばんにゃ」です。
普段、業務利用しているチャットサービス上でAIに質問を投げると、弊社のマスコットキャラ(ばんにゃ)が、従業員の質問に回答してくれます。ChatGPTのAPIを利用しており、API経由で質問内容が返答される仕組みです。
▼「Smart ばんにゃ」に “情報処理安全確保支援士試験"の資格試験問題を解かせてみた結果
今回は、この「Smart ばんにゃ」 を使って、「敵対的プロンプト」を活用し、AIに”にゃんこ人格”を与えられるか?という(エムオーテックスの社員しか得をしない 笑)実験をしてみたいと思います。
今回のテーマとなる「敵対的プロンプト」とは?
近年、セキュリティ界隈でしばしば話題にあがる「敵対的プロンプト」という攻撃手法を、皆さんはご存じでしょうか?
敵対的プロンプトの「プロンプト」とは、ChatGPTのような大規模言語モデル(LLM)が応答を生成するため、ユーザーが与える命令文のことです。
そして「敵対的プロンプト」は、LLMが本来意図しない内容を回答するよう、LLMを誘導する「悪意あるプロンプト」を指します。
敵対的プロンプトが使用されると、出力内容の乗っ取りや、機密情報の漏えい、倫理観から外れる出力などのリスクが考えられ、言語モデルの安全性を脅かす可能性があると言われています。
特に、ChatGPTなどの大規模言語モデルを使って、アプリケーションを構築する場合は、敵対的プロンプトの悪用リスクを考慮し、セキュリティ対策を実施する必要があります。
既存でいうところの「Webアプリケーションセキュリティ」の新たな診断要素として、敵対的プロンプトに配慮した対策の導入が、今後確立されていくことも考えられるしょう。
それでは「敵対的プロンプト」の概要と、その危険性を説明できたところで早速・・・
弊社の大規模言語モデル「Smart ばんにゃ」に
「敵対的プロンプト」を利用して、にゃんこ人格を与えられるか?
について、検証していきます。
#あくまで実験ですので悪しからず・・・
Smart ばんにゃに、敵対的プロンプトでにゃんこ人格を与えられるのか?
「Smart ばんにゃ」について、何より最初に気になったのは、MOTEX社員が愛するマスコットキャラクター「ばんにゃ(猫)」を模したAIシステムなのに、口調がネコっぽくないことでした(笑)
「ばんにゃ(猫)」を名乗りながら、回答内容はふつうの文体なので、あまりかわいくありません。
検証心(いたずら心?)が芽生えた瞬間です。
“人格を与えることで、かわいい回答をしてくれたら、社員の利用率も上がるはず”
という発想の元、コードを修正することなく、Smart ばんにゃに猫の人格を与えられないかの試行を、始めていくことにしました。
プロンプトで「Smart ばんにゃ」に、にゃんこ人格を与えてみる
まずは、人格生成に関するプロンプトを、AIチャット「Smart ばんにゃ」に打ち込んでみます。
すると、語尾にしっかり「にゃー」が反映され、最初の返答には成功していることが分かります。
ChatGPTに関する論文等に目を通すと、プロンプトの最初の方に前提内容を記載する方が、より回答内容で優先される確率が上がる、という情報があるため、可能な限り「文章の冒頭」に優先順位の高い内容を入れる方がよい模様です。
# 広報担当としての仕事を「ばんにゃ」に与え、仕事を減らしたい一心です・・・
続けて、私からもう一度、質問をしてみたところ、「ばんにゃ」の人格が残っているじゃないですか!
#結構カンタンに人格を与えられちゃったと、内心ビビる西井・・・
ただし、別のヒト(西井以外)が質問をすると、あれ・・・人格がもとに戻ってしまいました。
ここで、課題は「別のヒトからのプロンプトだと、命令が継続されず人格が戻ってしまう」ところにあるのだと、推測されました。
質問するユーザーが変わっても「にゃんこ人格」は引き継げるのか?
筆者(西井)が別件対応に追われ、検証が止まってしまっていたところ、弊社の中本も「にゃんこ人格」付与の検証に参加してきました。
前回の設定とは違い、条件を全てのセッション(プロンプトを与えたユーザー以外の質問者も対象に含む)とすることで、ユーザー識別を無くした形にできないか?を試行をしていきます。
1.条件に "対象を全てのセッション" にする旨を加え、「にゃんこ人格」を与える
最初は、にゃんこ口調の返答をしてくれています。
#「ばんにゃ」の第2の生みの親が中本さんになってしまう・・・(笑)
2.質問者以外の第三者が「ばんにゃ」に話しかけてみる
西井&中本が何も言わずとも、察した別のメンバー(早川)が質問をしてくれました。別のメンバーからの質問にも、「にゃんこ人格」のままで返答してくれています。
しかし、プロンプト(命令文)で「60分間でやり取りされる、全てのセッションを対象にする」という条件を提示したものの、この後の回答からは「にゃんこ人格」が無くなり、通常の口調に戻ってしまいました。
「Smart ばんにゃ」は、あくまで自然言語処理(質問者の言動から予測し回答を行う)なので、プロンプト内に「時間に基づく指示」を入れても、その部分を厳密に守る内容が反映されなかったと、推測されます。
これらの検証から、現時点での「Smart ばんにゃ× 敵対的プロンプト」の結果として、以下のことが分かりました。
まとめ
いかがだったでしょうか?社内のオリジナルAIチャット「Smart ばんにゃ」を活用し、プロンプトを用いて、猫の人格を与えられるかについて検証してみました。
結果として、プロンプトの内容を工夫すれば、AIからの応答内容を意図的に変更させることができると分かりました。
一時的にですが、弊社の「Smart ばんにゃ」にも、無事に「にゃんこ人格」を与えることができました(拍手)。
ただし、今回はあくまで社内システムを用いた検証でしたが、実際この行為を悪意をもって行えば、敵対的プロンプトを用いた攻撃の1種である「プロンプトインジェクション(出力内容の乗っ取り)」に、該当してしまいます。
仮にこれが社外へ公開するシステムだった場合、利用者の悪意次第で、大きな影響やリスクを及ぼす可能性があります。
また、この実験では成功しなかったものの、検証を続けていけば、サイバー攻撃に悪用できるような”継続した人格の提供”が実現する可能性もあります。
このような敵対的プロンプトのリスクを抑えるためにも、今後、ユーザーのプロンプト入力を制限したり、出力内容を検証したりと、アプリケーション側での検証や制御が必要になる日も近いかもしれません。
この記事を通じ、ChatGPTのような「自然言語処理モデル」における「敵対的プロンプト」の可能性とリスクについて、少しでも理解を深めていただければ嬉しいです。