Между строк: как нейросетевую модель научили понимать текст пользователей
ML (прим.ред. — машинное обучение) — одна из ключевых областей искусственного интеллекта. Сегодня его используют для решения задач в бизнесе, госуправлении, науке и образовании.
ML получил широкое распространение благодаря почти безграничным возможностям. Технология позволяет превращать неструктурированные, хаотичные массивы данных в упорядоченные системы и создавать решения, которые за секунды находят нужную информацию и помогают оптимизировать задачи и ресурсы.
В апреле 2025 года на факультете «Прикладной анализ данных и машинное обучение» Skillfactory и МИФИ прошел хакатон, в котором также участвовали студенты направлений «Информационная безопасность» и «Разработка ПО». Такой состав позволил собрать мультидисциплинарные команды, способные решать задачи одновременно на уровне данных, защиты информации и разработки пользовательских сервисов. Партнером стала компания «Норси-Транс» — разработчик серверного оборудования и продуктов для информационной безопасности, мониторинга сети, аналитики и бизнес-платформ.
В этом материале рассказываем, как студенты обучали нейросеть и чем она сможет помочь бизнесу.
Задача хакатона: научить нейросеть распознавать смысл запросов
Компания «Норси-Транс» разрабатывает решения для бизнеса «под ключ» — от серверного оборудования до аналитических платформ. На хакатон она пришла с конкретным запросом: создать систему семантического поиска, которая сможет понимать смысл пользовательских запросов и находить релевантные ответы в массиве текстов.
Запрос компании напрямую касался сразу нескольких областей: работы с большими данными и смысловым поиском (задача для аналитиков и ML-специалистов), безопасной обработки информации из соцсетей (компетенция студентов «Информационной безопасности») и создания полноценного веб-сервиса (задача для участников направления «Разработка ПО»).
«Мы пригласили студентов Skillfactory для разработки системы с рабочим названием „Интеллектуальный анализ большого потока данных из соцсетей“. Она ускоряет поиск и классификацию постов, улучшает анализ, снижает риск ошибок и упрощает работу пользователей».
Хакатон длился месяц — с апреля по май 2025 года. В нем участвовали 12 команд, а победителем стала команда «БИДВА» — для них это был первый опыт такого формата. В составе: тимлид с бэкэнд-специализацией, дата-инженер, веб-разработчик и два аналитика данных.
Ни один участник раньше не создавал модели, способные интерпретировать смысл текста и выдавать корректные результаты. Приходилось быстро осваивать теорию и инструменты прямо по ходу работы. Основным источником знаний для команды стал Хабр.
От идеи к рабочему прототипу
Разработку проекта разделили на три этапа:
- Анализ инструментов — поиск и тестирование ML-моделей для смыслового сравнения текстов.
- Запуск — подготовка инфраструктуры для локального развертывания.
- Взаимодействие — создание веб-интерфейса для работы пользователя с системой.
Команда «БИДВА» взяла за основу предварительно обученную модель BERT — один из самых популярных инструментов для обработки естественного языка. Новую архитектуру с нуля они не строили: протестировали несколько готовых моделей, чтобы выбрать ту, которая лучше всего справляется с задачей семантического поиска.
Для тестирования участники собрали собственный датасет — более 100 предложений с пометками, какие слова должны находиться, а какие нет, причём в разных контекстах. Это заняло много времени, но позволило объективно сравнить модели и выбрать оптимальную.
«Например, если в тексте есть фраза “Я отнес мою стиральную машину в ремонт” и мы ищем слово “стиралка”, система должна находить предложения с выражением “стиральная машина”. А вот слово “автомобиль” в этом контексте не подходит, хотя формально является синонимом “машины”».
Алгоритм работал по принципу «от большого к малому». Сначала текст разбивался на фрагменты, которые модель BERT преобразовывала в числовые векторы. Запрос также превращался в вектор, после чего вычислялось косинусное расстояние между ним и каждым фрагментом. Если вероятность смыслового совпадения превышала 67%, система уточняла результат, разбивая словосочетания на отдельные слова и повторяя сравнение. Это позволяло находить совпадения как по целым фразам, так и по отдельным словам. При вероятности ниже 67% совпадение считалось отсутствующим.
По словам Ивана Лукина, ключевая роль в проекте была у предобработки данных, а машинное обучение сводилось к использованию архитектуры BERT и контролю качества её работы.
После выбора и настройки модели команда подготовила прототип для демонстрации. Веб-интерфейс собрали на React.js с использованием TypeScript, серверную часть написали на Python с применением FastAPI и сервера Uvicorn. Для локального запуска веб-страницы использовали Vite.
Презентация проекта
Через месяц после старта хакатона 12 команд представили свои проекты для «Норси-Транс». Победителем стала «БИДВА» — их решение показало наилучший результат и сразу заинтересовало заказчика.
Команда собралась специально под этот проект: до хакатона участники не были знакомы. Работали полностью онлайн, в мессенджерах, быстро распределили роли и зоны ответственности. Каждый выполнял свой участок, а в назначенное время синхронизировали прогресс.
«Мы живем в разных регионах, встретиться лично не получилось. Зато быстро нашли общий язык, распределили задачи и держали дисциплину. Мне, как тимлиду, удалось выявить сильные стороны каждого и направить их на ключевые задачи проекта».
Разработанная модель выделялась на фоне других работ и получила продолжение: «Норси-Транс» планирует доработать её и внедрить для клиентов.
«Мы оценивали не только финальный результат, но и подход к работе: какие методы пробовали, как сравнивали и обосновывали выбор. За короткое время команда выполнила все условия и выдала качественный прототип. Часть решений мы уже используем при разработке систем для заказчиков».