뒤로
이준범
이준범 ·

우리 모두는 스팸에서 자유로울 권리가 있다 - Smart Spam Filter

스마트폰을 쓰면서 가장 짜증나는 순간은?

일상에서 사용하는 시간이 어떻게 보면 가장 많을 수 있는 전자기기가 바로 스마트폰.

매일같이 사용하고,

또 하루에 수백번도 들어다보는 까만 액정의 전자기기.

트위터, 페이스북, 인스타그램을 넘어 쏟아지는 수많은 소셜네트워크 앱들의 푸시알람, 그리고 내가 언제 설치했는지 기억조차 나지 않는 앱들의 알람...

그럴때 우리는 "옆으로 밀어 알림 끄기"를 선택한다.

하지만, '이건 끌 수도 없고...'하는 앱이 있다.

바로 "메시지" 앱.

누가 문자를 써요 요즘..

카카오톡과 같은 메시징 앱들의 등장 이후 문자메시지는 시장에서 설 자리를 잃어버렸다.

iMessage조차도 메시지 앱의 껍데기를 쓴 새로운 메시징 앱일 뿐, 이제는 그 누구도 휴대폰 요금제의 '문자 사용량'에 신경쓰지 않게 된지 오래다.

하지만 사람의 그 빈 자리를 채운 것은 수많은 기계들의 말소리였다.

"KB국민카드3049승인 이*범님 850원 일시불 06/02 20:06 카카오 T 주차 누적...원"

"본인 확인을 위해 [528735] 인증 번호를 입력하세요. 보안을 위해 공유하지 마세요."

"[Web발신][CJ대한통운 오네(O-NE)_배송완료] 고객님의 상품이 배송 완료되었습니다..."

'띵-'하고 도착하는 문자는 내가 어제 주문한 택배가 도착했을까, 아니면 내가 방금 신청한 문자 인증번호가 온 것일까, 혹은 결제 알림이 온 것일까.

어느쪽이든 내가 지금 확인해보면 좋은 손님일 터였다.

반갑지 않은 손님

하지만 최근들어 이상한 손님들이 오기 시작했다. 절대 보고싶지도 않고, 반갑지도 않은 손님들. 그들이 우리의 스마트폰에 노크한다.

"01000000000님 아직 참여가 안되고있습니다 공지 확인 부탁드리겠습니다 http://...."

"확률높은 번호 매주 받아가세요^^"

"회원님 통합된 텔레그렘 채널 확인바랍니다 무료방 ..."

"안녕하십니까 ㅇㅇㅇ입니다 제가 드디어 성공해서 라스베가스로..."

..."오지마세요 좀."

다 저리가. 오지마.

(광고), [WEB발신], 해외문자 차단.

위 3가지를 하면 될 줄 알았다.

...될 리가 없었다. (게다가, 해외문자를 막으면 외국서비스(e.g., Apple) 인증이 불가능했다.)

키워드 기반으로 문자를 막아보기 시작했다.

끝이없었다.

image.png

추가를 추가를 해도, 글자 변경이라는 꼼수, 그리고 온갖 shorten URL 서비스를 죄다 오염시켜버리는, 그것도 모자라 도메인을 사서 리다이렉트시키는 방법까지.

"아 이건 좀 아닌 것 같다."

그러다 보게된 트윗:

image.png

맞다. 이건 나도 키워드 기반으로 하고 있었다.

근데 이건 사람이 아니라 AI가 해도 되지 않을까?

아니, 이건 AI가 해야 할 일이 맞다.

난 iOS개발, Swift 언어를 모르는데?

나는 Python/JS로 먹고 살아온 비전공 개발자인데..

심지어 요즘은 LLM만 하고 있는데?

하지만 우리에겐 ChatGPT가 있다.

난 몰라도, 쟤는 알거야.

이 믿음으로 일단 스팸을 거르는 언어 모델부터 테스트해보기 시작했다.

BERT도 있고, Llama-3도 있고.

스팸 분류기는 딥러닝, 아니 머신러닝을 배우면 가장 먼저 사용하는 예제로 나이브-베이즈 분류기를 만들때 예제 조차도 스팸 필터링일 정도로 기초적인 문제고, 여전히 100% 해결되지 못한 문제기도 하다.

처음부터 만드는건, 성능이 좋지 않다.

하지만 우리에겐 PLM(Pretrained Language Model)이 있지! 그리고 LLM도 있지!

