이것은 인터랙티브 노트북입니다. 로컬에서 실행하거나 아래 링크를 사용할 수 있습니다:
PII 데이터와 함께 Weave를 사용하는 방법
이 가이드에서는 개인 식별 정보(PII) 데이터를 비공개로 유지하면서 W&B Weave를 사용하는 방법을 배웁니다. 이 가이드는 PII 데이터를 식별, 수정 및 익명화하는 다음 방법을 보여줍니다:- 정규 표현식을 사용하여 PII 데이터를 식별하고 수정합니다.
- Microsoft의 Presidio, 파이썬 기반 데이터 보호 SDK. 이 도구는 수정 및 대체 기능을 제공합니다.
- Faker, PII 데이터를 익명화하기 위해 Presidio와 결합된 가짜 데이터를 생성하는 Python 라이브러리.
weave.op
입력/출력 로깅 사용자 정의 및 autopatch_settings
PII 수정 및 익명화를 워크플로우에 통합합니다. 자세한 내용은 로깅된 입력 및 출력 사용자 정의를 참조하세요.
시작하려면 다음을 수행하세요:
- 다음을 검토하세요 개요 섹션.
- 다음을 완료하세요 전제 조건.
- 다음을 검토하세요 사용 가능한 방법 PII 데이터를 식별, 수정 및 익명화하기 위한.
- Weave 호출에 방법 적용.
개요
다음 섹션에서는 다음을 사용한 입력 및 출력 로깅에 대한 개요를 제공합니다weave.op
, 그리고 Weave에서 PII 데이터 작업에 대한 모범 사례.
다음을 사용하여 입력 및 출력 로깅 사용자 정의 weave.op
Weave Ops를 사용하면 입력 및 출력 후처리 함수를 정의할 수 있습니다. 이러한 함수를 사용하여 LLM 호출에 전달되거나 Weave에 로깅되는 데이터를 수정할 수 있습니다.
다음 예제에서는 두 개의 후처리 함수가 정의되어 다음에 인수로 전달됩니다 weave.op()
.
PII 데이터와 함께 Weave를 사용하기 위한 모범 사례
PII 데이터와 함께 Weave를 사용하기 전에 PII 데이터와 함께 Weave를 사용하기 위한 모범 사례를 검토하세요.테스트 중
- PII 감지를 확인하기 위해 익명화된 데이터 로깅
- Weave Traces로 PII 처리 프로세스 추적
- 실제 PII를 노출하지 않고 익명화 성능 측정
프로덕션 환경에서
- 원시 PII를 절대 로깅하지 마세요
- 로깅 전 민감한 필드 암호화
암호화 팁
- 나중에 복호화해야 하는 데이터에는 가역적 암호화 사용
- 역변환이 필요 없는 고유 ID에는 단방향 해싱 적용
- 암호화된 상태로 분석해야 하는 데이터에는 특수 암호화 고려
전제 조건
- 먼저 필요한 패키지를 설치하세요.
- Weave 프로젝트를 초기화하세요.
- 10개의 텍스트 블록이 포함된 데모 PII 데이터셋을 로드하세요.
수정 방법 개요
다음을 완료한 후 설정, 다음을 수행할 수 있습니다 PII 데이터를 감지하고 보호하기 위해 다음 방법을 사용하여 PII 데이터를 식별하고 수정하며 선택적으로 익명화합니다:- 정규 표현식을 사용하여 PII 데이터를 식별하고 수정합니다.
- Microsoft Presidio, 수정 및 대체 기능을 제공하는 Python 기반 데이터 보호 SDK.
- Faker, 가짜 데이터를 생성하기 위한 Python 라이브러리.
방법 1: 정규 표현식을 사용한 필터링
정규 표현식(regex)은 PII 데이터를 식별하고 수정하는 가장 간단한 방법입니다. 정규 표현식을 사용하면 전화번호, 이메일 주소, 사회 보장 번호와 같은 다양한 형식의 민감한 정보와 일치하는 패턴을 정의할 수 있습니다. 정규 표현식을 사용하면 더 복잡한 NLP 기술 없이도 대량의 텍스트를 스캔하고 정보를 대체하거나 수정할 수 있습니다.방법 2: Microsoft Presidio를 사용한 수정
다음 방법은 다음을 사용하여 PII 데이터를 완전히 제거하는 것입니다 Microsoft Presidio. Presidio는 PII를 수정하고 PII 유형을 나타내는 자리 표시자로 대체합니다. 예를 들어, Presidio는Alex
내의 "My name is Alex"
을 <PERSON>
로 대체합니다.
Presidio는 일반적인 엔티티에 대한 내장 지원을 제공합니다. 아래 예제에서는 PHONE_NUMBER
, PERSON
, LOCATION
, EMAIL_ADDRESS
또는 US_SSN
인 모든 엔티티를 수정합니다. Presidio 프로세스는 함수로 캡슐화됩니다.
방법 3: Faker와 Presidio를 사용한 대체를 통한 익명화
텍스트를 수정하는 대신, MS Presidio를 사용하여 이름 및 전화번호와 같은 PII를 Faker Python 라이브러리를 사용하여 생성된 가짜 데이터로 교체하여 익명화할 수 있습니다. 예를 들어, 다음과 같은 데이터가 있다고 가정해 보세요:"My name is Raphael and I like to fish. My phone number is 212-555-5555"
Presidio와 Faker를 사용하여 데이터가 처리되면 다음과 같이 보일 수 있습니다:
"My name is Katherine Dixon and I like to fish. My phone number is 667.431.7379"
Presidio와 Faker를 효과적으로 함께 사용하려면 사용자 정의 연산자에 대한 참조를 제공해야 합니다. 이러한 연산자는 Presidio를 PII를 가짜 데이터로 교체하는 Faker 함수로 안내합니다.
방법 4: 다음 사용 autopatch_settings
다음을 사용할 수 있습니다 autopatch_settings
지원되는 LLM 통합 중 하나 이상에 대해 초기화 중에 직접 PII 처리를 구성합니다. 이 방법의 장점은 다음과 같습니다:
- PII 처리 로직이 초기화 시 중앙 집중화되고 범위가 지정되어 분산된 사용자 정의 로직의 필요성이 줄어듭니다.
- PII 처리 워크플로우는 특정 통합에 대해 사용자 정의하거나 완전히 비활성화할 수 있습니다.
autopatch_settings
PII 처리를 구성하려면, 다음을 정의하세요 postprocess_inputs
및/또는 postprocess_output
내의 op_settings
지원되는 LLM 통합 중 하나에 대해.
Weave 호출에 방법 적용
다음 예제에서는 PII 수정 및 익명화 방법을 Weave Models에 통합하고 Weave Traces에서 결과를 미리 봅니다. 먼저, 다음을 생성합니다 Weave Model. Weave Model은 모델이 작동하는 방식을 정의하는 구성 설정, 모델 가중치 및 코드와 같은 정보의 조합입니다. 우리 모델에서는 Anthropic API가 호출될 predict 함수를 포함할 것입니다. Anthropic의 Claude Sonnet은 Traces를 사용하여 LLM 호출을 추적하면서 감정 분석을 수행하는 데 사용됩니다Traces. Claude Sonnet은 텍스트 블록을 받아 다음 감정 분류 중 하나를 출력합니다:positive, negative, 또는 neutral. 또한 PII 데이터가 LLM에 전송되기 전에 수정되거나 익명화되도록 후처리 함수도 포함할 것입니다. 이 코드를 실행하면 Weave 프로젝트 페이지와 실행한 특정 trace(LLM 호출)에 대한 링크를 받게 됩니다.정규식 방법
가장 간단한 경우, 정규식을 사용하여 원본 텍스트에서 PII 데이터를 식별하고 수정할 수 있습니다.Presidio 수정 방법
다음으로, Presidio를 사용하여 원본 텍스트에서 PII 데이터를 식별하고 수정할 것입니다.
Faker 및 Presidio 대체 방법
이 예제에서는 Faker를 사용하여 익명화된 대체 PII 데이터를 생성하고 Presidio를 사용하여 원본 텍스트에서 PII 데이터를 식별하고 대체합니다.
autopatch_settings
방법
다음 예제에서는 postprocess_inputs
for anthropic
to the postprocess_inputs_regex()
function ()를 초기화 시 설정합니다. postprocess_inputs_regex
function은redact_with_regex
method를 적용합니다 방법 1: 정규 표현식 필터링. 이제, redact_with_regex
은(는) 모든 anthropic
모델의 입력에 적용됩니다.
(선택 사항) 데이터 암호화
