97,8% точності: як працює наш ML-пайплайн
Від українських regex-паттернів до ансамблю хмарних LLM — як працює наш 4-етапний пайплайн класифікації та куди ми рухаємось.
Команда NSAI
97,8% точності: як працює наш ML-пайплайн
Як класифікувати повідомлення як шахрайське — надійно, швидко і кількома мовами? Цей пост розбирає 4-етапний пайплайн класифікації NSAI, що досягає 97,8% точності.
Виклик
Шахрайські повідомлення різноманітні:
- SMS-фішинг під виглядом Нової Пошти або ПриватБанку
- Telegram-піраміди з крипто-обіцянками
- Фальшиві збори на ЗСУ
- Соціальна інженерія, спрямована на літніх людей
Жодна окрема модель не справляється з усім. Тому ми побудували пайплайн, а не один класифікатор.
4-етапний пайплайн
Етап 1: Перевірка кешу (0мс)
Кожне повідомлення хешується (SHA-256) і кешується в Redis. Якщо ми бачили цей текст раніше — повертаємо кешований результат миттєво.
Відсоток влучень: ~35% — шахраї активно повторюють повідомлення.
Етап 2: Пошук у базі (2-5мс)
Хеш перевіряється у PostgreSQL базі відомих шахрайських повідомлень:
- Верифіковані звіти користувачів
- Дані з honeypot (Telegram-канали, SMS-шлюзи)
- Партнерські фіди (CERTs, банки, телеком)
Етап 3: Паттерн-матчинг (10-30мс)
Наш модуль UkrainianScamPatterns містить 5 000+ regex-паттернів за категоріями:
| Категорія | Паттерни | Приклади |
|---|---|---|
NOVA_POSHTA | 340+ | «Ваша посилка затримана» |
PRIVAT24 | 280+ | «Картку заблоковано» |
MONOBANK | 210+ | «Підтвердіть транзакцію» |
DIIA | 150+ | «Оновіть дані в Дії» |
MILITARY_DONATION | 190+ | Фейкові збори |
CRYPTO_SCAM | 420+ | Фейкові airdrop |
| Інші | 3 250+ | Інші категорії |
Якщо сумарна впевненість перевищує поріг (0.85), повідомлення класифікується без LLM.
Покриття: Етап 3 вирішує ~55% усіх загроз.
Етап 4: Ансамбль LLM (100-500мс)
Для неоднозначних повідомлень звертаємося до хмарних LLM:
- Основний: OpenRouter (Claude / GPT-4o / Llama)
- Резервний: OpenAI API напряму
- Страхувальний: Anthropic Claude
Використовуємо голосування більшості — якщо 2 з 3 моделей згодні, їх вердикт перемагає.
Розбивка точності
Протестовано на golden dataset (5 200 повідомлень, розмічених людьми):
| Категорія | Precision | Recall | F1 |
|---|---|---|---|
| Фішинг Нової Пошти | 99,1% | 98,7% | 98,9% |
| Банківське шахрайство | 98,4% | 97,2% | 97,8% |
| Крипто-скам | 96,8% | 95,4% | 96,1% |
| Фейкові збори | 97,6% | 96,9% | 97,2% |
| Легітимні (true neg) | 97,2% | 98,8% | 98,0% |
| Зважене середнє | 97,9% | 97,6% | 97,8% |
Хибнопозитивні
Відсоток хибних спрацьовувань: 1,2%, переважно на граничних випадках — легітимні збори, що нагадують шахрайські.
Що далі
- Файн-тюнінг локальної моделі (7B параметрів) для зменшення залежності від LLM
- Мультимовне розширення: польські, чеські, німецькі паттерни
- Навчання в реальному часі: нові підтверджені загрози автоматично генерують паттерни
Повна методологія доступна на сторінці розробників.
Хочете перевірити підозріле повідомлення?