파키스탄 사기 문자 걸러주는 4B 소형 모델 안전 도우미 '노티스 헬퍼' 공개
파키스탄의 한 개발자가 허깅페이스 'Build Small' 해커톤에서 의심스러운 문자 메시지를 가려내는 안전 도구 '파키스탄 노티스 헬퍼(Pakistan Notice Helper)'를 만들어 공개했다. 이 도구는 사용자가 링크를 누르거나 전화를 걸거나 OTP를 공유하거나 결제를 하기 전에, 받은 메시지가 얼마나 위험한지 이해하도록 돕는다. 특정 지역의 문제에 집중한다는 점에서 해커톤의 'Backyard AI' 트랙에 출품됐다.
출발점은 흔한 문제였다. 파키스탄 사람들은 은행, 택배사, 세무 당국, 교통경찰, 공공요금 기관, 이동통신사, 정부 부처를 사칭한 메시지를 일상적으로 받는다. 일부는 진짜지만 상당수는 사기다. 개발자는 어려운 점이 메시지를 읽는 것이 아니라 그다음 무엇을 해야 할지 아는 것이라고 설명했다.
파키스탄 노티스 헬퍼는 메시지의 진위를 판정하는 도구가 아니다. 특정 메시지가 공식적으로 진짜인지 가짜인지 단정하지 않는다. 대신 분류(triage) 도구로 작동한다. 텍스트나 스크린샷을 입력받아 위험 등급, 짧은 설명, 눈에 띄는 위험 신호, 그리고 안전한 다음 단계를 돌려준다.
최종 운영 모델로는 llama.cpp를 통해 돌아가는 Qwen3.5 4B Q8이 선택됐다. 개발자가 진행한 10개 사례 평가에서 이 모델은 모든 고위험 사기 사례와 두 건의 스크린샷 사례를 모두 통과했다. 전체 구성은 허깅페이스 스페이스의 맞춤형 Gradio 프런트엔드, 대기열을 둔 Gradio 서버 엔드포인트, Modal 엔드포인트, CUDA llama.cpp, 그리고 비전 프로젝터를 더한 Qwen3.5 4B Q8 MTP GGUF로 이어진다. 이 구성은 텍스트와 스크린샷을 모두 처리하면서도 해커톤의 32B 모델 제한 아래에 머문다.
이 앱은 영어와 우르두어를 지원한다. 파키스탄에서 의심스러운 메시지는 영어, 우르두어, 로마자 우르두어 또는 이들이 섞인 형태로 쓰이는 경우가 많기 때문이다. 우르두어 모드는 단순 번역 인터페이스가 아니라 화면을 오른쪽에서 왼쪽(RTL) 배치로 바꾸고 제목·라벨·위험 카드·검증 메시지·결과 컨트롤을 번역하며, 모델이 평가 자체를 우르두어 문자로 생성하도록 한다. 그 결과 사용자는 위험 등급, 설명, 위험 신호, 안전한 다음 단계, 필요 시 답장 초안까지 우르두어로 받을 수 있다.
앱이 살피는 경고 신호로는 긴급 위협이나 계정 정지 위협, OTP·PIN·비밀번호·CVV·CNIC·카드 정보 요구, 의심스러운 결제 링크나 개인 휴대전화 번호, 은행·통신사·택배사·세무 당국·경찰 사칭, 그리고 선입금을 요구하는 경품·환급·일자리·혜택 등이 있다. 도구는 이런 신호가 보이면 메시지 안의 링크나 전화번호를 쓰지 말고 직접 찾은 공식 채널을 통해 확인하라는 식의 안전한 대처법을 제시한다.
개발자는 소형 모델로 만드는 작업이 가장 높은 벤치마크 점수를 좇는 것이 아니라 품질·속도·비용·제품 안전 사이의 균형을 찾는 일에 가깝다고 했다. 또한 소형 모델은 과제 범위가 분명할 때 가장 잘 작동했다고 덧붙였다. 이 도구는 일반적인 사기 수사관이 될 필요 없이 눈에 보이는 위험 신호를 짚고, 과장하지 않으며, 안전한 다음 단계를 주기만 하면 됐다.
모델 선택 과정도 공유했다. 처음에는 Qwen3.6 27B로 시작했고 품질은 훌륭해 이 작업 기준 약 95점(100점 만점)으로 평가했지만, 더 많은 VRAM과 큰 GPU 머신, 긴 콜드 스타트 복구 시간이 필요해 비용과 실용성에서 부담이 컸다. 이후 더 작은 비전-언어 모델 MiniCPM-V 4.6 Q8을 시도했으나 GPU에서 매우 느렸고 ZeroGPU에서 할당량과 런타임 문제가 생겼으며, Modal로 옮겨 배포했을 때는 시작은 빨랐지만 품질이 충분치 않아 너무 많은 테스트 사례에서 실패해 제외했다.
결국 개발자는 Artificial Analysis의 소형 오픈소스 모델 순위에서 골디락스(딱 맞는) 모델로 Qwen3.5 4B를 찾았다. 이 작업에서 27B가 약 95점이라면 4B는 약 80점 수준이었지만, 더 저렴하게 서빙되고 더 빨리 로드되며 배포가 쉽고 더 작은 Modal 머신에서도 실용적이라는 점에서 균형이 맞았다.
프롬프트와 출력 규약도 중요했다. 사고(thinking) 모드가 구조화된 JSON을 반환하기도 전에 500토큰 출력 예산을 소진해 운영에서는 사고 모드를 껐고, 빽빽한 로마자 우르두어 스크린샷 한 건이 원래의 완성 한도에 도달해 이미지 요청에는 더 큰 토큰 예산을 부여했다. 또 한 응답이 검증되지 않은 공식처럼 보이는 도메인을 제안하자, 지어낸 URL·전화번호·기관·사실을 금지하도록 시스템 프롬프트를 수정했다. 개발자는 제품에 가장 좋은 모델이 늘 가장 큰 모델은 아니며, 이 프로젝트에서 Qwen3.6 27B가 원본 품질은 최고였지만 Qwen3.5 4B가 제품으로서는 최선이었다고 결론지었다.