この機能は Python SDK からのみ利用できます。
組織によっては、大規模言語モデル (LLM) のワークフローで、氏名、電話番号、メールアドレスなどの個人を特定できる情報 (PII) を扱うことがあります。こうしたデータを W&B Weave に保存すると、コンプライアンスやセキュリティ上のリスクが生じます。ログする前にこれらのデータを削除しておけば、エージェントを GDPR や HIPAA などの規制に準拠させやすくなります。
Sensitive Data Protection 機能を使用すると、Weave が トレース を Weave サーバーに送信する前に、トレースから個人を特定できる情報 (PII) を自動的にマスクできます。この機能は Microsoft Presidio を Weave Python SDK に統合したもので、マスキングの設定を SDK レベルで制御できます。
Sensitive Data Protection 機能により、Python SDK で次の機能が利用できるようになります。
redact_pii 設定: weave.init() の呼び出しで有効または無効にでき、有効にすると PII のマスキングが行われます。
redact_pii = True の場合に、一般的なエンティティ を自動的にマスキング。
redact_pii_fields 設定で、マスキング対象のフィールドをカスタマイズ。
redact_pii_exclude_fields 設定で、特定のエンティティをマスキング対象から除外。
PII マスキングを有効にする
このセクションでは、必要な依存関係のインストール、weave.init() での PII マスキングの有効化、および必要に応じて Weave がマスクするエンティティの調整について説明します。Weave で Sensitive Data Protection 機能を使い始めるには、次の手順を実行します。
-
必要な依存関係をインストールします。
-
weave.init() の呼び出しを変更して、マスキングを有効にします。redact_pii=True を指定すると、Weave は一般的なエンティティをデフォルトでマスクします。
-
オプション:
redact_pii_fields パラメーターを使用して、マスキング対象のフィールドをカスタマイズします。
検出およびマスクできるエンティティの一覧については、Presidio でサポートされる PII エンティティを参照してください。
-
オプション:
redact_pii_exclude_fields パラメーターを使用して、特定のエンティティをマスキングから除外します。デフォルトのマスキングは維持しつつ、一部のエンティティタイプはそのまま残したい場合に便利です。次の例では、EMAIL_ADDRESS と PERSON を除くすべてのデフォルトのエンティティをマスクします。
これらの手順を完了すると、Weave はトレースを Weave サーバーに送信する前に、設定された PII エンティティをマスクします。
デフォルトでマスクされるエンティティ
このセクションでは、redact_pii_fields を指定せずに PII マスキングを有効にした場合に、Weave が自動的にマスクする PII エンティティのタイプを示します。PII マスキングを有効にすると、Weave は次のエンティティを自動的にマスクします。
CREDIT_CARD
CRYPTO
EMAIL_ADDRESS
ES_NIF
FI_PERSONAL_IDENTITY_CODE
IBAN_CODE
IN_AADHAAR
IN_PAN
IP_ADDRESS
LOCATION
PERSON
PHONE_NUMBER
UK_NHS
UK_NINO
US_BANK_NUMBER
US_DRIVER_LICENSE
US_PASSPORT
US_SSN
REDACT_KEYS で機密キーをマスクする
PII のマスキングに加えて、Weave SDK は REDACT_KEYS によるカスタムキーのマスキングをサポートしています。これは、PII のカテゴリには該当しないものの非公開にしておく必要があるセンシティブデータを、さらに保護したい場合に便利です。たとえば次のようなものがあります。
- APIキー
- 認証ヘッダー
- トークン
- 内部 ID
- 設定値
事前定義された REDACT_KEYS
Weave は、デフォルトで以下の機密キーを自動的にマスクします。
独自のキーを追加する
アプリケーションで、機密性の高い値を含むフィールド名をほかにも使用している場合は、デフォルトの REDACT_KEYS リストを拡張できます。トレースでマスクしたい独自のキーを追加してください。
Weights & Biases の UI で確認すると、client_id と token の値は "REDACTED" と表示されます。
- この機能は Python SDK でのみ使用できます。
- マスキングを有効にすると、Presidio に依存するため処理時間が長くなります。