23.06.15
DEVOTEE를 활성화 시키면
지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.
버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.
| 컨텐츠 유형 | 제목 | 저장일 | 삭제 |
|---|
본인인증 로그인에 실패하였습니다.
회원이 아니시거나 본인인증 등록이
완료되지 않은 사용자입니다.
보이스 피싱(Voice Phishing)은 전기통신금융사기의 종류 중 하나로,
범행 대상자에게 전화를 걸어 금융감독원이나 수사기관을 허위 사실을 말하면서 협박하여 불안감을 조성하는 방법으로 송금을 요구하거나 특정 개인정보를 수집하는 사기 수법을 말합니다.(위키백과)
국내외를 막론하고 SK텔레콤을 비롯한 여러 통신사들은 보이스 피싱을 막기 위해 겹겹이 여러 대책을 마련하고 운영해오고 있지만,
충분하지 않아 때때로 보이스 피싱의 피해자가 발생하고 있는 것이 사실입니다.
요즘은 AI의 시대, 특히 그 중에서도 대형 언어 모델(LLM, Large Language Model)의 전성기라 봐도 무방할만큼 우수하고 다양한 LLM들을 쉽게 만나볼 수 있습니다.
특히, 사용자 단말기의 성능이 높아지고, 작은 크기의 LLM(SLM, Small Language Model)이 등장하게 되면서 LLM을 사용자 단말상(On-device)에서 구동해볼 수 있게 되었습니다.
본 글에서는 on-device로 SLM을 구동하여 보이스 피싱을 탐지하는 간단한 모델을 구현해보기로 합니다.
(LLM/SLM 학습은 Devocean내 여러 글 및 다양한 곳에서 설명하고 있으니, 여기서는 자세한 설명은 생략하고 과정 및 방법만 간략하게 설명합니다. 필요하다고 생각한 각 부분에는 링크를 달아뒀습니다.)
물론, LLM을 활용하면 SLM보다 보이스 피싱 탐지를 훨씬 더 잘 할 수 있겠지만, LLM은 on-device로 구현하기에는 그 크기가 너무 크고, 서버를 이용한 서비스는 개인 정보 이슈로 접근이 쉽지 않습니다.
사실, SLM과 LLM을 구분짓는 크기의 기준은 명확하지 않으나, 여기서는 SLM을 사용자 단말에 탑재가능한 수준의 크기로 한정합니다.
google의 gemma-3-1b-it, meta의 Llama-3.2-3B-Instruct, Alibaba의 Qwen2.5-0.5B-Instruct등이 그 대상이 될 수 있겠네요.
여기서 잠깐 on-device, LLM, SLM의 장단점을 살펴볼까요?
장점 | 단점 | |
|---|---|---|
On-device | 개인정보 유출 X | 한정된 resource |
LLM | 높은 언어/문맥 이해도 다양한 용도 | 매우 많은 resource 사용 |
SLM | (LLM 대비) 상대적으로 적은 resource (일반 모델 대비) 높은 문맥 이해도/다용도 | (LLM 대비) 상대적으로 낮은 성능 (일반 모델 대비) 상대적으로 큰 크기 |
[ 표1. On-device / LLM / SLM의 장단점 ]
SLM에 통화 내용을 input으로 넣고, output으로 보이스 피싱 여부를 판단하려면 아래와 같은 절차를 거쳐야 합니다.
[ Flow 1. On-device SLM에서의 보이스 피싱 판단 과정 ]
여기서 새로운 용어가 하나 등장합니다. 바로 STT(Speech To Text)입니다. Text만 이해할 수 있는 언어모델을 위해 음성 언어를 text로 변환시켜주는 과정이 필요합니다.
STT는 크게 두 과정으로 나눌 수 있습니다. ASRAutomatic Speech Recognition) 부분과 ITN(Inverse Text Normalization) 부분인데요, 아래 내용을 보시면 쉽게 이해하실 수 있을 겁니다.
[ Flow 2. STT 과정에서 AST/ITN의 기능 ]
언제나 그렇듯이 좋은 데이터는 좋은 모델을 만듭니다. 따라서 성능이 좋은 STT에서 나온 데이터로 학습한 모델은 성능 좋은 보이스피싱 판별 모델의 밑거름이 됩니다.
보시다시피, on-device로 SLM을 구동하여 보이스 피싱을 탐지하는 간단한 모델을 구현하기 위해서는 음성 data, STT, 보이스 피싱 판별용 모델, on-device로 모델을 구동할 수 있는 플랫폼이 필요합니다.
하나씩 차례로 살펴봅시다.
음성 data
사실상 실제 보이스 피싱 음성 data 획득은 따로 공개된 것 외에는 개인정보 이슈로 불가능하다 시피한 상황이라, 여기서는 text data로 갈음합니다.
따라서 STT도 필요하지 않습니다. 혹시라도 음성 데이터로 직접 이후 과정을 진행해보고자 한다면, open source로 공개된 STT를 사용하시면 됩니다.
(OpenAI의 Whisper가 성능이 좋은 편입니다.)
보이스피싱 탐지 모델 학습용 data는 아래의 두 가지가 필요합니다.
보이스피싱 데이터: 웹사이트에 공개된 text, Youtube등에 공개된 음성 데이터(Whisper STT로 변환, 혹은 youtube script사용)를 활용합니다.
실제 통신사에서 제공하는 보이스피싱 방지 서비스에는 금융감독원/경찰청/국립과학수사원 등에서 실제 보이스 피싱 사례를 제공받아 모델을 학습합니다.
일반 데이터: AI Hub, 한국어 대화
보이스 피싱 판별용 모델
문장의 내용을 이해하고 간단한 내용을 파악하는 건 Bert로도 충분히 구현이 가능합니다.
하지만, 불안정적인 STT결과물/다양하게 변화하는 보이스 피싱 수업에 대응을 목적으로 SLM을 적용해 봅니다.
(참고로 아래에 Bert와 LLM을 비교 정리해뒀으니, 필요하신 분들은 참고하시기 바랍니다. 표2)
여기서는 QWEN을 이용하여 구현해보도록 하겠습니다.
Qwen/Qwen2.5-0.5B-Instruct 모델은 크기도 작고(1GB), 한글 이해도가 높아 우리의 목적을 달성하는데 적합한 모델이라고 생각됩니다.
본 글에서는 아래와 같은 방법으로 LoRA 학습을 진행했습니다.
Prompt
당신은 훌륭한 보이스피싱 담당 수사관입니다.
다음 대화가 보이스피싱인지 아닌지 "예"/"아니오"로 대답해주세요.
Label
보이스 피싱 데이터에는 “예”, 일반 데이터에는 “아니오”를 달아서 학습합니다.
max_new_token
“예” / “아니오”만 필요하기 때문에 1로 설정합니다.
temperature
판단은 창작의 영역이 아니므로 0 또는 모델이 받아들일 수 있는 가장 작은 수(ex. 0.00001)로 설정합니다.
특징 | 활용 | |
|---|---|---|
Bert | Bidirectional Encoder Representations from Transformers
| 문장의 빈칸 채우기 감정 분석 질문에 대한 답변 생성 등 |
LLM | Large Language Model
| 작문, 대화형 AI, 콘텐츠 생성 등 text 기반 범용적 사용 가능 |
[ 표2. Bert / LLM의 특징/활용처 비교 ]
On-device model 구동용 플랫폼
SLM을 사용자 단말에서 작동하기 위해서는 구동용 platform이 필요합니다.
현재 google의 MediaPipe가 안드로이드에, Apple의 MLX가 iOS에 적합한 것으로 보입니다. 여기서는 두 OS 모두 적용 가능한 mlc_llm을 사용해보도록 합니다.
(다만 정식 release가 없어서 서비스를 목적으로 하는 실사용에는 유의하시기 바랍니다.)
mlc_llm에서는 LoRA adapter를 지원하지 않으므로, 학습된 결과를 base model과 merge 하여 사용합니다.
양자화(Quantization)를 하지 않을 경우 크기가 약 1GB내외, 4bit 양자화를 진행할 경우, 약 300MB 내외의 크기가 나옵니다.
양자화를 진행할 경우 정확도에서 손해를 볼 수 있음을 인지하셔야 합니다.
mlc_llm의 경우 4bit 양자화는 q4f16_0 / q4f16_1 두 가지를 제공합니다.
사용자 단말 종류에 따라 잘 작동하는 방식이 다르니, 두 가지 모두 시도해보시고 적용하시길 권장드립니다.
자, 이상의 과정을 거쳐서 나온 최종 모델을 mlc_llm의 모바일 플랫폼인 MLCChat을 통해 구동해봅시다.
모델의 관점에서 보면 아래의 과정을 거친 셈입니다.
LLM 학습 (LoRA 방식 fine-tuning) → Model merge: base model + adapter → Model convert(by mlc_llm) → Model packaging (by mlc_llm) → MLCChat 구동
이제 MLCChat에 prompt와 함께 대화를 붙여 넣고 테스트 해 봅시다. 결과가 잘 나오나요?
(원하시는 결과가 잘 나오지 않을 때에는 학습 data의 정제 및 추가, 학습 parameter/양자화 등의 조건을 변경해서 시도해보시기 바랍니다.)
실제 통신사에서의 통화중 보이스피싱 탐지 과정은 훨씬 더 거대하고 복잡한 작업을 통해 만들어집니다.
엄청나게 많은 데이터를 정밀 가공하고, 정교한 prompt engineering과 함께 상당한 시간을 들여 학습한 다음,
통화와 STT 연결
LLM을 platform에 적재
STT와 LLM 연결
LLM 판단
판단 결과에 따른 통화 앱 작동
등의 과정이 추가로 필요합니다.
지금까지의 과정으로 만들어진 결과물을 아래 동영상으로 보여 드리며, 이 글을 마칩니다.
#SLM #On-device #Voice-Phishing
DEVOTEE를 활성화 시키면
지금 작성한 댓글에 AI가 댓글을 달아줍니다.