본문으로 건너뛰기

LLM 기반 PII 탐지기를 모델에 맞춰 설정하는 방법

pii-detector가 LLM prompt와 후처리로 다국어 개인정보 스팬을 찾아냅니다.

이 요약은 AI가 원문을 분석해 생성했습니다. 정확한 내용은 원문 기준으로 확인하세요.

TL;DR

Fine-tuning에 사용한 원문에 이름, 주소, 이메일, 전화번호 같은 개인정보가 남아 있으면 모델이 이를 기억하고 의도하지 않은 프롬프트에 재현할 수 있습니다. pii-detector는 개인정보 종류와 출력 형식을 system prompt로 지정하고, Amazon Bedrock 또는 자체 호스팅 모델을 동일한 Inferencer 인터페이스로 호출한 뒤 JSON 응답을 문자 스팬으로 변환합니다. 다섯 개 공개 코퍼스의 49,365개 레코드와 222,114개 정답 스팬을 여덟 언어로 평가한 결과 Core F1은 74.9~83.1%였고, Mistral Large 3가 83.1%, OpenAI PrivacyFilter가 80.7%, OSS-GPT 20B가 81.6%를 기록했습니다. 도메인별 엔터티 정의를 prompt에 추가한 Extended 설정은 재학습 없이 extended-entity F1을 약 12%에서 약 73%로 높였습니다.

섹션별 상세

01
Fine-tuning 데이터에는 이름, 주소, 이메일, 전화번호, 국가 식별번호와 금융 계좌처럼 모델이 기억할 수 있는 개인정보가 섞일 수 있습니다. 기존 token-classification 모델은 학습 시 고정한 라벨만 인식하므로 직원 ID나 crypto-wallet 주소처럼 새 데이터셋에서 생긴 식별자를 추가하려면 재라벨링과 재학습이 필요합니다. pii-detector는 엔터티 종류를 코드가 아니라 inference-time instruction으로 옮겨 이 고정 범위를 줄입니다.
02
탐지 로직은 개인정보 스키마를 담은 system prompt와 얇은 parsing layer에 두고, 모델에는 원문과 탐지 대상 목록을 함께 전달합니다. 모델은 각 개인정보의 유형과 원문 값을 JSON 목록으로 반환하며, 후처리기가 정규식으로 원문 내 위치를 찾고 중복을 제거합니다. 따라서 엔터티 종류를 한 줄의 prompt 수정으로 바꿀 수 있고 모델 재학습이나 파이프라인 재배포가 필요하지 않습니다.
03
모델과 배포 환경은 Inferencer라는 공통 인터페이스 뒤에 분리됩니다. 입력은 메시지 목록이고 출력은 assistant의 텍스트이므로 Amazon Bedrock의 관리형 모델과 Amazon EC2에서 직접 운영하는 open model을 같은 detector에 연결할 수 있습니다. 이 구조는 데이터가 Amazon Bedrock에 도달할 수 없는 secure 또는 air-gapped 환경에서도 자체 adapter를 추가해 같은 탐지 흐름을 유지하게 합니다.
bash
cd pii-detector
python -m venv .venv && source .venv/bin/activate
pip install boto3
export PYTHONPATH=. # so `import pii_detector` resolves from the repo root

가상 환경을 만들고 boto3를 설치한 뒤 저장소 루트를 Python 모듈 경로로 설정합니다.

bash
export AWS_PROFILE=my-bedrock-profile
export AWS_REGION=us-east-1

Amazon Bedrock Converse API를 호출할 AWS 프로필과 리전을 환경 변수로 지정합니다.

python
from pii_detector import BedrockInferencer, PiiDetector
inferencer = BedrockInferencer(
    model_id="openai.gpt-oss-20b-1:0",
    region="us-east-1",
)
detector = PiiDetector(inferencer)
spans = detector("Email [email protected] or call Jane at 555-0142.") # -> [{'pii_entity_type': 'CONTACT_INFO', 'pii_entity_value': '[email protected]', # 'start': 6, 'end': 21}, ...]

Amazon Bedrock 모델을 추론 백엔드로 연결하고 입력 문장에서 개인정보 스팬과 문자 오프셋을 반환받습니다.

