Weave ガードレールの仕組み
Weave ガードレールは、インラインの Weave Scorer を使用して、ユーザーからの入力または LLM からの出力を評価し、LLM の応答をリアルタイムで調整します。カスタム Scorer を設定するか、組み込み Scorer を使用して、さまざまな目的でコンテンツを評価できます。このガイドでは、両方のタイプの Scorer をガードレールとして使用する方法を説明します。 本番トラフィックをアプリケーションの制御フローを変更せずにパッシブにスコアリングしたい場合は、代わりに モニター を使用してください。 モニターとは異なり、ガードレールはアプリケーションの制御フローに影響を与えるため、コードの変更が必要です。ただし、ガードレールからのすべての Scorer 結果は Weave のデータベースに自動的に保存されるため、ガードレールは追加の設定なしでモニターとしても機能します。元々どのように使用されたかに関係なく、過去の Scorer 結果を分析できます。Weave TypeScript SDK は、ガードレールを設定するために必要なツールをサポートしていません。
Weave ガードレールのパフォーマンスを最適化する
ガードレールはアプリケーションの制御フローを中断し、応答の流れを変える可能性があるため、複雑すぎるとパフォーマンスに影響を与えることがあります。最適なパフォーマンスを得るには、以下の推奨事項に従ってください:- ガードレールのロジックを最小限かつ高速に保ちます。
- 一般的な結果をキャッシュします。
- 重い外部 API 呼び出しを避けます。
- 繰り返しの初期化コストを避けるため、ガードレールをメイン関数外で初期化します。
- Scorer が ML モデルを読み込む場合。
- ローカル LLM を使用していてレイテンシーが重要な場合。
- Scorer がネットワーク接続を維持する場合。
- 高トラフィックのアプリケーションがある場合。
例: 組み込みのモデレーション Scorer を使用してガードレールを作成する
以下の例では、ユーザー プロンプトを OpenAI の GPT-4o mini モデルに送信します。モデルの応答は、LLM の応答に有害または毒性のあるコンテンツが含まれているかどうかを評価するため、OpenAI の moderation API に渡されます。モデルの応答は guardrail 関数 (generate_safe_response()) に渡され、この関数は OpenAIModerationScorer を使用して LLM の元の応答をチェックします。関数のロジックは、OpenAI の評価応答で passed フィールドの boolean をチェックし、アプリケーションがどのように応答するかを決定します。
{output} が {ground_truth} に基づいて正確かどうかを評価します。」 詳細については、prompt variables を参照してください。
Example: Create a guardrail using a カスタム Scorer
以下の例では、LLM の応答 (メールアドレス、電話番号、社会保障番号など) に含まれる 個人を特定できる情報 (PII) を検出する custom ガードレールを作成します。これにより、生成されたコンテンツに機密情報が露出するのを防ぎます。generate_safe_response 関数は、custom PIIDetectionScorer を適用します。
Weave を AWS Bedrock Guardrails と統合する
AWS でコンテンツポリシーをすでに管理している場合は、Weave でBedrockGuardrailScorer を使用して適用できます。この Scorer は AWS Bedrock Guardrails を使用して、設定済みのポリシーに基づいてコンテンツを検出およびフィルターします。
Bedrock Guardrails のインテグレーションを設定する前に、以下が必要です。
- Bedrock へのアクセス権を持つ AWS アカウント。
- AWS Bedrock コンソールで設定済みのガードレール。
boto3Python パッケージ。
bedrock_runtime_kwargs パラメーターにリージョン値を渡してください。
AWS Bedrock でガードレールを作成する方法の例については、Bedrock guardrails notebook を参照してください。
次の例では、テキスト生成を AWS Bedrock Guardrails のポリシーに対してチェックしてから、ユーザーに結果を返します。