FlowML · 配置驱动的可视化自动建模工作台产品系统

我要开发同款
明扬Python后端2026年11月07日
4阅读

技术信息

语言技术
Python、HTML5、JavaScript
系统类型
算法模型、Web
行业分类
机器深度学习、企业服务

作品详情

行业场景

中小团队做一张表的二分类或回归预测,通常只有两条路:用云端 AutoML,要先把数据传到公网,客户与经营数据往往不允许出域,按次计费也难控成本;或者由算法同学写 notebook,一次性脚本跑完就散了——预处理藏在 cell 里,训练时拟合过的编码器、填充值没有固化,线上推理再手工抄一遍,线上线下不一致往往到上线后才暴露;评估指标、阈值选取、特征重要性各写一套,换个项目又重来,交付物除了一个模型文件什么都没有。业务同学看不懂代码,想换个算法或调个阈值都得排期等算法,模型从想法到可用的周期被拉得很长。

FlowML 立项时把问题收敛成一句话:让不懂 Python 的人也能在本机、用一份可复现的 YAML 配置,把「数据接入 → 特征工程 → 训练调参 → 评估决策 → 模型上线」完整走完,并直接拿到可交付的报告与可调用的推理服务。定位是本地私有化的单机建模工作台,不是 SaaS、不接业务数据库:数据全程不出域,配置即实验记录,产物按运行目录归档,交付时不依赖任何外部服务。场景刻意限定为单表二分类与回归、千万行以内、单机内存可容纳,先把通用能力做扎实,而不是做一个什么都宣称支持、却什么都不深的平台。

功能介绍

系统为本地单服务应用,浏览器控制台为主入口,CLI 与 YAML 共用同一执行内核,主要模块:

1. 可视化建模控制台:六步向导配置数据源、目标列、算子、候选模型与调参策略;运行监控、进度日志、结果页、报告下载与历史任务回看。
2. 配置内核:Pydantic 定义全流程配置,多余字段直接报错;三道校验闸覆盖结构、组件引用与数据分布;配置与数据各生成 sha256 指纹。
3. 组件注册表:算子、模型、指标三套注册器统一登记,重名即失败,新增组件只需一个类加一个装饰器。
4. 特征工程管道:12 个注册算子覆盖清洗、缺失值、异常值、ID 列识别、独热/序号/频数编码与数据集切分,每步导出状态供推理回放。
5. 训练与调参:5 个模型适配器(HistGradientBoosting、随机森林、逻辑回归、岭回归、可选 LightGBM);多候选统一 K 折交叉验证选优,支持随机/网格搜索、早停与超时。
6. 评估与决策:15 个指标(含自实现 KS、PR-AUC、Lift、Capture 及回归侧 MSE/RMSE/MAE/R²/MAPE);5 种阈值策略、50 切点收益表、分群评估,单指标失败不阻断。
7. 可解释与报告:原生特征重要性与线性系数,排列重要性兜底 Top20;生成 Markdown/HTML 报告与 metrics.json,封面带指纹与配置快照。
8. 模型服务与推理:登记卡与按任务分组的 v1/v2 版本管理,依据训练期数据生成特征契约;单条/批量 JSON 与 CSV 打分、LRU 缓存与 8 类推理错误码。
9. 工程配套:Swagger 与配置 JSON Schema 自动生成,CLI 支持 validate / run / serve,内置合成示例数据,37 个测试覆盖配置、泄漏探针、回放与推理端到端。

项目实现

本人独立完成调研抽象、架构设计、内核开发、控制台前后端、模型服务与测试,49 个 Python 文件约 5100 行源码、24 个业务接口、37 个测试。

技术栈:Python 3.10+ / scikit-learn / pandas / numpy / pydantic v2 / PyYAML;FastAPI + uvicorn 提供控制台与推理 API;原生 JS 无构建前端;pickle 持久化,产物全落文件系统,不依赖数据库与消息队列。

架构按依赖向内分层,最内层内核零框架零 IO,同一份 execute_config 被 CLI 与 HTTP 共用。

实现关键点:
1. 用泛型 Registry + BaseAdapter / BaseTransformer 取代单体算法工厂,算子、模型、指标统一注册且重名即失败,新增算法不改调度代码。
2. 训练与推理共用 artifacts.json 回放同一套预处理,服务端不重写清洗编码逻辑,以行数不变校验把线上线下一致变成可测试的硬约束。
3. 引擎强制 split 首步唯一、拟合类算子只在训练折 fit、行过滤算子须声明 skip_in_inference,从机制上防数据泄漏,并有泄漏探针测试。
4. 可复现:并行度收敛到 run.threads、固定全局种子、一次生成 CV 折集供全部 trial 复用、holdout 不参与搜索,配置与数据双指纹写入报告封面。
5. 推理按训练期真实 DataFrame 生成特征契约(类型 / nullable / 样例),配合模型版本治理、LRU 缓存与 PRED_* 错误码。

边界如实说明:单机单表千万行以内,无鉴权与多租户、进度内存态重启不恢复、无贝叶斯优化与 SHAP、未容器化,均为后续规划。

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论