AI Sparkup

최신 AI 쉽게 깊게 따라잡기⚡

OpenAI Privacy Filter, PII를 문맥으로 구분하는 1.5B 오픈 모델 공개

이메일 주소나 전화번호는 패턴으로 잡힙니다. 그런데 똑같은 날짜 “1990-01-02″가 뉴스 기사에 나오면 공개 정보지만, 고객 상담 로그에 나오면 마스킹 대상입니다. 형식은 같고 문맥이 다를 때, 기존 도구는 판단하지 못했습니다.

사진 출처: OpenAI

OpenAI가 개인식별정보(PII) 탐지·마스킹을 위한 오픈 모델 Privacy Filter를 공개했습니다. 1.5B 파라미터의 소형 모델이지만, 단순 패턴 매칭을 넘어 문맥 기반 PII 구분 능력을 갖췄다는 점이 핵심입니다. Apache 2.0 라이선스로 Hugging Face와 GitHub에서 바로 사용할 수 있습니다.

출처: Introducing OpenAI Privacy Filter – OpenAI

왜 기존 방식이 부족했나

전통적인 PII 탐지 도구는 이메일 주소, 전화번호처럼 형식이 정해진 패턴을 규칙 기반으로 잡아냅니다. 명확한 경우엔 잘 작동하지만, 문맥에 따라 판단이 달라져야 하는 경우엔 한계를 드러냅니다.

예를 들어 뉴스 기사에 등장하는 공인의 이름은 공개 정보지만, 고객 상담 로그에 등장하는 같은 이름은 사적인 정보입니다. 형식은 동일하지만 처리 방식은 달라야 하죠. Privacy Filter는 이런 판단을 언어 이해를 기반으로 수행합니다. “보존해야 할 공개 정보”와 “마스킹해야 할 사적 정보”를 문맥으로 구분하는 것이 핵심 설계 목표입니다.

어떻게 작동하는가

Privacy Filter는 자동회귀 방식으로 사전학습된 체크포인트에서 출발해, 토큰 분류기로 변환 후 추가 학습된 양방향 모델입니다. 텍스트를 한 번에 처리하는 방식으로 작동합니다.

작동 흐름은 다음과 같습니다.

  1. 입력 텍스트의 모든 토큰을 단일 패스로 읽어 각 위치에서 레이블 확률 분포를 계산
  2. 8개 프라이버시 카테고리(private_person, private_address, private_email, private_phone, private_url, private_date, account_number, secret) 중 해당 레이블 예측
  3. 제약 비터비 디코딩으로 연속적인 PII 범위(span)를 일관되게 복원
  4. 경계가 명확한 마스킹 결과 출력

특히 secret 카테고리는 API 키나 비밀번호까지 포함해, 코드베이스 보안 점검 용도로도 쓸 수 있습니다. 컨텍스트 윈도우가 128,000 토큰이라 긴 문서를 청킹 없이 한 번에 처리할 수 있고, 로컬에서 실행되기 때문에 필터링 전 데이터가 외부 서버로 전송되지 않습니다.

벤치마크에서는 PII-Masking-300k 기준 F1 97.43%를 기록했습니다. 도메인별 파인튜닝 실험에서는 소량의 데이터만으로 F1이 54%에서 96%까지 빠르게 올라, 특정 데이터 분포에 맞게 조정하기도 어렵지 않습니다.

오픈소스로 공개한 이유

OpenAI는 내부 프라이버시 보호 워크플로에 Privacy Filter의 파인튜닝 버전을 이미 사용해왔습니다. 이번에 외부 공개를 결정한 것은 “프라이버시 보호 인프라는 더 쉽게 검토하고, 실행하고, 개선할 수 있어야 한다”는 입장에 따른 것입니다.

모델이 작고 효율적이면서 좁게 정의된 작업에서 최고 성능을 낸다는 점도 눈여겨볼 만합니다. 거대 범용 모델이 아니라, 특정 목적에 최적화된 소형 전문 모델을 오픈소스로 제공하는 방향이 AI 생태계 전반의 프라이버시 수준을 높이는 데 실질적으로 기여할 수 있다는 판단입니다.

다만 OpenAI는 이 모델이 완전한 익명화 도구나 규정 준수 인증 수단이 아님을 분명히 합니다. 의료·법률·금융처럼 민감도가 높은 도메인에서는 사람의 검토와 도메인 특화 파인튜닝이 여전히 필요하다는 점도 모델 카드에 명시되어 있습니다.

참고자료: openai/privacy-filter – GitHub


AI Sparkup 구독하기

최신 게시물 요약과 더 심층적인 정보를 이메일로 받아 보세요! (무료)

Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다