OpenAI Privacy Filter 소개
개인식별정보(PII, Personally Identifiable Information)의 탐지와 마스킹은 AI 시스템을 실제 데이터에 적용할 때 반드시 해결해야 하는 문제입니다. 의료 기록, 고객 데이터, 법률 문서 등 민감한 텍스트를 대규모 언어 모델에 입력하기 전에 개인정보를 제거하거나 익명화해야 하는 요구는 규정 준수(Compliance)와 프라이버시 보호 측면에서 점점 강해지고 있습니다. 기존의 정규식(Regex) 기반 방식은 다양한 표현 형태를 처리하지 못하고, 범용 LLM 기반 방식은 추론 비용이 높고 온프레미스(On-premises) 배포가 어렵다는 한계가 있습니다.
OpenAI Privacy Filter는 OpenAI가 공개한 양방향 토큰 분류(Bidirectional Token Classification) 모델로, 텍스트에서 개인식별정보를 탐지하고 마스킹하는 데 특화되어 있습니다. 이 모델은 GPT-OSS와 유사한 아키텍처로 자기회귀(Autoregressive) 방식으로 사전 학습된 후, 양방향 토큰 분류기로 변환되었습니다. 일반 LLM처럼 토큰을 하나씩 생성하는 대신, 입력 시퀀스 전체를 단일 순전파(Single Forward Pass)로 처리하여 각 토큰에 대해 PII 레이블 분포를 예측합니다. 이후 제약된 비터비(Constrained Viterbi) 절차를 통해 일관성 있는 스팬(Span)을 디코딩합니다.
OpenAI Privacy Filter는 총 15억(1.5B) 파라미터를 가지지만 실제 활성 파라미터는 5천만(50M)에 불과합니다. Apache 2.0 라이선스로 공개되어 실험, 커스터마이징, 상업적 배포 모두 자유롭습니다. 128,000 토큰의 긴 컨텍스트 윈도우를 지원하여 긴 문서도 청크 없이 한 번에 처리할 수 있으며, 자체 데이터 분포에 맞게 파인튜닝(Fine-tuning)도 가능합니다.
OpenAI Privacy Filter와 기존 방식 비교
| 방식 | 처리 방식 | 컨텍스트 | 온프레미스 | 정확도 |
|---|---|---|---|---|
| OpenAI Privacy Filter | 단일 순전파 | 128k 토큰 | 가능 | 높음 |
| 정규식(Regex) | 패턴 매칭 | N/A | 가능 | 낮음 (변형 미처리) |
| 범용 LLM | 자기회귀 생성 | 제한적 | 어려움 | 높음 (비용↑) |
| 기존 NLP 분류기 | 단일 순전파 | 짧음 | 가능 | 중간 |
OpenAI Privacy Filter의 모델 아키텍처
OpenAI Privacy Filter는 다음과 같은 과정으로 설계되었습니다. 먼저 GPT-OSS와 유사한 아키텍처로 자기회귀 방식의 사전 학습을 통해 언어 이해 능력을 갖춘 체크포인트를 확보합니다. 이후 이 체크포인트를 프라이버시 레이블 분류 체계에 맞는 양방향 토큰 분류기로 변환하고, 감독 분류 손실(Supervised Classification Loss)로 후훈련(Post-training)합니다.
모델이 예측하는 PII 레이블 체계는 8가지 출력 카테고리로 구성됩니다. 이름(Name), 이메일 주소(Email), 전화번호(Phone), 주소(Address), 날짜(Date), 식별번호(ID Number), 조직명(Organization), 기타 개인정보(Other PII) 등의 카테고리를 커버합니다. 추론 시에는 정밀도(Precision)와 재현율(Recall)의 트레이드오프 및 탐지 스팬 길이를 런타임에 구성 가능한 프리셋 동작 포인트(Preset Operating Points)를 통해 조절할 수 있습니다.
OpenAI Privacy Filter 설치 및 사용법
GitHub 저장소로부터 설치
git clone https://github.com/openai/privacy-filter
cd privacy-filter
pip install -e .
위와 같은 방식으로 OpenAI Privacy Filter 설치 후에는 opf CLI 명령어와 python -m opf 모두 사용 가능합니다. 모델은 기본적으로 OPF_CHECKPOINT 환경 변수 또는 ~/.opf/privacy_filter 경로에서 로드되며, 없으면 자동으로 다운로드됩니다.
OpenAI Privacy Filter 사용법
원샷 마스킹:
opf "Alice was born on 1990-01-02."
# 출력: [NAME] was born on [DATE].
파일 배치 처리:
opf --input data.jsonl --output redacted.jsonl --field "text"
Python API 사용:
from opf import PrivacyFilter
pf = PrivacyFilter()
text = "John Smith works at OpenAI, his email is john@openai.com"
result = pf.redact(text)
# 결과: "[NAME] works at [ORGANIZATION], his email is [EMAIL]"
# 스팬 레벨 정보 확인
spans = pf.detect(text)
for span in spans:
print(f"{span.label}: '{span.text}' at [{span.start}:{span.end}]")
파인튜닝: 자체 데이터셋으로 감독 학습을 통해 특정 도메인의 PII 패턴에 맞게 모델을 조정할 수 있으며, 데이터 효율적인 파인튜닝을 지원합니다.
라이선스
OpenAI Privacy Filter 프로젝트는 Apache 2.0 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용, 수정, 배포할 수 있습니다.
OpenAI Privacy Filter 데모 사용하기
OpenAI Privacy Filter 모델 카드 문서 (PDF)
OpenAI Privacy Filter 프로젝트 GitHub 저장소
OpenAI Privacy Filter 모델 가중치 다운로드
더 읽어보기
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()




