해결한 문제
보이스피싱 통화 데이터는 개인정보 제약으로 충분히 확보하기 어려웠고, 확보한 보이스피싱·일반 통화 데이터의 길이 분포 차이가 모델의 편향으로 이어질 수 있었습니다. 클래스별 데이터 수와 길이 분포를 먼저 확인한 뒤 데이터 구성 자체를 모델링 문제의 핵심으로 다뤘습니다.
데이터와 모델링
- 실제 보이스피싱 데이터와 생성 데이터를 결합하고 역번역 기반 증강을 적용
- 일반 통화 데이터는 보이스피싱과 유사한 전화상담 비중과 길이 분포를 고려해 언더샘플링
- KiWi 형태소 분석과 TF-IDF 벡터화
- K-fold 교차검증과 여러 머신러닝 모델 비교
- 1차 stacking ensemble의 보류 구간을 2차 mBERT ensemble이 다시 판단하는 단계형 구조
당시 프로젝트 기록에는 1차 모델 Recall 97.6%, F1-score 98.8%, FN 12건, 2차 모델 Recall 98.6%, F1-score 99.0, FN 7건이 남아 있습니다. 이 수치는 당시 프로젝트의 평가 데이터와 조건에서 얻은 기록이며 일반 서비스 정확도로 확대 해석하지 않습니다.
웹 서비스
Django 기반 웹 애플리케이션에서 음성 파일 업로드 → VITO API STT → 1·2차 모델 판단 → LLM 안내 메시지 생성 → 보이스피싱 여부·유형·대응 안내 → 사용자 feedback 흐름을 구성했습니다.
팀장 역할
공동 문서와 개발 환경을 정리하고 Git 사용 가이드를 공유했으며, Scrum·WBS·RACI를 활용해 역할과 일정을 가시화했습니다. 데이터 증강·샘플링·모델 선택의 근거와 실험 결과를 팀이 재현할 수 있도록 기록하는 데 집중했습니다.