이전에 학습해둔 KcBERT/KcELECTRA, 그리고 Llama-Ko 시리즈를 활용해보기로 했다.

가설은 두 가지.

1) KcBERT 계열은 스팸을 잘 잡을거다. (Noisy text에 강함)

2) Llama-Ko-Inst 모델을 통한 Few-shot은 좋은 스타팅포인트가 될 것 같다.

3) 그것도 부족하면 LLM을 붙이자.

근데 데이터는?

이미 수년동안 스팸으로 인해 고통받아온 사람의 아이폰 그리고 맥북의 메시징 앱에는 총 12000건의 문자가 있었고, 그 안에는 상당한 스팸 문자가 들어가있었다.

누가봐도 광고인 (광고), 그 외의 소위 '지능적 스팸', 그리고 '지능적 스미싱'.

초기 라벨링을 하기엔 충분한 데이터.

도와줘요 Gemini, 도와줘요 GPT4o.

그렇게 생긴 초기 데이터셋

"이 문장은 스팸인가요?" : False.

위와 같은 형태의 데이터를 만들어 모델을 학습시키고, 해당 모델을 테스트해보기 시작했다.

어? 잘 잡힌다. 괜찮네?

IMG_7231.jpeg(초기 앱 테스트 하던 화면. 주식 받아가라는 스미싱 문자를 잘 필터링해준다.)

이제 앱을 만들자

iOS 앱을 만들자.

채찍피티야 얼른 만들어줘.

"나는 Swift랑 앱개발은 모르지만 개발 눈치는 좀 있지."

앱에 필요한 기능은 단 하나: AI로 스팸 필터해주는 기능.

더도, 덜도 필요하지 않았다.

IMG_7210.jpeg(처음 만든 앱 UI. 온라인모드(AI 필터링), 오프라인모드(블랙리스트 필터) 기능만 구현된 상태)

앱을 만들었다. 유저 반응을 보고싶었다.

@: 뭔가 많이 생략된 것 같은데요

앱을 만들고, Xcode Cloud로 빌드를 하고, TestFlight 배포를 시작해봤다.

(요새 iOS 개발은 사이닝도 자동으로 해주더라. 짱이다.)

image.pngimage.png

사용자들이 제품을 사랑해주는 것 같았다.

생각보다 많은 사람들이 스팸 앱에 고통받고 있었던 것 같다.

나만 고통받고있던게 아니었고,

내가 만든 제품이 연구수준이 아닌 현실세계에 직접적으로 도움을 주고 있었다!

사람들의 호응은 TestFlight 테스터 수로 바로 나타났다.

IMG_8364.jpeg

공개링크를 올린 두 글 작성 후 테스터 수는 600명을 넘어가기 시작했다.

얼른 앱 출시를 해야겠다고 마음먹었다.

애플이 다행히 첫 심사는 무척 쉽게 넘어가주었다. 그리고 앱 출시.

출시 2일차, 다운로드 1000명과 앱스토어 랭크 #22를 찍다(유틸리티 섹션)

96DEF5D6-240F-456D-B256-5D3513B3D2B9_1_201_a.jpeg

개인 페이스북과 클리앙(아이포니앙)에만 올렸을 뿐인데, 다운로드 수가 1000명이 넘고 앱스토어 유틸리티 섹션 차트에 올라갔다.

나, 그리고 지인들이 사용하면 좋겠다 정도를 넘어 엄청난 인기를 얻는 모습을 보니, 욕심이 나기 시작했다.

더 많은 사람들이 이 앱을 쓰고, 스팸에서 자유로워지길 바라기 시작했다.

그래서 디스콰이엇에 글을 쓰고있다.

네, 이 글은 그래서 쓰게 된 앱 홍보글입니다.

근데 성능이 꽤 아니 진짜 괜찮아요.

그러니까 한번 앱 사용해 보세요.

여러분이 언제나 '띵'소리를 반가워 할 수 있길 기대합니다 :D

Smart Spam Filter

가장 똑똑한 AI 기반 스팸 문자 필터링 앱

11

댓글

로그인 후 댓글을 남길 수 있습니다.

Doeon Kwon 권도언
Doeon Kwon 권도언

저도 자꾸 스팸 와서 귀찮아 죽겠는데 바로 사용해볼게요 ㅎㅎ

Doeon Kwon 권도언
Doeon Kwon 권도언

준범님 메이커로그가 이번주 뉴스레터에 소개되었어요 :) https://stib.ee/hqmC