LogAnalyzer - это метод автоматического анализа для обнаружения аномалий в диагностической информации системы. Мы предоставляем доступ к сервису анализатора, обернутого в необходимую для интеграции инфрастуктуру.
Установка
git clone https://github.com/nikiduki/loganalyzer.git
cd loganalyzerpip install --upgrade pip
python -m pip install --user virtualenv
python -m venv env
source env/bin/activate
pip install -r ./environment/requirements.txt- Docker - платформа для разработки, доставки и запуска приложений в контейнерах.
- DVC - система версионирования датасетов.
- FastAPI - фреймворк для создания API с помощью Python.
- Minio - высокопроизводительное хранилище объектов, совместимое с S3.
- MLflow - фреймворк, предназначенный для управления жизненным циклом моделей машинного обучения, включая эксперименты, развертывание и реестр моделей.
- PostgreSQL - объектно-реляционная система управления базами данных.
- Streamlit - фреймворк для веб-приложений на языке Python.
- PyTorch - фреймворк машинного обучения для Python.
- scikit-learn - библиотека, реализующая ряд алгоритмов машинного обучения, предварительной обработки, валидации и визуализации.
- Pandas - библиотека для работы с данными в Python.
- NumPy - библиотека для научных вычислений на языке Python.
Для создания системы обнаружения аномалий можно использовать следующий подход:
-
Backend MVP: создать минимальный backend с возможностью cold start, который позволит получить первые результаты работы.
-
Разработка МЛ модели: для обнаружения аномалий в последовательности сообщений можно использовать различные известные МЛ алгоритмы, такие как Isolation Forest, One-class SVM или LSTM сети. Для увеличения точности распознавания следует разработать метод на основе архитектуры BERT. Для измерения качества модели необходимо использовать метрики, такие как Precision, Recall и F1-меру.
-
Валидация и оптимизация МЛ модели: после обучения модели необходимо проверить ее на валидационном наборе данных и провести оптимизацию гиперпараметров для улучшения качества обнаружения. Важно учитывать время, необходимое для проведения анализа, чтобы обеспечить быстродействие системы.
-
MLOps: MLflow, DVC, FastAPI, Minio, PostgreSQL.
-
ML: PyTorch, BERT, Time Series Validation.
-
Frontend: добавить функции и простой фронтенд для взаимодействия пользователя. Для создания фронтенда можно использовать фреймворк Streamlit.
-
Деплой: развернуть систему на сервере и обеспечить ее работу на постоянной основе. Для этого можно использовать такие сервисы, как AWS, Google Cloud или Microsoft Azure.
Проект разделяется на две основные части:
- Серверная, состоящая из набора докер-контейнеров.
- Локальная сторона Конвейеры DVC для обработки данных, разработки функций и модельных экспериментов.
Имеются следующие компоненты:
- Интерфейс, который разработан с помощью фреймворка Streamlit.
- База данных, которая содержит информацию о дополнительных фичах модели и исторических аномальных последовательностях. Администрируется с помощью PgAdmin.
- Модуль для обработки данных, который использует библиотеки Pandas и NumPy.
- Модуль для обнаружения аномалий, который использует реализованный метод анализа диагностической информации.
