この機能は Python SDK からのみ利用できます。
一部の組織では、大規模言語モデル (LLM) のワークフローで、名前、電話番号、メールアドレスなどの Personally Identifiable Information (PII) を処理しています。こうしたデータを Weights & Biases (W&B) Weave に保存すると、コンプライアンス上およびセキュリティ上のリスクが生じます。このデータがログされる前に除去することで、エージェントを GDPR や HIPAA などのポリシーに準拠した状態に保つのに役立ちます。
Sensitive Data Protection 機能を使用すると、トレース が Weave サーバーに送信される前に、そのトレースから Personally Identifiable Information (PII) を自動的にマスクできます。この機能は Microsoft Presidio を Weave Python SDK に統合しており、SDK レベルでマスキング設定を制御できます。
Sensitive Data Protection 機能により、Python SDK で次のことが可能になります。
redact_pii 設定。weave.init() call でオンまたはオフに切り替えて、PII のマスキングを有効化できます。
redact_pii = True の場合、一般的なEntities を自動的にマスクします。
- 設定可能な
redact_pii_fields 設定を使用して、マスキングするフィールドをカスタマイズできます。
redact_pii_exclude_fields 設定を使用して、特定のEntitiesをマスキング対象から除外できます。
Weave の Sensitive Data Protection 機能を使い始めるには、以下の手順を実行します。
-
必要な依存関係をインストールします。
pip install presidio-analyzer presidio-anonymizer
-
マスキングを有効にするように、
weave.init() call を変更します。redact_pii=True を設定すると、一般的なEntitiesはデフォルトでマスクされます。
import weave
weave.init("my-project", settings={"redact_pii": True})
-
(任意)
redact_pii_fields パラメーターを使用して、マスキングするフィールドをカスタマイズします。
weave.init("my-project", settings={"redact_pii": True, "redact_pii_fields":["CREDIT_CARD", "US_SSN"]})
検出およびマスクできるEntitiesの一覧については、Presidio でサポートされる PII Entitiesを参照してください。
- (任意)
redact_pii_exclude_fields パラメーターを使用して、特定のEntitiesをマスキング対象から除外します。これは、デフォルトのマスキングは維持しつつ、特定のEntitiesタイプは保持したい場合に便利です。次の例は、EMAIL_ADDRESS と PERSON を除くすべてのデフォルトのEntitiesをマスクする方法を示しています。
weave.init("my-project", settings={"redact_pii": True, "redact_pii_exclude_fields":["EMAIL_ADDRESS", "PERSON"]})
PII のマスキング を有効にすると、以下のEntitiesは自動的にマスクされます。
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
- 設定値
Weave はデフォルトで、以下の機密キーを自動的にマスクします。
[
"api_key",
"auth_headers",
"authorization"
]
このリストに、トレースからマスクしたい独自のキーを追加できます。
import weave
from weave.utils import sanitize
client = weave.init("my-project", settings={"redact_pii": True})
# マスクするカスタムキーを追加する
sanitize.add_redact_key("client_id")
sanitize.add_redact_key("token")
client_id = "123"
token = "789"
@weave.op
def test(client_id, token):
return client_id + token
test(client_id, token)
Weave UI で確認すると、client_id と token の値は "REDACTED" と表示されます。
client_id = "REDACTED"
token = "REDACTED"
- この機能は Python SDK でのみ利用できます。
- マスキングを有効にすると、Presidio への依存により処理時間が長くなります。