이 노트북은 대화형입니다. 로컬에서 실행하거나 아래 링크를 통해 열 수 있습니다:
PII 데이터와 함께 Weave를 사용하는 방법
- PII 데이터를 식별하고 마스킹하기 위한 정규 표현식(regular expressions).
- 파이썬 기반 데이터 보호 SDK인 Microsoft의 Presidio. 이 도구는 마스킹 및 대체 기능을 제공합니다.
- 가짜 데이터를 생성하는 Python 라이브러리인 **Faker**를 Presidio와 함께 사용하여 PII 데이터를 익명화하는 방법.
weave.op 입력/출력 로깅 커스터마이징 및 autopatch_settings 를 사용하여 PII 마스킹 및 익명화를 워크플로에 통합하는 방법도 배우게 됩니다. 자세한 내용은 로그되는 입력과 출력을 커스터마이즈하기를 참고하세요.
시작하려면 다음을 수행하세요:
- 개요 섹션을 검토합니다.
- 사전 준비 사항을 완료합니다.
- PII 데이터를 식별, 마스킹 및 익명화하기 위한 사용 가능한 방법을 검토합니다.
- Weave 호출에 이 방법들을 적용합니다.
개요
weave.op을 사용한 입력 및 출력 로깅에 대한 개요와, Weave에서 PII 데이터를 다룰 때의 모범 사례를 설명합니다.
weave.op을 사용해 입력 및 출력 로깅 사용자 지정하기
weave.op()에 인수로 전달합니다.
PII 데이터와 함께 Weave를 사용할 때의 모범 사례
테스트 시
- PII 감지 기능을 검증하기 위해 익명화된 데이터를 로깅하세요
- Weave Traces로 PII 처리 프로세스를 추적하세요
- 실제 PII를 노출하지 않고 익명화 성능을 측정하세요
운영 환경에서
- 원본 PII는 절대 로그에 기록하지 마십시오
- 로그에 기록하기 전에 민감한 필드는 암호화하십시오
암호화 팁
- 나중에 복호화해야 하는 데이터에는 복호화 가능한 암호화를 사용하세요
- 다시 복원할 필요가 없는 고유 ID에는 단방향 해시를 적용하세요
- 암호화된 상태로 분석해야 하는 데이터에는 특수한 암호화 방식을 고려하세요
사전 준비 사항
- 먼저 필요한 패키지를 설치합니다.
- 다음에서 API 키를 생성합니다:
- Weave 프로젝트를 초기화합니다.
- 10개의 텍스트 블록이 포함된 데모 PII 데이터셋을 로드합니다.
비식별화 방법 개요
- 정규 표현식을 사용해 PII 데이터를 식별하고 비식별화합니다.
- Microsoft Presidio, 비식별화 및 데이터 대체 기능을 제공하는 Python 기반 데이터 보호 SDK입니다.
- Faker, 가짜 데이터를 생성하는 Python 라이브러리입니다.
방법 1: 정규식을 사용한 필터링
방법 2: Microsoft Presidio를 사용한 비식별 처리
"My name is Alex"에서 Alex를 <PERSON>으로 교체합니다.
Presidio에는 common entities에 대한 기본 지원이 포함되어 있습니다. 아래 예시에서는 PHONE_NUMBER, PERSON, LOCATION, EMAIL_ADDRESS, US_SSN인 모든 엔터티를 비식별 처리합니다. Presidio 처리 과정은 하나의 함수로 캡슐화되어 있습니다.
방법 3: Faker와 Presidio를 사용한 대체 익명화
"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를 효과적으로 함께 사용하려면 사용자 정의 오퍼레이터에 대한 참조를 제공해야 합니다. 이 오퍼레이터들은 PII를 가짜 데이터로 교체하는 Faker 함수로 Presidio를 연결하는 역할을 합니다.
방법 4: autopatch_settings 사용
autopatch_settings를 사용하면 지원되는 하나 이상의 LLM 인테그레이션에 대해 초기화 시점에 PII 처리 방식을 직접 설정할 수 있습니다. 이 방법의 장점은 다음과 같습니다:
- PII 처리 로직이 초기화 시점에 중앙에서 일괄적으로 정의되어, 여러 곳에 커스텀 로직을 흩어 둘 필요가 줄어듭니다.
- PII 처리 워크플로우를 특정 인테그레이션에 대해 사용자 정의하거나 완전히 비활성화할 수 있습니다.
autopatch_settings를 사용해 PII 처리를 설정하려면, 지원되는 LLM 인테그레이션에 대해 op_settings 안에 postprocess_inputs 및/또는 postprocess_output을 정의하십시오.
Weave 호출에 메서드 적용하기
predict 함수를 포함합니다. Anthropic의 Claude Sonnet은 Traces를 사용해 LLM 호출을 추적하면서 감성 분석을 수행하는 데 사용됩니다. Claude Sonnet은 텍스트 블록을 입력으로 받아 positive, negative, neutral 중 하나의 감성 분류를 출력합니다. 또한 PII 데이터가 LLM으로 전송되기 전에 마스킹되거나 익명화되도록 보장하기 위해 후처리 함수를 포함합니다.
이 코드를 실행하면 Weave 프로젝트 페이지에 대한 링크와 함께, 실행한 특정 트레이스(LLM 호출)에 대한 링크를 받게 됩니다.
Regex 방식
Presidio 비식별화(redaction) 방법

Faker 및 Presidio 대체 방법

autopatch_settings 메서드
anthropic에 대한 postprocess_inputs를 postprocess_inputs_regex() 함수로 설정합니다. postprocess_inputs_regex 함수는 Method 1: Regular Expression Filtering에 정의된 redact_with_regex 메서드를 적용합니다. 이제 redact_with_regex는 모든 anthropic 모델에 전달되는 모든 입력에 적용됩니다.
(선택 사항) 데이터 암호화