04
탐지 결과는 모델이 직접 생성한 문자 위치가 아니라 개인정보 값에서 복원됩니다. JSON parsing으로 항목을 읽고, 정규식으로 각 값을 원문에서 찾아 시작점과 끝점을 계산한 뒤, DATE나 CONTACT_INFO처럼 기준 어휘와 어긋난 라벨을 morphology와 alias table로 교정합니다. 어떤 기준에도 매핑되지 않는 라벨은 UNK로 남겨 억지로 분류하지 않으므로 모델의 환각성 라벨을 추적할 수 있습니다.
05
벤치마크는 Hugging Face의 다섯 공개 PII 코퍼스에서 약 10,000개씩 샘플링해 구성됐으며, 여덟 언어와 영어 HR·금융·고객서비스 문서를 포함합니다. 데이터셋과 detector마다 다른 라벨을 NAME, ADDRESS, CONTACT_INFO 등 12개 공통 taxonomy로 매핑하고 시작점·끝점·라벨이 모두 일치하는 IoU 1.0 기준으로 Precision, Recall, F1을 계산했습니다. 이 공통 범위의 Core F1은 Mistral Large 3 83.1%, OSS-GPT 20B 81.6%, OpenAI PrivacyFilter 80.7%, Nova Lite 2 74.9%로 나타났습니다.
06
모델 크기만으로 지연시간을 예측하기 어렵다는 결과도 확인됩니다. OSS-GPT 20B는 Amazon EC2에서 약 1.2초가 걸렸지만 비슷한 크기의 Qwen3.6-27B는 약 12.8초가 걸렸고, 글에서는 reasoning verbosity와 architecture가 원시 파라미터 수보다 큰 영향을 준다고 설명합니다. OSS-GPT 20B는 Amazon EC2에서 81.6%, Amazon Bedrock에서 81.3%를 기록해 backend 선택이 정확도와 운영 통제 사이의 선택지가 될 수 있음을 보여줍니다.
07
기본 설정은 공통 PII만 대상으로 하므로 occupation, company name, crypto-wallet 주소, vehicle identifier 같은 데이터셋별 엔터티를 거의 찾지 못합니다. Extended 설정은 해당 엔터티의 정의와 few-shot 예시를 prompt에 추가하고 충돌하는 do-not-flag 항목을 제거해 탐지 범위를 넓힙니다. 그 결과 여러 모델에서 extended-entity F1이 대략 12%에서 73% 수준으로 상승했고, OSS-GPT 20B는 12.1%에서 73.3%, Mistral Large 3는 17.3%에서 72.7%로 변했습니다.
08
실행 과정은 Python 3.11 이상과 AWS 계정, Amazon Bedrock 모델 접근 권한, boto3를 준비하는 단계로 구성됩니다. 사용자는 AWS_PROFILE과 AWS_REGION을 지정하고 BedrockInferencer에 model_id를 넣은 뒤 PiiDetector를 호출하며, 반환된 정확한 문자 오프셋을 후속 redaction 단계에 전달할 수 있습니다. 관리형 Bedrock backend는 별도 서버 관리 없이 토큰 사용량만큼 비용을 내고, 자체 호스팅 backend를 선택하면 해당 인프라의 종료와 관리가 운영자의 책임이 됩니다.

용어 해설

개인 식별 정보(Personally Identifiable Information)
개인의 이름, 주소, 이메일, 전화번호, 국가 식별번호, 금융 계좌처럼 특정 개인을 직접 또는 간접적으로 식별할 수 있는 정보입니다. 학습 데이터에 남아 있으면 모델이 프롬프트를 통해 실제 개인정보를 재현할 위험이 있습니다.
토큰 분류(Token Classification)
입력 문장을 토큰 단위로 나눈 뒤 각 토큰에 이름, 주소, 이메일 같은 라벨을 부여하는 방식입니다. 학습 시 정한 라벨 체계에 묶이므로 새로운 도메인 식별자를 추가하려면 데이터 재라벨링과 재학습이 필요합니다.
스팬 수준 F1(Span-level F1)
텍스트에서 개인정보가 시작하고 끝나는 위치와 엔터티 라벨을 함께 맞혔는지 평가하는 지표입니다. 이 글에서는 예측 스팬의 시작점, 끝점, 라벨이 모두 일치하는 경우를 기준으로 Precision과 Recall을 결합해 계산합니다.
Amazon Bedrock Converse API
서로 다른 대규모 언어 모델과 대화형 메시지 형식으로 통신할 수 있는 Amazon Bedrock의 인터페이스입니다. pii-detector는 이 API를 통해 메시지를 전달하고 모델의 텍스트 응답을 받아 개인정보 스팬으로 변환합니다.
문자 오프셋(Character Offset)
입력 문자열에서 특정 개인정보가 시작하고 끝나는 문자 위치를 가리키는 값입니다. 모델이 텍스트 값만 반환하면 후처리 단계가 정규식으로 원문에서 위치를 찾아 시작점과 끝점을 부여합니다.

기술

  • Amazon Bedrock
  • Amazon Bedrock Converse API
  • Amazon EC2
  • Python
  • boto3
  • pii-detector
  • Mistral Large 3
  • OSS-GPT 20B
  • Nova Lite 2
  • OpenAI PrivacyFilter
  • Qwen3.6-27B
  • Gemma-4-E4B-it
  • Qwen3.6-35B-A3B
  • Qwen3.5-9B
  • Hugging Face

활용 사례

  • Fine-tuning 데이터에서 개인정보 스팬 탐지
  • 고객지원 transcript와 chat log의 개인정보 정제
  • HR 및 금융 문서의 개인정보 redaction
  • 도메인별 직원 ID와 crypto-wallet 주소 탐지
  • Amazon Bedrock 또는 자체 GPU 환경에서의 다국어 PII 탐지
AI 분석 전체 내용 보기

AI 요약 · 북마크 · 개인 피드 설정 — 무료

출처 · 인용 안내

원문 발행 2026. 09. 11.수집 2026. 09. 11.출처 타입 RSS

인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.