個人を特定できる情報( PII )を編集する

PII には、名前、住所、電話番号、電子メールアドレス、税務番号、および個人を特定するために(単独または他の情報と合わせて)使用できるその他のデータが含まれます。ほとんどの組織には、 PII データの取り扱いに関する規則とコンプライアンス要件があります。 AI_REDACT は完全に管理された AISQL 関数で、Snowflakeがホストする大規模言語モデル( LLM )を使用して PII を特定し、プレースホルダー値に置き換え、非構造化テキストデータの PII を編集しやすくします。

AI_REDACT は、コールセンターのコーチング、感情分析、保険と医療分析、および ML モデルトレーニングなどのユースケースのためのテキストを準備するのに役立ちます。

Tip

AI_PARSE_DOCUMENT または AI_TRANSCRIBE を使用して、 AI_REDACT を適用する前に、ドキュメントまたはスピーチデータをテキストに変換します。

AI_REDACT

AI_REDACT 関数は、入力テキスト内の個人を特定できる情報( PII )をプレースホルダー値に置き換えます。

重要

AI_REDACT は、 AI モデルを使用して最善を尽くして編集を実行します。出力を常に確認して、組織のデータプライバシーポリシーに準拠していることを確認してください。AI_REDACT がデータの PII の編集に失敗した場合は、Snowflakeにお知らせください。

リージョンの可用性

リージョンの可用性 をご参照ください。

制限事項

  • 編集は AI モデルを使用して実行され、個人を特定できる情報をすべて検出しない場合があります。出力を常に確認して、組織のデータプライバシーポリシーに準拠していることを確認してください。AI_REDACT が特定の PII の編集に失敗する場合は、Snowflakeサポートにお問い合わせください。

  • COUNT_TOKENS および AI_COUNT_TOKENS 関数はまだ AI_REDACT をサポートしていません。

  • 現時点では、 AI_REDACT は、文法的に正しい英語テキストで最善の機能を発揮します。パフォーマンスは、多くのスペルミス、句読点の誤り、または文法エラーのある他の言語またはテキストでは異なる場合があります。

  • AI_REDACT は現在、 検出される PII カテゴリ に示されているように、 US PII と一部の UK およびカナダ PII のみを編集します。

  • AI_REDACT は現在、入力および出力できるトークンの数が制限されています。入力と出力を合計して、最大4,096トークンを使用できます。出力は1,024トークンに制限されています。入力テキストが長い場合は、 SPLIT_TEXT_RECURSIVE_CHARACTER を使用して、小さなチャンクに分割し、各チャンクを個別に編集します。

    注釈

    トークンは、 AI モデルによって処理される最小のデータ単位です。英語のテキストの場合、業界のガイドラインでは、1トークンは約4文字、または0.75単語と見なされます。

検出される PII カテゴリ

AI_REDACT は次のカテゴリの PII の編集をサポートしています。カテゴリ列の値は、オプションの categories 引数でサポートされている文字列です。親カテゴリが指定されると、サブカテゴリが自動的に検出されます。

カテゴリ

メモ

NAME

名前の部分である FIRST_NAME 、 MIDDLE_NAME 、 LAST_NAME も識別します。

EMAIL

PHONE_NUMBER

DATE_OF_BIRTH

GENDER

MALE 、 FEMALE 、 NONBINARY 値を認識します。

AGE

ADDRESS

また、住所部分も識別します。

  • STREET_ADDRESS ( US 、 UK 、 CA )

  • POSTAL_CODE ( US 、 UK 、 CA )

  • CITY ( US 、 UK 、 CA )

  • ADMINISTRATIVE_AREA_1( US 州、 CA 州)

  • ADMINISTRATIVE_AREA_2( US 郡、区、または郡区)

NATIONAL_ID

US の社会保障番号を識別します

PASSPORT

US 、 UK 、 CA のパスポート番号を識別します

TAX_IDENTIFIER

個人の納税番号( ITNs )を識別します

PAYMENT_CARD_DATA

