Баннер мобильный (3) Пройти тест

Как студенты Skillfactory разработали гибкий классификатор электронной почты под менторством «АВ Софт»

Когда Machine Learning помогает информационной безопасности

Кейс

2 марта 2026

Поделиться

Скопировано
Как студенты Skillfactory разработали гибкий классификатор электронной почты под менторством «АВ Софт»

Содержание

    Корпоративная почта — одна из самых уязвимых и при этом перегруженных точек в инфраструктуре компаний. Сотрудникам нужно ежедневно обрабатывать десятки категорий писем — от финансовых запросов до юридических документов. Универсальные фильтры в таких условиях работают неточно: категории уникальны, а контекст меняется. Помимо этого, работе мешает спам, а безопасности угрожают фишинг-письма.

    На хакатоне Skillfactory компания «АВ Софт» предложила студентам разработать MailLens — сервис интеллектуальной категоризации почтового трафика, способный классифицировать письма по произвольно заданным категориям и корректно обрабатывать случаи неопределенности. Рассказываем, как команда победителей подошла к задаче, какие архитектурные решения выбрала и каким получился итоговый прототип.

    «Интеллектуальная категоризация вместо универсальных фильтров»: с каким брифом пришли партнеры

    Соорганизатором и ментором на хакатоне выступила компания «АВ Софт» — российский разработчик ПО в сфере информационной безопасности. 

    Эксперты компании дали студентам бриф на стыке ML и практической кибербезопасности: разработать сервис MailLens для интеллектуальной категоризации почтового трафика. Компания предложила участникам решить задачу, которая уже имеет готовое эталонное решение в продуктовой линейке «АВ Софт». Это позволило построить образовательный процесс вокруг сравнения: студенческий MVP против профессиональной модели. 

    MailLens направлен на решение практической и при этом недооцененной проблемы корпоративной информационной безопасности — интеллектуальной категоризации почтового трафика для выявления спама и фишинговых атак. В реальной инфраструктуре компании сталкиваются не только со спамом и фишингом, но и с необходимостью гибко сортировать письма по бизнес-контексту: финансы, закупки, логистика, юридические вопросы, внутренние коммуникации. Универсальные фильтры здесь работают плохо, так как категории уникальны для каждой организации.

    Юрий Иванов, технический директор «АВ Софт»

    Студентам предстояло разработать классификатор писем с гибкой системой категорий, анализом вложений и ссылок, устойчивостью к спаму и поддержкой zero-shot-подхода. Особое внимание уделили пограничным случаям: если письмо не подходит ни под одну категорию, система должна была относить его в «Не определена» с четкой калибровкой порога уверенности.

    Участники справились с мультиязычностью, обработкой метаданных и даже экспериментальным модулем обнаружения prompt-инъекций. Но главным результатом для студентов стала возможность получить экспертную обратную связь: над чем еще предстоит работать, на чем сделать акцент и как доработать свои решения, чтобы они соответствовали стандартам промышленной разработки.

    «Искать причину неопределенности в ML — это творческий процесс»: как студенты организовали работу

    Над разработкой MailLens работали шесть команд. В итоге лучшее решение по оценке заказчика разработала команда под лидерством студента магистратуры по машинному обучению МИФИ и Skillfactory Романа Кулебакина.

    Роман взял на себя обязанности тимлида и Fullstack Data Lead, отвечал за архитектуру решения, координацию и бэкенд, а также участвовал в ML-части. Помимо него, на проекте работали пять специалистов с разными ролями. ML-инженер занимался ядром модели: обучением, построением эмбеддингов и настройкой порогов уверенности. Data Scientist анализировал и готовил данные. Backend-разработчик реализовывал API, интеграцию с почтовыми протоколами и бизнес-логику. DevOps/MLOps-инженер отвечал за контейнеризацию и пайплайны развертывания, а frontend-разработчик создавал интерфейс для настройки категорий и визуализации результатов.

    Сначала команда проанализировала задачу и предложила несколько вариантов архитектуры. Каждый участник сформулировал свое видение, после чего идеи обсудили и выбрали оптимальный вариант — с учетом ограничений по времени и требований хакатона. Все промежуточные решения передавались тимлиду, который собирал их в единый прототип. Коммуникация велась в мессенджере, где регулярно синхронизировали прогресс.

    Проект проходил через последовательные этапы: анализ задачи, выбор архитектуры, работа с данными, подбор моделей, разработка backend- и frontend-частей, настройка Docker-контейнеров, интеграция всех компонентов и тестирование итогового решения. В качестве технологической базы использовали Python, PyTorch и Transformers, SentenceTransformers, Scikit-learn и Streamlit.

    Самой сложной частью стала реализация динамического добавления пользовательских категорий без полного переобучения модели и корректная настройка порога «Не определена». Модель по умолчанию могла относить письмо к какой-либо категории даже при низкой уверенности, что снижало практическую ценность сервиса.

    Мы использовали подход на основе сравнения эмбеддингов. Письмо и описание категорий — набор ключевых тезисов, задаваемых пользователем, — преобразовали в векторные представления. Классификация происходила через поиск ближайшей категории по косинусной близости. Для категории «Не определена» внедрили динамический порог на основе распределения расстояний в обучающей выборке и адаптивную калибровку, которую администратор мог подстроить под свой трафик. Самое интересное в проекте — творческий процесс решения фундаментальной проблемы «неопределенности» в ML. Нам не нужно было просто обучить модель на 10 фиксированных классах. Мы создавали инструмент, который позволял пользователю „объяснять“ системе свои уникальные категории на лету.

    Роман Кулебакин, студент Skillfactory, тимлид команды

    Партнер сопровождал проект консультативно: в ходе хакатона представители «АВ Софт» проводили встречи с участниками, помогали уточнить требования и понять бизнес-контекст. При этом архитектурные и инженерные решения студенты принимали самостоятельно.

    Коммуникацию со студентами мы оцениваем очень высоко: вопросы были предметными, уровень понимания задачи — зрелым и профессиональным. Это говорит о хорошем уровне подготовки участников и их умении работать с реальными прикладными задачами.

    Юрий Иванов, технический директор «АВ Софт»

    «Результат во многом превосходит ожидания»: каким получился MVP

    В основе финального решения — дообученная модель XLM-RoBERTa-large, мощная мультиязычная архитектура трансформеров, показывающая высокие результаты на бенчмарке MTEB (Massive Text Embedding Benchmark). Выбор этой модели позволил обеспечить качественную семантическую классификацию писем на разных языках и сделать сервис пригодным для промышленного применения.

    В процессе работы над проектом мы глубже изучили few-shot learning и методы работы с эмбеддингами для production. Освоили практические аспекты MLOps для динамических моделей. Отработали новые механизмы организации и управления командной деятельностью.

    Роман Кулебакин, студент Skillfactory, тимлид команды

    Команда реализовала не отдельный ML-эксперимент, а целостный сервис. Проект занял первое место среди шести команд и получил 39 баллов из 40 возможных. 

    Решение команды-победителя полностью соответствует техническому заданию и во многом превосходит минимальные ожидания. Команда реализовала полноценный сервис, который классифицирует письма по пользовательским категориям, определяет степень близости к каждой категории и корректно работает с классом „Не определена“. Отдельно хочется отметить использование трансформерных моделей, продуманный пользовательский интерфейс и обработку вложенных документов — это существенно повышает практическую ценность решения для задач ИБ.

    Юрий Иванов, технический директор «АВ Софт»

    По итогам хакатона вся команда из шести человек получила приглашение на стажировку в «АВ Софт», а также памятный мерч от компании. Компания рассматривает возможность использования отдельных архитектурных подходов и технологических наработок в будущих версиях своих систем.

    Хакатон в итоге оказался не только конкурсом прототипов, но и точкой входа в профессиональное сотрудничество.

    Кейс

    Поделиться

    Скопировано
    0 комментариев
    Комментарии