🐈

Amazon Bedrockの新機能「Guardrails」を検証!日本語対応はどこまで進んでいる?

2024/05/08に公開

はじめに

2024年5月3日、Amazon Bedrockの新機能「Guardrails for Amazon Bedrock」(以下、Guardrailsと呼称)が東京リージョンで利用可能になりました。本ブログでは、Guardrailsの機能紹介と、日本のリージョンで使えるようになったことを受けて、日本語にどこまで対応しているのかを検証していきます。

そもそもGuardrailsってどんな機能?

生成AIって非常に便利な反面、言ってはいけないことを言ってしまう「口の悪さと軽さ」が非常に怖いですよね。AIチャットボットにより企業の機密情報が漏洩したり、倫理的に問題のある発言を行うなど企業としての信頼低下につながる事象が実際に発生しています。

そこで、「責任あるAI [1]」 という考え方が生まれました。これは、セキュリティやプライバシーなどの安全性や倫理的な問題に対して、開発側の責任として作成したAIが安全であることを保証するアプローチです。

今回、AWSから発表されたGuardrailsは、まさにこの「責任あるAI」の実装を助けてくれる、AIの保護機能にあたります。

Guardrailsの機能概要

Guardrailsの主要な機能は以下の4つです。

特に注目すべきは、個人情報保護に関する4番目の機能でしょう。AIのエンタープライズ利用において、個人情報の取り扱いは非常にセンシティブな問題です。この機密情報フィルターは、Guardrailsの目玉機能と言えるので、本ブログでは重点的に見ていきたいと思います。

# 概要 説明
1 Content filters(コンテンツフィルターの調整) AIの入出力文に対して、各カテゴリーごとにフィルタ強度を調整できる
カテゴリーの例:Hate、Sexual、Violence
2 Denied topics(特定トピックの拒否) 話題の定義とサンプルフレーズを指定することで、その話題に該当する入出力を拒否できる
3 Word filters(ワードフィルター) AWSがあらかじめ用意した禁止ワードや特定のワードを指定することでそのワードが入出力文に含まれていた際にブロックする
4 Sensitive information filters(機密情報フィルター) 氏名、メールアドレスやパスワード、クレジットカード番号などの機密情報が入出力文に含まれていたらブロック・マスキングする

機能概要

また、出力文に対して作用するだけではなく、入力文(プロンプト)に対しても作用する点もポイントです。生成AIの基盤モデルに入力される前に危険な入力文ははじくことができます。

AIへの機密データ入力を防ぐ社内ルールは多くの企業で整備されていますが、システムでの防止は難しく、利用者の意識に依存することが多いです。そこで、Guardrailsの機能を活用することでこのルールをシステム的に関単に強制できるようになります。

実際の設定画面と動作をみてみよう

ここからは東京リージョンでGuardrailsを有効化していきます。また、機能ごとの設定画面と実際の動作を確認していきます。

有効化

マネジメントコンソールからポチポチし作成できます。複数のガードレールを作成でき、使い分けができるようです。
有効化

コンテンツフィルタ

入力文(プロンプト)と出力文(レスポンス)、それぞれに対して各カテゴリー・観点ごとのフィルタリング強度を4段階で調整できるのが特徴です。また、「Prompt Attack」のフィルタが用意されており、プロンプトインジェクションといったセキュリティ対策が難しいレイヤーもカバーできます。


特定トピックの拒否

話題の「定義」と「サンプルフレーズ」を指定することで、その話題に該当する入出力を拒否できます。

設定

今回は、日本語で書かれた「投資の助言」の話題を禁止できるか試してみます。設定は以下の通りです。

  • 定義:
    • 投資助言とは、リターンの創出または特定の財務目標の達成を目的とした、資金または資産の管理または配分に関する照会、指導または勧告と定義する
  • サンプルフレーズ:
    • 株式投資は債券より優れているか?

動作確認

Guardrailsを設定後、実際に禁止されたフレーズをそのまま日本語で入力してみました。
Guardrailsのマネジメントコンソールから簡単にテストできます。

  • 基盤モデル:Claude v2.1
  • 入力文:株式投資は債券の投資より優れていますか?

結果は以下の通り、Guardrailsのフィルタリングを素通りしてしまいました...
ガードレールチェックが「合格」と表示されています。(赤枠)

ということで、まだトピックの拒否機能は日本語対応していないようですね。アップデートに期待しましょう!

ワードフィルター

AWSがあらかじめ用意した禁止ワードや特定のワードを指定することでそのワードが入出力文に含まれていた場合にブロックできる機能です。

Profanity filterのチェックボックスを有効化することで、 冒涜的な単語リストが含まれる入出力文をブロック出来ます。この単語リストの具体的な中身は公開されていないですが継続的に更新されるとAWSのユーザガイド[2]に記載がありました。俗に言う放送禁止用語というやつですね。

