Rizzo-AI-Academy/rizzo-pii
Python0 / 0
로컬에서 가역적으로 이탈리아 법률 PII를 익명화해 외부 LLM에 안전히 전달할 수 있는 경량 도구
TL;DR
이 레포는 이탈리아 법률문서 전용으로 설계된 로컬-우선 PII 익명화 툴로, mmBERT 기반의 ≈0.3B 토큰 분류 모델과 정규식·체크섬 검증을 결합해 문서의 식별자를 플레이스홀더로 바꾸고 로컬에만 매핑을 저장해 복원하는 가역적 워크플로를 제공합니다. 실문장 검증에서 마이크로 F1 0.989를 기록했고 다섯 가지 이탈리아 법정 식별자는 1.000의 점수를 보여 민감 식별자 탐지에 강점이 있습니다. 배포는 데스크톱 번들·Docker·직접 실행으로 가능하고 양자화된 모델은 CPU에서 약 0.5 GB의 RAM으로 동작하므로 법률사무소 같은 현업 환경에 빠르게 도입할 수 있으나, 긴 문서의 문맥 처리와 희소 클래스에 대해서는 사전 엔드투엔드 검증이 필요합니다.
핵심 포인트
- 이 레포는 이탈리아 법률문서를 대상으로 한 로컬-우선 가역적 PII 익명화 파이프라인을 제공하며, 문서에서 식별자를 찾아 타입별 플레이스홀더로 바꾼 뒤 로컬에만 보관된 매핑으로 결과를 복원하는 흐름을 사용합니다. 핵심 구현은 token-classification 모델(mmBERT 기반, ≈0.3B 파라미터)과 정규식·체크섬 검증 네트워크를 결합한 하이브리드이며, IBAN/CF/PIVA 같은 구조화된 식별자에 대해 체크섬 합격 시 모델 출력을 덮어쓰는 규칙을 적용합니다. 이 구조는 원격 LLM으로 전송되는 텍스트에 실제 식별자가 절대 포함되지 않도록 하여 GDPR 준수와 데이터 최소화 요구를 구조적으로 달성합니다.
- 모델 성능은 실사용 벤치마크(7,000행 실문장 검증)에 기반해 마이크로 F1 0.989을 기록하고 있으며, 다섯 가지 이탈리아 법정 식별자(CF, PIVA, CATASTO, DOCID, PROVINCE)는 검증에서 1.000의 완벽한 점수를 보였습니다. 학습 데이터 풀은 약 745k 라벨 행(이탈리아 비중 약 45%)으로 구성되고 합성 데이터는 LLM 템플릿에 유효한 체크섬을 주입하는 방식으로 생성되어 실제 개인 데이터가 포함되지 않도록 설계되어 있습니다. 학습은 단일 에폭(약 26.6k 스텝)으로 진행되었고 손실은 초기 ≈6.2에서 수백 스텝 내에 0.1 미만으로 하락해 최종 train loss ≈0.003, val loss ≈0.006 수준에 도달해 과적합 우려가 낮은 구조적 근거를 제공합니다.
- 배포 관점에서 이 프로젝트는 일반 노트북에서도 동작하도록 경량화에 집중했고, fp32 체크포인트는 약 1.2 GB이나 양자화하면 모델의 메모리 상주량은 약 0.5 GB 수준으로 CPU에서 충분히 실행됩니다. 사용자는 데스크톱(Tauri 번들)·Docker·직접 실행 세 가지 방식으로 바로 인퍼런스 서버를 띄울 수 있고 HTTP 엔드포인트(/analyze, /pdf, /preview 등) 또는 CLI로 문서를 익명화하고 가역 매핑을 로컬에 보관해 복원할 수 있습니다. 실제 운영 흐름에서 요구되는 점검(예: PDF의 메타데이터·주석 제거, 이미지 기반 텍스트 한계)은 구현에 반영되어 있어 문서 중심 워크플로우에 곧바로 통합 가능한 편의성이 제공됩니다.
- 한계와 운영 권고가 명확하게 문서화되어 있어 도입 시 검토해야 할 항목이 뚜렷한 편입니다. 검증은 이탈리아어 실문장 중심으로만 수행되므로 다국어 적용은 보증되지 않고, 일부 희소 클래스(ORG, ZIPCODE, CREDITCARD 등)는 데이터 불균형으로 성능 변동성이 존재합니다. 운영 환경에서는 항상 모델 출력과 병렬로 regex·checksum 네트워크를 활성화해 수학적 검증으로 치명적 식별자 누락 위험을 줄여야 하며, 긴 문서·PDF 청킹 시 실제 엔드투엔드 동작을 사전 테스트할 필요가 있습니다.
벤치마크
| 벤치마크 | 지표 | 값 | 비교 |
|---|---|---|---|
| real Italian validation | micro-F1 | 0.989 | — |
| model footprint | parameters / RAM | ≈0.3B parameters · quantized ≈0.5 GB RAM (fp32 checkpoint ≈1.2 GB) | — |
이미지 분석

659
Stars
41
Forks
+204
Trending
0
조회수
659 watchers46 open issues
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.