こんにちは、ネクストモードの平林です。
今回は、生成AIアプリケーションの安全性を高めるためのワークショップ
「Build trustworthy AI applications with Amazon Bedrock Guardrails [REPEAT] (AIM303-R1)」に参加してきました。
「AI に複雑な業務ルールを絶対に守らせたい」というのは悩み種だと思いますが、本セッションはその決定的な解になり得ると感じました。
コンソールでの手軽な検証から、コードベースでの本格的な実装まで体験し、すぐにでも現場で使いたくなる実践的な内容でした。
まずはセッションの基本情報です。
今回のワークショップは、下記の構成で進みました。
下記は自動推論がBedrock Guardrailsと統合し、生成AIアプリと対話するオーケストレーションフロー図です。
まずは基本となるAWSマネジメントコンソールを使った設定です。
Amazon Bedrock の Guardrailsメニューから、新しい自動推論チェックを含むガードレールを作成しました。
主な手順としては下記になります。
コンソール上で「どのような質問に対して、どう振る舞うべきか」を記述するだけで、
裏側で自動推論エンジンが働き、意図しない回答にフラグを立てられること確認できました。
Pythonを使用した、より実践的なAPIベースでの実装です。
空港ラウンジアクセスエージェントを想定したプログラムから自動推論チェックを構築・運用するフローを体験しました。
主な手順としては下記になります。
create_guardrail APIを使用し、読み込んだXMLルールを自動推論ポリシーとしてプログラム経由で設定しました。コンソールでの手軽さとは対照的に、こちらはXMLのような構造化データを「正解」として扱えるため、
複雑なビジネスルールも厳密に適用でき、かつアプリ開発のデプロイフローにそのまま組み込める実用性の高さを実感しました。
コードとしては下記のようなものを使用しました
import boto3
with open('lounge_specs.xml', 'r') as file:
lounge_specs_content = file.read()
response = bedrock_client.create_guardrail(
name="lounge-access-guardrail",
description="Guardrail for airport lounge access agent",
automatedReasoningPolicyConfig={
'description': 'Policy ensuring compliance with lounge access rules',
'statements': [
{
'statement': lounge_specs_content,
'type': 'CONTEXT'
}
]
},
blockedInputMessaging="Sorry, the model cannot answer this question.",
blockedOutputsMessaging="Sorry, the model cannot answer this question.",
)
guardrail_id = response['guardrailId']
print(f"Created Guardrail ID: {guardrail_id}")
最後は、ラボ1のリソースとラボ2の概念を統合し、Streamlitを使用したデモアプリケーションを実行しました。
単なるガードレールの挙動確認だけでなく、Amazon Bedrock Knowledge Basesと組み合わせた、より実践的なチャットボットの挙動を確認します。
主な手順としては下記になります。
Guardrail IDやバージョン、および事前に用意されたKnowledge Base IDを環境変数としてPythonコードに埋め込みます。このラボを通じて、Knowledge Basesが持つ「正確な情報検索」と、Guardrailsが持つ「厳格な出力制御」を組み合わせることで、
知識と安全性を両立した信頼性の高いAIアプリケーションが構築できることを体感できました。
※画像取得忘れていました。
Amazon Bedrock Guardrailsの自動推論チェック機能は、
空港以外にも金融や医療、厳密な契約・規約に基づく回答が必要な領域において、非常に強力な武器になると感じました。
精度としては従来のガードレールよりも厳密な制御が可能です
使いやすさでは自然言語でポリシーを記述できるため、専門的な数式の知識がなくても利用可能です
「AIに嘘をつかせたくない」「規約違反の案内を絶対に避けたい」というユースケースにおいて、この機能は必須の選択肢になりそうです。
このブログが、生成AIアプリケーションにおけるガードレール運用の自動化および最適化の参考になれば幸いです!