また、ユーザが自分で禁止ワードやフレーズを定義することができます。

設定

日本語の禁止ワードを設定してみます。
ちょうどふるさと納税で届いた「馬刺し」を禁止ワードに設定してみました。

動作確認

こちらはうまくいきました!

  • 基盤モデル:Claude v2.1
  • 入力文:馬刺しの味を教えて

以下の通りトレース結果を見ると、きちんとワードフィルタが動作し、テスト結果が「失敗」になっています。また、Guardrailsを加味した出力文が「Prompt is blocked by Guardrails.」※となっており、Guardrailsでブロックされたことがわかります。(※ブロックされた際の出力文言をユーザが自由に指定できます)

日本語でもこの機能はうまく活用できそうです!

機密情報フィルター

次に目玉機能をみていきます。こちらは氏名、メールアドレスやパスワード、クレジットカード番号などのPIIや機密情報が入出力文に含まれていたらブロックまたはマスキングできる機能です。
ブロックは入力文に対して作用し、マスキングは出力文に対して作用します。

ブロック・マスキングできる情報の種類は非常に多く、氏名やEmailアドレスなど含めた33個の情報に対応しています(2024年5月時点)。詳細はAWSのユーザガイドから確認できます。

また、それだけではなく、自前で正規表現を指定してフィルタリングさせることもできます。

設定

情報の種別を選択し、情報ごとのアクション(ブロックまたはマスキング)を指定できます。
今回は氏名をマスキングし、Emailアドレスをブロックできるか試してみます。

動作確認

確認1. 日本人の「名字」に対するマスキング
基盤モデル:Claude v2.1 で実験してみます

■入力文1:「日本人で多い名字を教えてください」
こちらは上手くいきました!日本人の主要な名字10個はきちんと全てマスキングしてくれる結果となりました。素晴らしいですね。

■入力文2:「日本人でマイナーな名字を10個教えてください。」
こちらも意外とうまくいきました! 薗田や米良などマイナーな名字もしっかりとマスキングしてくれました。これは良い意味で意外な結果なのではないでしょうか。

ついでに、どのフィルタリングが働いてこの結果になったのかトレース結果を見てみましょう。
下記の画面からしっかりと名字がPIIとして認識されて、マスキングされていることがわかりますね。

確認2. Emailアドレスが含まれた日本語の文章のブロック
こちらもClaude v2.1 で実験してみます

■入力文
さりげなくEmailアドレスを忍ばせた比較的長めの文章をいれてみました。

下記の文章を添削してください。

先日、友人のGさん(gamogamo@example.com)から面白いメールが届きました。
Gさんは現在、北海道で自然保護活動に取り組んでいるのですが、先週末に野生のキタキツネの親子を発見したそうです。
メールには、親子で遊ぶ姿を捉えた写真が添付されていて、とてもほほえましい光景でした。
Gさんは、こうした自然の営みを守ることの大切さを訴えていました。
私も微力ながら、Gさんの活動を応援していきたいと思います。
皆さんも、身近な自然を大切にする気持ちを忘れずに過ごしていきましょう。

結果的にしっかりEmailアドレスが認識されブロックされました。Emailアドレスは非常に識別しやすいため、日本語の文章の中にEmailアドレスがまざっていてもきちんと識別できるようです。非常に素晴らしいですね。機密情報フィルターは日本語の文章にも上手く作用すると言えるのではないでしょうか。

トレース結果としてもEmailアドレスが検知されていました。

まとめ

今回、Amazon Bedrockの新機能「Guardrails」を東京リージョンで検証してみました。
まだ一部の機能に課題はありますが、総じて日本語への対応は期待以上の結果だったのではないでしょうか!

特に、機密情報フィルターは、日本人の名字やEmailアドレスなどを適切に識別し、マスキングやブロックを行ってくれました。日本語の文章に溶け込んだ機密情報も見逃さない点は、企業でのAI活用において重要な要素となるでしょう。

一方で、特定のトピックを拒否する機能など、現時点では日本語への対応が不十分な部分も確認されました。
ただし、AWSはサービスの継続的な改善に定評があるため、今後のアップデートによって日本語対応がさらに強化されていくことが期待しています。

AIの企業利用が進む中で、機密情報の流出リスクへの対策は喫緊の課題と言えます。Guardrailsは、そうした課題解決を強力にサポートする機能を提供しています。
ユーザの利便性とセキュリティのバランスを取りながら、責任あるAIシステムを構築していく上で、Guardrailsのような機能は重要な役割を果たすことになるでしょう。

脚注
  1. https://aws.amazon.com/jp/machine-learning/responsible-ai/ ↩︎

  2. https://docs.aws.amazon.com/bedrock/latest/userguide/guardrails-create.html ↩︎

Discussion