Busabase
Busabase는 AI 에이전트를 위한 오픈소스(MIT) 데이터베이스 및 작업 공간입니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Мониторинг ML-модели: Prometheus + Grafana, дообучение на потоке, дрейф признаков (PSI), алерты. FastAPI, scikit-learn, Docker Compose
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Живой дашборд Grafana: model-monitoring.185.79.138.118.nip.io — модель работает на сервере, поток идёт непрерывно, вход не нужен. Запись полного прогона по всему датасету: bestmark1.github.io/model-monitoring. Деплой: docs/deployment.md. Модель предсказывает, вырастет ли цена на электроэнергию относительно среднего за сутки, получает поток запросов, после каждого прогноза узнаёт истинный ответ и регулярно дообучается. Prometheus собирает метрики качества, дообучения, дрейфа данных и самого сервиса, Grafana показывает их на дашборде.README 전문 보기 ↗
Живой дашборд Grafana: model-monitoring.185.79.138.118.nip.io — модель работает на сервере, поток идёт непрерывно, вход не нужен. Запись полного прогона по всему датасету: bestmark1.github.io/model-monitoring. Деплой: docs/deployment.md.
Модель предсказывает, вырастет ли цена на электроэнергию относительно среднего за сутки, получает поток запросов, после каждого прогноза узнаёт истинный ответ и регулярно дообучается. Prometheus собирает метрики качества, дообучения, дрейфа данных и самого сервиса, Grafana показывает их на дашборде.
Прогон по всему потоку: 40 312 примеров (май 1996 — декабрь 1998), дообучение каждые 1000 размеченных примеров.
| Модель | Accuracy по потоку |
|---|---|
| Дообучаемая (live) | 74,8% |
| Первая версия без дообучения (frozen) | 70,1% |
| Всегда угадывать частый класс | 57,1% |
Дообучение дало +4,7 п.п. Главная причина видна на панели дрейфа: в обучающих данных признаки рынка Виктории (vicprice, vicdemand, transfer) были константой, а в потоке появились реальные значения. Замороженная модель этого изменения не замечает, дообучаемая подстраивается.
| Критерий задания | Где |
|---|---|
| Создана модель | SGDClassifier (логистическая регрессия) + StandardScaler, app/model.py |
| Метрики модели передаются в Prometheus | эндпоинт /metrics (prometheus_client), скрапинг каждые 5 с, prometheus/prometheus.yml |
| На дашборде отображены метрики модели | 18 панелей, источник данных и дашборд подключаются автоматически (provisioning), grafana/ |
| Модель можно дообучать | partial_fit на накопленных размеченных примерах: автоматически каждые RETRAIN_EVERY примеров или вручную POST /retrain; каждая версия сохраняется (model_v{N}.joblib) |
Сверх задания:
promtool в CI.simulator ──POST /predict──▶ model (FastAPI) ◀──scrape /metrics── Prometheus ◀── Grafana
──POST /feedback─▶ ├─ live-модель: дообучается каждые 1000 ответов
├─ frozen v1: контрольная, не меняется
└─ PSI признаков, окно качества, версии модели
simulator проигрывает датасет в хронологическом порядке: отправляет признаки в /predict, затем истинный ответ в /feedback (на реальном рынке ответ известен через полчаса).partial_fit), версия увеличивается, чекпоинт сохраняется в том models.| Метрика | Тип | Что показывает |
|---|---|---|
model_accuracy, model_f1, model_logloss {model="live"|"frozen"} | gauge | качество на последних 500 размеченных примерах |
model_errors_total, model_labels_total | counter | ошибки и размеченные примеры (из них — доля ошибок за любой интервал) |
model_predictions_total{predicted_class}, model_prediction_probability | counter, histogram | распределение прогнозов: сигнал, доступный до прихода ответов |
model_version, model_retrains_total{trigger}, model_retrain_duration_seconds, model_trained_samples, model_retrain_buffer_size | gauge, counter, histogram | жизненный цикл дообучения |
model_feature_psi{feature} | gauge | дрейф каждого признака |
model_requests_total{endpoint}, model_prediction_latency_seconds | counter, histogram | нагрузка и задержка сервиса |
Electricity (Elec2) — Harries, M. (1999), Splice-2 comparative evaluation: Electricity pricing. 45 312 получасовых записей рынка Нового Южного Уэльса (Австралия), май 1996 — декабрь 1998. Целевая переменная — выросла ли цена (UP/DOWN) относительно среднего за 24 часа. Классический датасет для моделей на потоке со сдвигом распределения. Первые 5000 записей идут на первичное обучение, остальные 40 312 — поток. Датасет скачивается при сборке Docker-образа, в репозитории не хранится.
Нужен Docker.
git clone https://github.com/bestmark1/model-monitoring.git
cd model-monitoring
docker compose up -d --build
| Сервис | Адрес |
|---|---|
| Grafana (дашборд открывается сразу, вход не нужен) | http://localhost:3000 |
| Prometheus | http://localhost:9090 |
| Модель: Swagger | http://localhost:8000/docs |
| Модель: метрики | http://localhost:8000/metrics |
Первая точка на графиках качества появится через несколько секунд, первое дообучение — меньше чем через минуту.
Параметры (переменные окружения при docker compose up):
| Переменная | По умолчанию | Смысл |
|---|---|---|
RATE | 20 | запросов в секунду от симулятора |
RETRAIN_EVERY | 1000 | дообучать после N размеченных примеров; 0 — только вручную |
WINDOW | 500 | размер окна для метрик качества |
LIMIT | 0 | остановить симулятор после N примеров; 0 — крутить поток по кругу |
GRAFANA_ADMIN_PASSWORD | admin | пароль администратора Grafana |
Ручное дообучение и проверка прогноза:
curl -X POST localhost:8000/retrain
curl -s localhost:8000/model
Обновить демо-страницу после своего прогона: python scripts/export_snapshot.py --minutes 15.
python -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt
ruff check . && pytest -q
python scripts/build_dashboard.py # дашборд описан кодом; JSON генерируется
/feedback; на этом датасете оно занимает миллисекунды, для тяжёлой модели его нужно вынести в фоновую задачу.ModelWorseThanFrozen.Python · scikit-learn · FastAPI · prometheus_client · Prometheus · Grafana · Docker Compose · pytest · Ruff · GitHub Actions