챗봇에 메시지를 입력하는 순간, 우리는 의도한 것보다 더 많은 자신을 드러낸다. 이메일을 다듬어 달라는 요청에는 나와 동료의 이름이 담기고, 의료비 청구서에 대한 질문에는 주소와 계좌번호가 섞여 들어간다. 그리고 입력한 내용은 내 손을 떠나 내가 들여다볼 수 없는 원격 서버로 이동한다. NDS가 공개한 오픈소스 프로젝트 'Rampart'는 바로 이 지점, 즉 메시지를 입력한 뒤 전송하기 직전의 짧은 순간을 겨냥한다.
Rampart의 설계 원칙은 간결하다. 사용자가 사생활을 확실하게 보장받을 수 있는 정보는 애초에 기기를 떠나지 않는 정보뿐이라는 것이다. 이 전제를 그대로 구현하기 위해 Rampart는 서버를 경유하지 않고 브라우저 안에서 개인정보를 탐지하고 가린다. 흔히 개인정보 제거(PII redaction)는 원격 서버를 신뢰하거나 클라이언트에 별도 바이너리를 내려받는 방식에 의존하는데, Rampart는 이 두 선택지를 피하고 처리 전 과정을 브라우저 안에 담았다.
두 개의 판독기
메시지가 어딘가로 전송되기 전에, 기기 안에서 두 개의 '판독기'가 내용을 읽는다. 첫 번째는 규칙 기반 계층이다. 정규표현식과 실제 유효성 검증을 결합해 구조가 분명한 정보를 잡아낸다. 주민등록번호에 해당하는 SSN, 신용카드 번호, 전화번호, 라우팅·계좌번호, 이메일, IP 주소, 정부 발급 ID 같은 항목이다. 이 계층은 결정론적이며 빠르다. 패턴이 정해져 있는 정보는 애초에 규칙으로 처리하는 것이 가장 정확하다는 판단이다.
두 번째는 소형 언어 모델이다. 규칙은 세상의 모든 이름과 거리 주소를 미리 예측할 수 없다. 그래서 MiniLM이 문장을 문맥 단위로 읽어 이름이나 주소처럼 패턴만으로는 걸러지지 않는 개인정보를 찾아내고, 특정 범주에 맞춰 해당 부분을 가린다. 예컨대 "제 이름은 Maria Garcia이고 사회보장번호는 123-45-6789, 월 소득은 1,950달러입니다"라는 문장은 전송 직전에 이름이 [GIVEN_NAME] [SURNAME]로, 번호가 [SSN]으로 치환된다. 소득이나 질문의 맥락은 유지되므로, 챗봇은 여전히 "저렴한 주택을 찾아 달라"는 요청에 답할 수 있다. 가려진 실제 값은 빈칸을 다시 채우기 위해 기기 안에 일시적으로만 저장된다.
학습 데이터와 성능 주장
Rampart는 AI4Privacy의 OpenPII 1.5M 데이터셋과, 17개 개체 유형을 의도적으로 지저분한 채팅식 입력으로 강화한 합성 생성기를 함께 사용해 학습됐다. 공개된 대표 성능 수치는 7개 라틴 문자 언어에 걸친 3만 행 규모의 홀드아웃 OpenPII 슬라이스를 실제 출시 파이프라인으로 끝까지 평가한 결과라고 설명한다. 다만 공개 글 자체에는 구체적인 재현율 수치가 본문에 제시되지 않고 별도 벤치마크 링크로 넘겨져 있어, 실무자라면 이 지표를 직접 확인하고 자신의 데이터 분포에 맞는지 검증하는 절차가 필요하다.
현재 지원 언어는 영어, 스페인어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 네덜란드어 일곱 가지다. 모두 라틴 문자 기반이라는 점은 한국어·일본어·중국어처럼 문자 체계와 이름·주소 표기 관행이 다른 환경에는 그대로 적용하기 어렵다는 뜻이기도 하다. 한국의 주민등록번호, 사업자번호, 도로명 주소 체계는 정규표현식 계층을 새로 짜야 하고, 이름과 주소를 문맥으로 잡아내는 MiniLM 부분도 한국어 데이터로 다시 다루지 않는 한 성능을 보장하기 어렵다.
실무적 의미와 한계
그럼에도 Rampart가 주는 시사점은 분명하다. 개인정보 보호를 '서버에서 지우겠다'는 약속이 아니라 '애초에 보내지 않는다'는 아키텍처로 풀었다는 점이다. 브라우저 안에서 전송 직전에 필터링이 끝나므로, 외부 LLM API를 쓰는 사내 챗봇이나 고객 응대 도구를 만드는 팀이라면 클라이언트 측 1차 방어선이라는 설계 패턴 자체를 참고할 만하다. 결정론적 규칙과 소형 모델을 역할에 따라 분담시킨 구조도 과하게 큰 모델 하나에 모든 탐지를 맡기는 방식보다 운영 비용과 예측 가능성 면에서 합리적이다.
동시에 NDS 스스로 이 제품을 알파 단계이자 '첫 번째 방어선'이라고 규정한 점을 놓쳐서는 안 된다. 규칙으로 잡지 못하는 변형된 개인정보, 간접적으로 신원을 드러내는 표현, 지원 언어 밖의 입력은 여전히 빠져나갈 수 있다. 완결된 보호 장치가 아니라 더 두터운 개인정보 관리 체계의 출발점으로 보는 편이 정확하다. 모델은 HuggingFace에서, 라이브러리는 NPM에서 받을 수 있고 백서도 함께 공개돼 있으니, 도입을 검토한다면 벤치마크 수치와 지원 범위를 먼저 자신의 요구에 비추어 따져보는 것이 순서다.