OpenAI Privacy Filter는 텍스트에서 개인식별정보(PII, Personally Identifiable Information)를 탐지하고 마스킹하는 양방향 토큰 분류 모델이다. 클라우드 API 의존 없이 사내 서버·노트북·웹 브라우저에서 직접 실행할 수 있으며, Apache 2.0 라이선스로 상업적 사용과 커스터마이징이 자유롭다.
대규모 데이터 파이프라인에서 PII를 정제하려면 속도·정확도·제어 가능성이 동시에 필요하다. 기존 룰 기반 방식은 유지 비용이 높고, 외부 API 기반 솔루션은 민감 데이터를 외부로 전송하는 보안 문제가 있다. OpenAI Privacy Filter는 1.5B 파라미터(활성 50M)의 희소 MoE 아키텍처로 단일 순전파에서 전체 시퀀스를 레이블링해 이 두 문제를 동시에 해결한다.
주요 특징
| 항목 | 내용 |
|---|---|
| 파라미터 수 | 1.5B (활성 50M, 희소 MoE) |
| 컨텍스트 길이 | 128,000 토큰 |
| 라이선스 | Apache 2.0 |
| 실행 환경 | GPU·CPU·웹 브라우저 |
| 파인튜닝 | 지원 (소량 데이터로 가능) |
| 추론 방식 | 단일 순전파 + Viterbi 디코딩 |
탐지 범주
Privacy Filter는 8가지 개인정보 범주를 탐지한다:
account_number— 계좌번호 등 식별 번호private_address— 개인 주소private_email— 개인 이메일private_person— 개인 이름private_phone— 전화번호private_url— 개인 URLprivate_date— 생년월일 등 개인 날짜secret— API 키, 토큰 등 비밀 자격증명
각 범주는 BIOES(Begin-Inside-Outside-End-Single) 태그로 확장되어 총 33개 토큰 레벨 클래스를 출력한다.
아키텍처
autoregressive 사전 학습 후 양방향 토큰 분류기로 변환하는 2단계 학습 방식을 사용한다:
- 사전 학습: gpt-oss와 유사한 아키텍처로 자기회귀 학습
- 파인튜닝: 언어 모델 헤드를 토큰 분류 헤드로 교체, 지도 분류 손실로 학습
추론 시 Viterbi 디코더가 BIOES 경계 전환 제약을 적용해 시퀀스 전체를 일관된 스팬으로 디코딩한다. 독립적인 토큰별 argmax 대신 전역 경로 최적화를 적용해 경계 안정성을 높인다.
트랜스포머 블록 × 8
- GQA (Query 14개 : KV 2개, band size 128, 유효 범위 257 토큰)
- 희소 MoE FFN (전문가 128개, 토큰당 top-4 라우팅)
- d_model = 640
- 최종: 33-class 토큰 분류 헤드설치 및 CLI 사용법
pip install -e .기본 마스킹:
opf "Alice was born on 1990-01-02."
# → [PRIVATE_PERSON] was born on [PRIVATE_DATE].파일 전체 마스킹:
opf -f /path/to/file파이프 지원:
cat data.txt | grep 'pattern' | opf평가:
opf eval examples/data/sample_eval_five_examples.jsonl커스텀 데이터셋으로 파인튜닝:
opf train /path/to/train.jsonl --output-dir /path/to/finetunedCPU에서 실행하려면 --device cpu 플래그를 추가한다. 모델 가중치는 첫 실행 시 ~/.opf/privacy_filter에 자동 다운로드된다.
정밀도·재현율 조정
Viterbi 디코더의 전환 바이어스 파라미터(6개)를 통해 런타임에서 탐지 민감도를 조정할 수 있다. 재현율 중심 설정은 배경 유지를 억제해 더 넓은 스팬을 마스킹하고, 정밀도 중심 설정은 반대로 동작한다. 별도 재학습 없이 운영 포인트를 선택할 수 있다.
적합한 사용 사례
- 데이터 파이프라인 정제: 학습 데이터에서 PII를 제거해야 하는 ML 팀
- 온프레미스 보안 요구: 의료·법률·금융 분야에서 외부 API 전송 없이 처리해야 하는 경우
- 커스텀 정책 적용: 기본 레이블 정책이 조직 기준과 다를 때 파인튜닝으로 조정
- 고처리량 배치 처리: 128K 컨텍스트와 단일 패스 추론으로 긴 문서도 청크 없이 처리
한계 및 주의사항
- 영어 이외 언어, 비라틴 문자, 비주류 이름 패턴에서 성능 저하 가능
- 공공 기관명·기업명·지명을 개인 정보로 과잉 마스킹할 수 있음
- 완전한 익명화 보장이 아닌 하나의 레이어로 활용 권장
- 고위험 도메인(의료·법률·HR)에서는 사람 검토 프로세스 병행 권장
라이선스
Apache 2.0
관련 문서
- Model Weights (HuggingFace) — 공식 모델 가중치
- Demo (HuggingFace Spaces) — 웹 데모
참고 자료
- openai/privacy-filter — GitHub 공식 저장소