算法配置管理
算法配置(Algorithm Config)是 MLOps 的核心扩展机制,管理员通过该功能动态维护各算法场景下可用的算法列表、推理/训练镜像和超参数表单,无需修改代码或重启服务即可上线、调整或下线某个算法。
算法配置的作用
每个算法配置记录包含以下关键字段:
| 字段 | 说明 |
|---|---|
algorithm_type | 算法所属场景,如 anomaly_detection、timeseries_predict 等 |
name | 算法唯一标识,如 ECOD、Prophet,在同一场景内不可重复 |
display_name | 前端展示的算法名称 |
scenario_description | 算法适用场景说明,显示在选算法的引导界面 |
image | 训练与推理共用的 Docker 镜像地址 |
form_config | 前端动态表单的 JSON 配置,定义超参数的填写界面 |
is_active | 是否启用,禁用后不在算法选择列表中显示 |
训练任务的训练镜像和推理服务的推理镜像均从算法配置中动态读取,若数据库中找不到对应配置则回退使用各场景的默认内置镜像。
内置算法预设
系统提供 7 种内置算法预设,可通过管理命令一次性初始化:
cd server
uv run python manage.py init_algorithm_config
异常检测场景(anomaly_detection)
| 算法 | 说明 |
|---|---|
| ECOD | 适用于运营指标监控,检测多维数据中的异常点,如系统资源使用率突增、业务流量异常波动等 |
| EWMA | 适用于单变量时序渐进式异常检测,如 CPU/内存持续爬升、接口时延逐步恶化等缓慢偏离基线的场景 |
| PELT | 适用于时序变点/状态切换检测,识别因发布、配置变更或流量切换导致的性能基线突变 |
时序预测场景(timeseries_predict)
| 算法 | 说明 |
|---|---|
| Prophet | Facebook 开源时序预测模型,适用于含趋势和季节性的中长期业务指标预测 |
日志聚类场景(log_clustering)
| 算法 | 说明 |
|---|---|
| Spell | 在线日志模板挖掘算法,适合高频流式日志的实时聚类与模板提取 |
文本分类场景(classification)
| 算法 | 说明 |
|---|---|
| XGBoost | 集成学习(Gradient Boosting Tree),适合特征工程完备的中小型文本分类任务 |
| GradientBoosting | Scikit-learn 梯度提升分类器,训练稳定,适合小规模精标注语料 |
| RandomForest | 随机森林,训练快、抗过拟合,适合初期数据量不足的探索性分类任务 |
图片分类场景(image_classification)
| 算法 | 说明 |
|---|---|
| YOLOClassification | 基于 YOLO 架构的图片分类模型,训练数据使用 ImageFolder 格式(每个类别一个子目录) |
目标检测场景(object_detection)
| 算法 | 说明 |
|---|---|
| YOLODetection | 基于 YOLO 架构的目标检测模型,训练数据使用 YOLO 标注格式(.txt 标注文件) |
启用与禁用算法
禁用算法:进入对应场景的「算法配置」列表,将指定算法的「是否启用」关闭即可。禁用前系统会检查当前是否有训练任务正在使用该算法,若有则拒绝禁用操作,须等该任务完成或删除后方可禁用。
启用算法:直接将「是否启用」重新打开,算法即重新出现在训练任务的算法选择列表中。
删除算法:删除前同样校验是否有训练任务在使用,有则拒绝删除。
新增自定义算法
如需接入自定义算法,需满足以下条件:
- 构建推理服务镜像:镜像中的推理服务需监听
3000端口,接受POST /predict请求,请求体格式为{"data": [...]},返回体格式为{"success": true, "data": [...], "error": null}。 - 在管理界面新建算法配置:填写算法标识、镜像地址和动态表单配置。
- 填写
form_config:按照 AlgorithmConfig 类型定义填写前端动态表单的 JSON 配置,系统会在新建训练任务时渲染对应的超参数表单。
注意:当前平台不绑定固定的训练框架,镜像内部的训练入口和推理协议需由镜像提供方自行保证与平台规范兼容。