OpenAI Privacy Filter: 확장 가능한 PII 탐지 웹 앱 구축하기
OpenAI Privacy Filter: 확장 가능한 PII 탐지 웹 앱 구축하기
OpenAI는 8개의 서로 다른 카테고리에 걸쳐 민감한 텍스트를 식별하고 라벨을 지정하도록 설계된 오픈 소스 개인 식별 정보(PII) 탐지기인 Privacy Filter를 출시했습니다. 이 모델은 단 한 번의 포워드 패스(forward pass)로 128k 토큰 컨텍스트를 처리할 수 있는 능력이 있어, 텍스트 청킹(chunking)의 필요성을 없애고 정확한 스팬 오프셋(span offsets)을 보장한다는 점에서 매우 중요합니다.
Privacy Filter 모델 사양
Privacy Filter는 Apache 2.0 라이선스로 출시된 1.5B-parameter 모델로, 50M개의 활성 파라미터를 가지고 있습니다. 이 모델은 PII-Masking-300k 벤치마크에서 최첨단 성능을 달성했습니다.
기술적 역량
- 컨텍스트 윈도우(Context Window): 128,000 토큰.
- PII 카테고리: 모델은
private_person,private_address,private_email,private_phone,private_url,private_date,account_number,secret의 8가지 카테고리를 탐지합니다. - 효율성: 모델은 단 한 번의 포워드 패스로 라벨링을 수행하며, 이를 통해 긴 문서에서도 스팬 경계와 오프셋의 무결성을 유지합니다.
gradio.Server를 통한 실제 구현 사례
Hugging Face는 gradio.Server를 사용하여 세 가지 확장 가능한 웹 애플리케이션을 구축함으로써 이 모델의 유용성을 입증했습니다. 이 프레임워크를 사용하면 개발자는 커스텀 HTML/JS 프론트엔드를 ZeroGPU 할당 및 요청 큐잉(request queueing)과 같은 Gradio의 백엔드 기능과 결합할 수 있습니다.
1. Document Privacy Explorer
이 애플리케이션은 사용자가 PDF 또는 DOCX 파일을 업로드하여 PII 스팬이 해당 위치에 강조 표시되도록 합니다.
- 기술적 접근 방식: 전체 문서가 하나의 128k 컨텍스트 패스로 처리됩니다. 길고 모호한 텍스트 실행 중에 깨끗한 스팬 경계를 보장하기 위해 BIOES 디코딩이 사용됩니다.
- 인프라:
gr.Server는 뷰어를 단일 HTML 파일로 제공하고, 큐잉된@server.api엔드포인트를 통해 모델을 노출하여 동시 업로드가 직렬화되어 ZeroGPU를 통해 처리될 수 있도록 합니다.
2. Image Anonymizer
이 도구는 민감한 데이터 위에 검은색 막대를 배치하여 이미지 및 스크린샷(예: Slack 스레드 또는 영수증)에서 PII를 삭제(redact)합니다.
- 기술적 접근 방식: 시스템은 Tesseract OCR를 사용하여 단어별 바운딩 박스(bounding boxes)를 생성합니다. 백엔드는 문자 오프셋을 이러한 박스에 매핑하고 재구성된 텍스트에 대해 Privacy Filter를 실행합니다. 탐지된 스팬은 삭제를 위해 픽셀 직사각형으로 변환됩니다.
- 인프라: 커스텀
<canvas>프론트엔드가 토글, 드래그 또는 수동 삭제 막대 그리기와 같은 대화형 요소를 처리하는 동안,@server.api엔드포인트는 픽셀 좌표를 제공합니다.
3. SmartRedact Paste
이것은 삭제에 초점을 맞춘 페이스트빈(pastebin)으로, 공개된 삭제 버전과 비공개 공개 버전이라는 두 개의 별도 URL을 생성합니다.
- 기술적 접근 방식: 탐지된 PII 스팬은
<CATEGORY>플레이스홀더(예:<PRIVATE_EMAIL>)로 대체됩니다. 모델의 다국어 기능 덕분에 수정 없이 스페인어, 프랑스어, 중국어 및 힌디어 텍스트를 처리할 수 있습니다. - 인프라:
gr.Server는 FastAPI를 기반으로 구축되었기 때문에, 이 앱은 모델 중심의 삭제 프로세스를 위해@server.api를 사용하고, 토큰 제한이 있는 보기 페이지를 위해 일반@server.get라우트를 사용합니다.
확장 가능한 AI 앱을 위한 아키텍처 패턴
이 앱들 전반에 걸친 Privacy Filter의 통합은 큐잉된 컴퓨팅과 정적 라우팅 사이의 일관된 아키텍처 분리를 따릅니다:
| 애플리케이션 | 큐잉된 컴퓨팅 (@server.api) |
일반 FastAPI 라우트 |
|---|---|---|
| Document Privacy Explorer | 텍스트 추출, PII 탐지 및 통계 | 커스텀 리더 HTML 뷰 제공 |
| Image Anonymizer | OCR, PII 탐지 및 픽셀 박스 매핑 | 캔버스 UI 및 예시 제공 |
| SmartRedact Paste | PII 탐지 및 삭제 | 공개 및 토큰 제한 보기 페이지 |
@server.api를 사용함으로써 개발자는 Gradio의 큐와 ZeroGPU의 @spaces.GPU 구성을 사용할 수 있는 권한을 얻는 동시에, 일반 FastAPI 라우트는 HTML 전달 및 사전 조회와 같은 가벼운 작업을 처리합니다.