Central-University-IT-prod/2026-final-command-team-6-ml

Jupyter Notebook

0

0 commits

updated Mar 26, 2026

See the code

README

Про модельки

У меня 3 ML модели

  1. Кластеризация. Строим эмбединги с помощью ai-forever/sbert_large_nlu_ru и проходимся dbscan
  2. Определение релевантности. По заданному тексту, названию бренда и его ключевым словам определяем релевантен ли текст компании. Это чуть лучше чен проверка полнотекстового совпадения, ведь допускает более свободные формулировки и опечатки. Точность близка к 100%. Модель обучена на базе ai-forever/ruBert-base. Использовалась дистилляция qwen3-235b-a22b
  3. Определение тональности по отношению к бренду. Мы передаем текст и название бренда, а в ответ получаем тональность (positive/negative/neutral) по отношению к ней и уверенность в ответе. Модель обучена на базе ai-forever/ruBert-base. Использовалась дистилляция qwen3-235b-a22b с дополнительной валидацией на других LLM. Метрики при валидации слеующие:
  • accuracy: 0.94
  • f1: 0.95

А что если ML лег?

Если ML лег, то сервис перестает обрабатывать сообщения и уведомляет пользователя о проблеме

А что с версионированием?

У моделей есть несколько версий. Все они лежат в s3. В папке data также лежат соответствующие датасеты, на которых обучались модельки

А что с EDA?

Ноутбуки преданализа и код для генерации датасетов в папке eda

А где оценивать и обучать?

В папке каждой модели есть train.py и eval.py для обучения и оценивания этих моделей. Во время обучения также выводится подробная информация о процессе - метрики на каждой эпохе и тд. Также делаются бекапы моделей после каждой эпохи. Потребности обучать в реальном времени нет

А где сваггер?

https://example.com/docs#/

На сколько модели стабильные?

Модели стабильно выдают ответы, но иногда могут не быть полностью уверены. Тогда для безопасности берется тот вариант, который не создает доп действия (это нерелеватность и нейтральность для моделей релевантности и тональности)

Если dbscan не может отнести сообщение к крупному кластеру, то приложение подстроится и сообщение будет интерпретировано как шум без похожих сообщений

Central-University-IT-prod/2026-final-command-team-6-ml

Jupyter Notebook

0

0 commits

updated Mar 26, 2026

See the code

README

Про модельки

У меня 3 ML модели

  1. Кластеризация. Строим эмбединги с помощью ai-forever/sbert_large_nlu_ru и проходимся dbscan
  2. Определение релевантности. По заданному тексту, названию бренда и его ключевым словам определяем релевантен ли текст компании. Это чуть лучше чен проверка полнотекстового совпадения, ведь допускает более свободные формулировки и опечатки. Точность близка к 100%. Модель обучена на базе ai-forever/ruBert-base. Использовалась дистилляция qwen3-235b-a22b
  3. Определение тональности по отношению к бренду. Мы передаем текст и название бренда, а в ответ получаем тональность (positive/negative/neutral) по отношению к ней и уверенность в ответе. Модель обучена на базе ai-forever/ruBert-base. Использовалась дистилляция qwen3-235b-a22b с дополнительной валидацией на других LLM. Метрики при валидации слеующие:
  • accuracy: 0.94
  • f1: 0.95

А что если ML лег?

Если ML лег, то сервис перестает обрабатывать сообщения и уведомляет пользователя о проблеме

А что с версионированием?

У моделей есть несколько версий. Все они лежат в s3. В папке data также лежат соответствующие датасеты, на которых обучались модельки

А что с EDA?

Ноутбуки преданализа и код для генерации датасетов в папке eda

А где оценивать и обучать?

В папке каждой модели есть train.py и eval.py для обучения и оценивания этих моделей. Во время обучения также выводится подробная информация о процессе - метрики на каждой эпохе и тд. Также делаются бекапы моделей после каждой эпохи. Потребности обучать в реальном времени нет

А где сваггер?

https://example.com/docs#/

На сколько модели стабильные?

Модели стабильно выдают ответы, но иногда могут не быть полностью уверены. Тогда для безопасности берется тот вариант, который не создает доп действия (это нерелеватность и нейтральность для моделей релевантности и тональности)

Если dbscan не может отнести сообщение к крупному кластеру, то приложение подстроится и сообщение будет интерпретировано как шум без похожих сообщений