매일 업무 환경에서 다루는 계약서, 이력서, 채팅 로그에는 이름, 주소, 이메일 같은 민감한 개인정보가 섞여 있다. 이를 일일이 가리는 작업은 번거로울 뿐만 아니라 실수할 가능성도 크다. 최근 개발자 커뮤니티에서는 이러한 개인정보를 자동으로 탐지하고 마스킹하는 Privacy Filter 모델과 이를 효율적으로 서비스화할 수 있는 Gradio Server(웹 인터페이스 구축 도구인 Gradio의 서버 프레임워크)를 조합한 사례가 주목받고 있다.

Privacy Filter 모델의 성능과 기술적 사양

Privacy Filter는 15억 개의 파라미터를 가진 모델로, 실제 활성 파라미터는 5천만 개 수준이다. Apache 2.0 라이선스로 공개된 이 모델은 128,000 토큰의 컨텍스트 윈도우를 지원하여 긴 문서를 분할 없이 한 번에 처리한다. 탐지 가능한 개인정보 범주는 개인 이름, 주소, 이메일, 전화번호, URL, 날짜, 계좌번호, 비밀 정보 등 8가지다. 특히 PII-Masking-300k 벤치마크에서 최상위 수준의 성능을 기록했다. 모델에 대한 상세 정보와 방법론은 공식 허깅페이스 저장소에서 확인할 수 있다.

Gradio Server를 통한 웹 앱 구현 방식

예전에는 모델 추론을 위한 백엔드와 사용자 인터페이스를 별도로 구축하고 API를 연결하는 복잡한 과정을 거쳐야 했다. 이제는 Gradio Server를 사용하여 모델의 추론 로직과 웹 프론트엔드를 하나의 프로세스 안에서 관리할 수 있다. 개발자는 모델 추론이 필요한 부분에만 데코레이터를 사용하여 Gradio의 큐잉 시스템과 GPU 할당 기능을 활용한다.

python
@server.api(name="analyze_document")
def analyze_document(file):

모델 추론 로직

return result

이 방식을 사용하면 브라우저에서 직접 호출하는 API와 파이썬 SDK인 gradio_client를 통한 호출을 동일한 엔드포인트로 처리할 수 있다. 코드 중복을 최소화하면서도 동시 접속 처리가 가능해진다.

실제 활용 사례와 아키텍처의 변화

문서 탐색기, 이미지 익명화 도구, 개인정보 보호용 페이스트빈(Pastebin, 텍스트 공유 서비스) 등 세 가지 앱이 모두 동일한 구조를 공유한다. 문서 탐색기에서는 128k 컨텍스트를 활용해 문서 전체를 한 번에 읽어 들여 오프셋을 정확히 매핑한다. 이미지 익명화 도구는 Tesseract(광학 문자 인식 도구)로 텍스트 위치를 파악한 뒤, Privacy Filter가 탐지한 개인정보 영역을 픽셀 단위로 마스킹한다. 페이스트빈 서비스는 FastAPI(빠른 웹 API 구축 프레임워크)의 라우팅 기능을 활용해 공개용과 비공개용 URL을 구분하여 제공한다.

python

Gradio Server를 활용한 API와 일반 라우트의 공존

@server.api(name="analyze_document")

def analyze_api(data):

pass

@server.get("/")

def serve_html():

return "index.html"

이러한 구조는 모델 추론과 정적인 웹 페이지 서빙을 명확히 분리한다. 모델이 필요한 작업은 Gradio의 큐를 통과하고, 파일 조회나 단순 데이터 읽기는 일반 FastAPI 라우트를 통해 처리된다. 결과적으로 200줄 내외의 코드만으로도 고도화된 개인정보 보호 서비스를 구축할 수 있게 되었다.

데이터 처리 로직과 사용자 경험을 하나의 프로세스로 통합하는 것이 향후 AI 서비스 개발의 표준이 될 것이다.