支払いカードの部分 PAYMENT_CARD_NUMBER 、 PAYMENT_CARD_EXPIRATION_DATE 、 PAYMENT_CARD_CVV も識別します

DRIVERS_LICENSE

US 、 UK 、 CA の運転免許証番号を識別します

IP_ADDRESS

注釈

AI_REDACT が名前などのサブカテゴリを識別する場合、出力には [NAME] などのメインカテゴリのプレースホルダーが含まれます。

コストの考慮事項

AI_REDACT は他の AISQL 関数と同様に、処理される入力と出力トークンの数に基づいてコストが発生します。詳細については、 Snowflakeの価格ガイド をご参照ください。

基本的な例

次の例では、入力テキストから名前と住所を編集しています。

SELECT AI_REDACT(
    input => 'My name is John Smith and I live at twenty third street, San Francisco.'
);
Copy

出力:

My name is [NAME] and I live at [ADDRESS]

次の例では、入力テキストから名前とメールアドレスのみを編集しています。テキストには名前のみが含まれていますが、この(名前のサブカテゴリ)は [NAME] として認識され編集されます。入力テキストにはメールアドレスが含まれていないため、出力にはメールのプレースホルダーは表示されません。

SELECT AI_REDACT(
    input => 'My name is John and I live at twenty third street, San Francisco.',
    categories => ['NAME', 'EMAIL']
);
Copy

出力:

My name is [FIRST_NAME] and I live at twenty third street, San Francisco.

エンド・ツー・エンドの例

次の例では、あるテーブルの行を処理し、編集した出力を別のテーブルに挿入しています。同様の方法を使用して、既存のテーブルの列に編集したデータを格納できます。

編集後、テキストは AI_SENTIMENT に渡され、全体的な感情情報を抽出します。

-- Create a table with unredacted text
CREATE OR REPLACE TABLE raw_table AS
  SELECT 'My previous manager, Washington, used to live in Kirkland. His first name was Mike.' AS my_column
  UNION ALL
  SELECT 'My name is William and I live in San Francisco. You can reach me at (415).450.0973';

-- view unredacted data
SELECT * FROM raw_table;

-- Create a redaction table
CREATE OR REPLACE TABLE redaction_table (
  value VARCHAR
);

-- Redact PII from raw_table and insert into redaction_table
INSERT INTO redaction_table
SELECT AI_REDACT(my_column) AS value FROM raw_table;

-- view redacted results
SELECT * FROM redaction_table;

-- Run AI_SENTIMENT on redacted text
SELECT
    value AS redacted_text,
    AI_SENTIMENT(value) AS summary_sentiment
FROM redaction_table;
Copy

エラー処理の例

通常、 AI_REDACT は入力テキストを処理できない場合、エラーが発生します。複数の行を処理する場合、エラーがあると操作全体が失敗します。これを回避するために、セッションパラメーター AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR を FALSE に設定して、エラー条件がエラーを発生させるのではなく NULL を返すようにすることができます。

ALTER SESSION SET AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR=FALSE;
Copy

このセッションパラメーターセットを使用すると、 TRUE を最後の引数として AI_REDACT に渡すことで、戻り値は OBJECT になります。これには、編集されたテキストとエラーメッセージの個別のフィールドが含まれます。AI_REDACT 呼び出しが正常に処理されたかどうかによって、いずれかが NULL になります。これらのフィールドを使用して、処理に失敗した行のエラーメッセージを記録できます。

たとえば、前述の例は、示されたブロックを変更されたコードに置き換えて、次のようにエラーメッセージを記録するように変更できます。

ALTER SESSION SET AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR=FALSE;

-- Create a redaction table with columns for value and error message
CREATE OR REPLACE TABLE redaction_table (
  value VARCHAR,
  error VARCHAR
);

-- Redact PII from raw_table and insert into redaction_table
-- Both the redacted text and any error message are stored
INSERT INTO redaction_table
SELECT
  result:value::STRING AS value,
  result:error::STRING AS error
  FROM (SELECT AI_REDACT(my_column, TRUE) AS result FROM raw_table);
Copy