РелизРазбор · На радарHabr AI→ оригинал

Антиспам-бот TAB получил личный кабинет и сайт: 13 тысяч спама удалено, ошибок 0,39%

Автор Telegram-бота TAB, который удаляет спам собственной LSTM-моделью с вниманием, подвёл итоги полугода. Бот работает в 68 чатах, проверил 527 554 сообщения и нашёл 13 422 спама при 0,39% ошибок. Управление режимами переехало из чата в личный кабинет /lk, а ещё появился белый список. Главная нерешённая проблема — спам в виде картинок и стикеров.

AI-обработка оригинала Habr AI; редакция Hamidun News
Антиспам-бот TAB получил личный кабинет и сайт: 13 тысяч спама удалено, ошибок 0,39%
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #1Спам — 2,54% трафика, пик в будни около полудня по Москве
Ключевой факт #2Бан только если сработали и база спамеров, и модель
Ключевой факт #3OCR (Tesseract, EasyOCR, RapidOCR) с картинками не справился

Пет-проекты обычно умирают через месяц после первого поста. TAB — Telegram-бот, который сам удаляет спам, — живёт уже больше года и растёт. Полгода назад у него были две админские команды и обещание «когда-нибудь сделать дашборд». Теперь есть сайт, инструкция и личный кабинет.

Что получилось в цифрах

Бот состоит в 68 чатах. Через него прошло 527 554 сообщения, 13 422 из них оказались спамом. Это 2,54% трафика, примерно каждое 39-е сообщение. Забанено 11 193 спамера, доля ошибок модели — 0,39%. Модель — LSTM с механизмом внимания, обученная на авторской библиотеке LANCETNIC. Готовые модели с Hugging Face автор не брал.

Тепловая карта на сайте показывает, что у ботоферм вполне человеческий график. Активность идёт с 8 до 18 по Москве, пик приходится на полдень в будни, ночью тишина, а воскресенье самый спокойный день. Для админа это практичный сигнал: ручную модерацию можно планировать под рабочие часы.

Личный кабинет и белый список

Раньше режим переключали командами /handbot и /autobot прямо в чате. Команду видят все участники, а если чатов пять, её надо написать пять раз. Теперь владелец пишет боту в личку /lk, выбирает чат и в один клик меняет режим или открывает белый список.

Режимов два. В автоматическом нейросеть проверяет каждое сообщение и сразу удаляет спам. В стандартном при подозрении бот зовёт модераторов, и те жмут «Это спам» или «Это не спам». Первая кнопка оставляет сообщение и добавляет его в датасет для дообучения, вторая удаляет сообщение и банит автора. Так админы, сами того не замечая, бесплатно размечают данные.

Белый список решает типичную боль: рекламодатель договорился с админами, а бот режет его посты как спам. Добавить человека можно числовым ID или пересылкой его сообщения боту. Таких пользователей бот полностью игнорирует. Пока кабинет доступен только владельцам чатов, не всем администраторам.

Защита от ложных банов устроена просто. Автоматический бан происходит, только если пользователь есть в глобальной базе спамеров и модель признала сообщение спамом. Теперь проверок три, но что проверяется на третьем уровне, автор не раскрывает, чтобы его не научились обходить.

Что сломалось и чему это учит

Летом автор два месяца не дообучал модель, и бот начал пропускать откровенный спам. В июле он собрал свежий датасет на 30 000 строк. Для класса «не спам» добавил комментарии из городских пабликов ВКонтакте, чтобы разнообразить обычную речь. В одном из дообучений Adam заменили на RAdam, результат в проде пока наблюдают. Урок знакомый всем, кто держит ML в проде: данные устаревают, а спамеры адаптируются быстрее, чем кажется.

Самая больная тема — спам картинками и стикерами. Текстовая модель его просто не видит. Tesseract, EasyOCR и RapidOCR не справились. Qwen справился, но локально его не запустить, а API для хобби-проекта обойдётся недёшево. Автор честно признаёт, что пока не знает, что делать. Он также подозревает, что его LSTM «не работает как LSTM», и собирается пересобрать архитектуру.

Что из этого вынести

Если вы делаете модерацию для сообщества, стоит забрать три вещи: ручное подтверждение как бесплатный источник разметки, двойное условие для бана и регулярное дообучение на свежих данных. Если у вас картиночный спам, дешёвого OCR-решения, похоже, нет. Придётся сравнивать стоимость мультимодальной LLM со своей моделью для изображений.

Ограничения очевидны. Это пет-проект одного человека, метрики приведены самим автором и независимо не проверялись, а 0,39% ошибок посчитаны по его же разметке. Но как пример того, как маленький продукт обрастает настоящей инфраструктурой, история полезна. Сайт со статистикой — tab.lancetnic.ru, бот — @tantispam_bot.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: что получилось в цифрах?

Бот состоит в 68 чатах. Через него прошло 527 554 сообщения, 13 422 из них оказались спамом. Это 2,54% трафика, примерно каждое 39-е сообщение. Забанено 11 193 спамера, доля ошибок модели — 0,39%. Модель — LSTM с механизмом внимания, обученная на авторской библиотеке LANCETNIC. Готовые модели с Hugging Face автор не брал. Тепловая карта на сайте показывает, что у ботоферм вполне человеческий график.

Что известно по теме: личный кабинет и белый список?

Раньше режим переключали командами /handbot и /autobot прямо в чате. Команду видят все участники, а если чатов пять, её надо написать пять раз. Теперь владелец пишет боту в личку /lk, выбирает чат и в один клик меняет режим или открывает белый список. Режимов два. В автоматическом нейросеть проверяет каждое сообщение и сразу удаляет спам. В стандартном при подозрении бот зовёт модераторов, и те жмут «Это спам» или «Это не спам».

Что известно по теме: что сломалось и чему это учит?

Летом автор два месяца не дообучал модель, и бот начал пропускать откровенный спам. В июле он собрал свежий датасет на 30 000 строк. Для класса «не спам» добавил комментарии из городских пабликов ВКонтакте, чтобы разнообразить обычную речь. В одном из дообучений Adam заменили на RAdam, результат в проде пока наблюдают. Урок знакомый всем, кто держит ML в проде: данные устаревают, а спамеры адаптируются быстрее, чем кажется. Самая больная тема — спам картинками и стикерами. Текстовая модель его просто не видит.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Закрытый клуб практиков · Vibe Club

Внедряйте ИИ быстрее рынка вместе с инженерами и фаундерами

Внутри Vibe Club (hamidun.com/club): еженедельные живые мастермайнды и разборы архитектуры с Жемалом Хамидуном, закрытый Tech Radar, LMS и обновляемая база из 370+ боевых скиллов.

Вступить в Vibe Club →Тест-драйв Академии (72ч)
Что вы думаете?
Загружаем комментарии…