개인 식별 정보(PII) 수정¶
PII에는 이름, 주소, 전화번호, 이메일 주소, 납세자 식별 번호 및 개인을 식별하기 위해 단독으로 또는 다른 정보와 함께 사용할 수 있는 기타 데이터가 포함됩니다. 대부분의 조직에는 PII 데이터 처리와 관련된 규제 및 규정 준수 요구 사항이 있습니다. AI_REDACT는 Snowflake에서 호스팅하는 대규모 언어 모델(LLM)을 통해 PII를 식별하고 자리 표시자 값으로 대체하여 비정형 텍스트 데이터에서 PII를 수정하는 데 도움이 되는 완전 관리형 AISQL 함수입니다.
AI_REDACT는 콜 센터 코칭, 감정 분석, 보험 및 의료 분석, ML 모델 학습 등 기타 사용 사례를 위한 텍스트를 준비하는 데 도움이 될 수 있습니다.
팁
AI_REDACT를 적용하기 전에 AI_PARSE_DOCUMENT 또는 AI_TRANSCRIBE를 사용하여 문서나 음성 데이터를 텍스트로 변환합니다.
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는 현재 US PII 및 :ref:`label-ai_redact_pii_categories`에 명시된 일부 UK 및 캐나다 PII만 수정합니다.
AI_REDACT는 현재 입력 및 출력할 수 있는 토큰 수가 제한되어 있습니다. 입력과 출력을 합치면 최대 4,096개의 토큰이 될 수 있습니다. 출력은 1,024개의 토큰으로 제한됩니다. 입력 텍스트가 더 긴 경우, :doc:`SPLIT_TEXT_RECURSIVE_CHARACTER</sql-reference/functions/split_text_recursive_character-snowflake-cortex>`를 사용하여 더 작은 청크로 분할하고 각 청크를 별도로 수정합니다.
참고
토큰은 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 가격 가이드<https://www.snowflake.com/pricing/pricing-guide/>`_를 참조하세요.
예¶
기본 예제¶
다음 예에서는 입력 텍스트에서 이름과 주소를 수정합니다.
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 |
일반적으로 사용 가능한 함수는 Covered AI 기능입니다. 미리 보기 함수는 Preview AI 기능입니다. [1] |
자세한 내용은 Snowflake AI 및 ML 섹션을 참조하십시오.