Habr AI→ оригинал

Разработчик построил локальный спам-фильтр на модели ruBert-base-antispam без VPN

На Habr описали, как локальная модель ruBert-base-antispam помогает добить спам, который проходит через фильтры Яндекса, Mail и SpamAssassin. Модель на 177 миллионов параметров занимает около 550 МБ памяти и отвечает за 100-200 миллисекунд, отсекая псевдо-спам вроде приглашений на конференции и кредитных рассылок.

AI-обработка оригинала Habr AI; редакция Hamidun News
Разработчик построил локальный спам-фильтр на модели ruBert-base-antispam без VPN
Источник: Habr AI. Коллаж: Hamidun News.
◐ Слушать статью

Разработчик описал на Habr, как построил многоуровневую систему фильтрации спама на почте без VPN, добавив в неё локальную модель ruBert-base-antispam с HuggingFace — файн-тюн DeepPavlov/rubert-base-cased-conversational на 177 миллионов параметров, которому хватает около 550 МБ оперативной памяти.

Как устроена многоуровневая фильтрация

Реклама у автора блокируется через собственный DNS-сервер и локальные CSS-фильтры, а вот с почтовым спамом пришлось повозиться отдельно. Схема выстроена в несколько последовательных ступеней: первыми письма проверяют встроенные фильтры Яндекса и Mail — часть спама они отсеивают ещё до пересылки на другой ящик. То, что проходит через них, попадает на собственный сервер автора, где стоит SpamAssassin и ловит ещё часть мусора.

После двух уровней часть писем всё равно просачивается и доезжает до Gmail: что-то автоматически оседает в папке «Спам», а что-то попадает во входящие с раздражающим уведомлением. Автор хотел, чтобы со временем в папках не копился мусор, который приходится разгребать вручную — а спамеры, по его словам, тоже не сидят без дела и постоянно обновляют приёмы обхода фильтров.

Почему стандартных фильтров не хватало

Особую проблему создавали письма, которые формально не являются нарушением: приглашения на конференции, партнёрские предложения, кредитные рассылки. Байесовский фильтр такие сообщения ловит плохо, потому что в них нет явных признаков классического спама — только назойливость и низкая ценность для получателя. Именно эту серую зону между «точно спам» и «точно не спам» три предыдущих уровня фильтрации закрыть не смогли, и понадобился отдельный инструмент, способный оценивать смысл письма, а не только формальные признаки рассылки.

  • Модель — ruBert-base-antispam с HuggingFace, файн-тюн DeepPavlov/rubert-base-cased-conversational
  • 177 миллионов параметров, 12 слоёв трансформера, hidden size 768
  • Лимит на вход — 512 токенов
  • Потребление памяти — около 550 МБ, ответ занимает 100-200 миллисекунд
  • Бинарный классификатор: на выходе только 0 или 1, без промптов и reasoning

Какую модель выбрал автор

Локальная BERT-модель закрыла сразу обе проблемы — и накопление полу-спама, и нежелание зависеть от платных облачных API. ruBert-base-antispam — это бинарный классификатор: на входе текст письма, на выходе 0 или 1, никаких промптов и рассуждений, как у больших языковых моделей. Такая простота архитектуры и даёт скорость ответа в 100-200 миллисекунд при памяти около 550 МБ — модель можно держать постоянно запущенной на обычном домашнем сервере, не заботясь о лишней нагрузке на систему.

Ограничение в 512 токенов на входе для задачи фильтрации спама не критично: письму не нужно анализировать целиком, достаточно первых абзацев, чтобы понять его характер. При этом базовая модель DeepPavlov/rubert-base-cased-conversational, на которой построен файн-тюн, изначально обучалась на разговорном русском языке — это должно помогать точнее отличать живую переписку от рекламных и полурекламных рассылок.

Что это значит

Кейс показывает, что для узких прикладных задач вроде фильтрации спама не обязательны большие облачные LLM: небольшая локальная BERT-модель на 177 миллионов параметров справляется быстрее и дешевле, работая полностью offline и без VPN.

Частые вопросы

Какую модель использует автор для фильтрации спама?

Это ruBert-base-antispam с HuggingFace — файн-тюн модели DeepPavlov/rubert-base-cased-conversational, 177 миллионов параметров, 12 слоёв трансформера и hidden size 768.

Сколько ресурсов требует такая локальная модель?

Модели хватает около 550 МБ оперативной памяти, а ответ на один текст занимает 100-200 миллисекунд; максимальная длина входа ограничена 512 токенами.

ЖХ
Hamidun News
AI‑новости без шума. Ежедневный редакторский отбор из 50+ источников. Продукт Жемала Хамидуна, Head of AI в Alpina Digital.

Хотите не читать про ИИ, а внедрить его?

«AI News» — это полезные новости из мира ИИ. Системно научиться работать с нейросетями и применять их в работе — в Hamidun Academy.

Что вы думаете?
Загружаем комментарии…