個人を特定できる情報( 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 も識別します。
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.'
);
出力:
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']
);
出力:
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;
エラー処理の例¶
通常、 AI_REDACT は入力テキストを処理できない場合、エラーが発生します。複数の行を処理する場合、エラーがあると操作全体が失敗します。これを回避するために、セッションパラメーター AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR を FALSE に設定して、エラー条件がエラーを発生させるのではなく NULL を返すようにすることができます。
ALTER SESSION SET AI_SQL_ERROR_HANDLING_USE_FAIL_ON_ERROR=FALSE;
このセッションパラメーターセットを使用すると、 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);
法的通知¶
インプットとアウトプットのデータ分類は以下の表の通りです。
入力データの分類 |
出力データの分類 |
指定 |
|---|---|---|
Usage Data |
Customer Data |
一般的に利用可能な関数は、カバーされている AI 機能です。プレビュー関数は、 AI 機能をプレビューします。[1] |
詳細については、 Snowflake AI と ML をご参照ください。