Система технической поддержки крупных организаций сталкивается с множеством пользовательских запросов, которые варьируются по сложности, тематике и приоритету. Эти обращения часто неразмечены и содержат свободный текст, что затрудняет их автоматическую обработку и распределение между специалистами.
Данные представляют собой неразмеченные текстовые обращения, которые могут включать запросы на устранение неполадок, жалобы, предложения по улучшению, вопросы по использованию продуктов и др.
Без предварительной разметки обращений обучить классификатор.
Разработать систему автоматической разметки и классификации обращений, которая позволит:
- Улучшить роутинг обращений: автоматически назначать обращения на соответствующие отделы или специалистов, уменьшая время обработки.
- Разметка обращений для последующей аналитики
- Автоматическое расширение разметки: система должна автоматически адаптироваться к новым типам обращений, обучаясь на вновь поступающих данных.
- Интегрировать ее в существующую систему
- Повышение эффективности работы службы поддержки: уменьшение времени обработки запросов за счет автоматизации.
- Снижение нагрузки на операторов: автоматическая классификация и маршрутизация запросов позволяет разгрузить операторов от рутинной работы.
- data/: исходные данные
- notebooks/: EDA + pipeline, который лежит в основе проекта
- sсrips/: основные одиночные скрипты
- spark_pipeline/: скрипты для препроцессинга, разметки, переразметки и обучения модели на spark
- py_pipeline/: скрипты для препроцессинга, разметки, переразметки и обучения модели на python
- airflow_dags/: даги для Airflow
- src/: исходный код сервиса Fast API
- Dockerfile: докерфайл для сервиса
- k8s/: манифесты для настройки работы сервиса в k8s
- pyprojects.toml: зависимости
Основной пайплайн:
(п.1-3 оркестрируются в Airflow)
- Препроцессинг данных с S3
- Разметка данных
- (автоматически) Разметка по предобученным моделям
- (опционально) (полуавтоматически) Переобучение моделей разметки
- Обучение классификатора, сохранение метрик и статтестов MLFlow
- Обученная модель обернута в Fast API + Docker
- По push в репо с изменением модели - github actions на пересборку контейнера
- Собранный контейнер деплоится в k8s, где есть автомасштабирование
- Продовые метрики отображаем в графане, стреляем алертами в тг
- Удаление числовых значений и пунктуации
- Лемматизация
- Часть речи (POS) теггинг — выделение существительных
- Выделение топиков: TF-IDF + NMF (non-negative matrix factorization)
- Классификация: TF-IDF + логистическая регрессия
s3a://customer-sup-tickets-raw/
- исходные данные + логи airflow
s3a://customer-sup-tickets-clean/
- оброаботанные данные; размеченные данные; скрипты для airflow, обученные модели
- ETL на Spark с использованием DataProc в Yandex Cloud
- Оркестрация через DAG'и Airflow
- Метрики и статистические тесты в MLFlow
- Сервис на FastAPI в Docker-контейнере
- Деплой в Kubernetes
- Мониторинг через Prometheus и Grafana
- Алертинг в Telegram
- CI/CD через GitHub Actions
- Перенос кластера из Kind в Yandex Cloud Kubernetes
- Автоматический анализ тем через GPT-4o или self-hosted LLM
- Интеграция Kafka для увеличения пропускной способности
- Подбор альтернативных ML-алгоритмов, эмбеддингов, и подходов для выделения тем