メインコンテンツへスキップ
ガードレールは、LLM judges のスコアに基づいて、LLM アプリケーションの振る舞いに能動的に介入します。出力がユーザーに届く前にリアルタイムで実行され、スコアがしきい値を超えた場合は応答をブロックしたり変更したりできます。ガードレールを使用すると、有害なコンテンツをブロックしたり、応答に個人を特定できる情報 (PII) が含まれていないかをフィルターしたり、ユーザーからの不適切な入力をブロックしたりできます。 このガイドでは、Weave ガードレールの仕組みやパフォーマンスの調整方法に加え、組み込みの Scorer、カスタム Scorer、AWS Bedrock Guardrails を使用して本番環境の LLM アプリケーションを保護する例を紹介します。

Weave ガードレールの仕組み

Weave ガードレールは、インラインの Weave Scorers を使用して、ユーザーからの入力や LLM の出力を評価し、LLM の応答をリアルタイムで調整します。さまざまな目的でコンテンツを評価するために、カスタムScorerを設定することも、組み込みScorer を使用することもできます。このガイドでは、両方のタイプのScorerをガードレールとして使用する方法を説明します。 アプリケーションの制御フローを変更せずに本番トラフィックを受動的にスコアリングしたい場合は、代わりに モニター を使用してください。 モニターとは異なり、ガードレールはアプリケーションの制御フローに影響するため、コードの変更が必要です。ただし、ガードレールによるScorerの結果はすべて自動的に Weave のデータベースに保存されるため、追加の設定なしでガードレールはモニターとしても機能します。過去のScorer結果は、元の用途にかかわらず分析できます。
Weave TypeScript SDK は、ガードレールの設定に必要なツールをサポートしていません。

Weave ガードレールのパフォーマンスを最適化する

ガードレールはアプリケーションの制御フローを中断し、応答の内容を変える可能性があるため、複雑になりすぎるとパフォーマンスに影響することがあります。最高のパフォーマンスを得るには、次の推奨事項に従ってください。
  • ガードレールのロジックはシンプルかつ高速に保つ
  • よく使われる結果をキャッシュする
  • 負荷の高い外部 API call は避ける
  • 初期化コストの繰り返しを避けるため、ガードレールはメイン関数の外で初期化する
特に、次のような場合はガードレールをメイン関数の外で初期化することが重要です。
  • Scorerが ML モデルを読み込む場合
  • レイテンシが重要なローカル LLM を使用している場合
  • Scorerがネットワーク接続を維持する場合
  • トラフィックの多いアプリケーションを扱う場合

例: 組み込みの モデレーション Scorer を使用してガードレールを作成する

次の例では、ユーザーの prompt を OpenAI の GPT-4o mini モデルに送信します。次に、モデルのレスポンスを OpenAI の モデレーション Scorer API に渡して、LLM のレスポンスに有害または不適切なコンテンツが含まれているかどうかを評価します。モデルのレスポンスはガードレール関数 (generate_safe_response()) に渡され、この関数は OpenAIModerationScorer を使用して LLM の元のレスポンスを確認します。その後、関数のロジックで OpenAI の評価レスポンスにある passed フィールドの真偽値を確認し、その値に応じてアプリケーションの応答を決定します。
LLM-as-a-judge scorers を使用する場合、スコアリング用のプロンプトで ops の変数を参照できます。たとえば、“{output}{ground_truth} に基づいて正確かどうかを評価してください。“のように指定できます。詳細については、prompt variablesをご覧ください。

例: カスタム Scorer を使用してガードレールを作成する

以下の例では、LLM の応答に含まれるメールアドレス、電話番号、社会保障番号などの個人を特定できる情報 (PII) を検出するカスタム ガードレールを作成します。これにより、生成コンテンツに機密情報が含まれて公開されるのを防げます。generate_safe_response 関数は、カスタム PIIDetectionScorer を適用します。

Weave を AWS Bedrock Guardrails と統合する

AWS ですでにコンテンツポリシーを管理している場合は、設定されたポリシーに基づいてコンテンツを検出してフィルタリングするために AWS Bedrock Guardrails を使用する BedrockGuardrailScorer を使用して、それらを Weave に適用できます。 Bedrock Guardrails のインテグレーションを設定する前に、次のものが必要です。 Bedrock クライアントを自分で作成する必要はありません。Weave が自動的に作成します。リージョンを指定するには、Scorer の bedrock_runtime_kwargs パラメーターにリージョンの値を渡します。 AWS Bedrock でガードレールを作成する方法の例については、Bedrock guardrails notebook を参照してください。 次の例では、結果をユーザーに返す前に、テキスト生成を AWS Bedrock Guardrails のポリシーに照らしてチェックします。