데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      On-device로 작동하는 SLM기반 Voice-Phishing 탐지 모델을 만들어보자!

      별꼴 25.03.19
      2,590 4 1
      DEVOTEE 요약
      보이스 피싱은 전화 사기를 통해 송금을 요구하거나 개인정보를 수집하는 사기 수법입니다. 이를 방지하기 위해 on-device에서 SLM을 활용한 모델을 구현하여 탐지할 수 있으며, STT를 통해 음성을 텍스트로 변환 후 피싱 여부를 판단하는 절차를 포함합니다. 이러한 접근은 개인정보 보호의 장점이 있지만, 상대적으로 낮은 성능과 한정된 리소스를 요구하며, 최종 모델은 모바일 플랫폼에서 테스트 가능합니다.
      DEVOTEE 추천 블로그

      보이스 피싱(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으로 보이스 피싱 여부를 판단하려면 아래와 같은 절차를 거쳐야 합니다.

      image.png

      [ Flow 1. On-device SLM에서의 보이스 피싱 판단 과정 ]


      여기서 새로운 용어가 하나 등장합니다. 바로 STT(Speech To Text)입니다. Text만 이해할 수 있는 언어모델을 위해 음성 언어를 text로 변환시켜주는 과정이 필요합니다.

      STT는 크게 두 과정으로 나눌 수 있습니다. ASRAutomatic Speech Recognition) 부분과 ITN(Inverse Text Normalization) 부분인데요, 아래 내용을 보시면 쉽게 이해하실 수 있을 겁니다.


      image.png

      [ Flow 2. STT 과정에서 AST/ITN의 기능 ]


      언제나 그렇듯이 좋은 데이터는 좋은 모델을 만듭니다. 따라서 성능이 좋은 STT에서 나온 데이터로 학습한 모델은 성능 좋은 보이스피싱 판별 모델의 밑거름이 됩니다.

      보시다시피, on-device로 SLM을 구동하여 보이스 피싱을 탐지하는 간단한 모델을 구현하기 위해서는 음성 data, STT, 보이스 피싱 판별용 모델, on-device로 모델을 구동할 수 있는 플랫폼이 필요합니다.

      하나씩 차례로 살펴봅시다.

      1. 음성 data

        사실상 실제 보이스 피싱 음성 data 획득은 따로 공개된 것 외에는 개인정보 이슈로 불가능하다 시피한 상황이라, 여기서는 text data로 갈음합니다.

        따라서 STT도 필요하지 않습니다. 혹시라도 음성 데이터로 직접 이후 과정을 진행해보고자 한다면, open source로 공개된 STT를 사용하시면 됩니다.

        (OpenAI의 Whisper가 성능이 좋은 편입니다.)

        보이스피싱 탐지 모델 학습용 data는 아래의 두 가지가 필요합니다.

        • 보이스피싱 데이터: 웹사이트에 공개된 text, Youtube등에 공개된 음성 데이터(Whisper STT로 변환, 혹은 youtube script사용)를 활용합니다.

          실제 통신사에서 제공하는 보이스피싱 방지 서비스에는 금융감독원/경찰청/국립과학수사원 등에서 실제 보이스 피싱 사례를 제공받아 모델을 학습합니다.

        • 일반 데이터: AI Hub, 한국어 대화

      2. 보이스 피싱 판별용 모델

        문장의 내용을 이해하고 간단한 내용을 파악하는 건 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

          • Transformer 구조에서 encoder 부분만 활용

          • 수백MB 수준의 크기

          • 양방향 문맥 이해에 초점

          • 주어진 텍스트 앞뒤 모두 고려하여 분석 → 더 정확한 언어 이해 구현

          • 목적이 명확한 경우, 비교적 적은 데이터로 상당히 정확한 성능을 내는 모델 학습/구현 가능

          문장의 빈칸 채우기

          감정 분석

          질문에 대한 답변 생성 등

          LLM

          Large Language Model

          • 수GB~ 의 크기

          • 다양한 형식의 질문에 답하거나, 주어진 문맥을 기반으로 이어지는 텍스트를 생성

          • 경량화/범용성 지향적 발전

          • 특정영역에서 우수한 성능을 내는 작은 모델 학습/구현 가능

          • 하나의 메인 모델로 다양한 기능을 하는 모델 학습/구현 가능

          작문, 대화형 AI, 콘텐츠 생성 등

          text 기반 범용적 사용 가능

          [ 표2. Bert / LLM의 특징/활용처 비교 ]


      3. 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

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      별꼴 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기