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+ | Прочие категории |
Покрытие: Этап 3 решает ~55% всех угроз.
Этап 4: Ансамбль LLM (100-500мс)
Для неоднозначных сообщений:
- Основной: 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 параметров)
- Мультиязычное расширение: польские, чешские, немецкие паттерны
- Обучение в реальном времени: автогенерация паттернов
Методология на странице разработчиков.
Хотите проверить подозрительное сообщение?