Skip to main content
ガードレールは、LLM judges のスコアに基づいて、LLM アプリケーションの振る舞いに能動的に介入します。出力がユーザーに届く前にリアルタイムで実行され、スコアがしきい値を超えた場合は応答をブロックしたり変更したりできます。ガードレールを使用すると、有害なコンテンツをブロックしたり、応答に Personally Identifiable Information (PII) が含まれていないかをフィルターしたり、ユーザーからの不適切な入力をブロックしたりできます。

Weave ガードレールの仕組み

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

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

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

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

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

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

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

Weave を AWS Bedrock Guardrails と統合する

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