JavaProjectRepo/模型训练任务.md
2026-03-20 19:00:16 +08:00

6.6 KiB
Raw Blame History

模型训练任务界面设计方案

本方案基于原有需求,对“模型训练面板”的功能模块、交互流程及字段定义进行了全面细化与完善,确保用户体验流畅且功能完整。

1. 任务列表 (Task List)

1.1 查询栏

  • 任务名称:文本输入框(支持模糊搜索)。
  • 算法类型:下拉选择框(如 GPR, MLP, FastRBF, ...)。
  • 设备类型:下拉选择框(如 CylindricalTank, AnnularTank, ...)。
  • 状态:下拉选择框(全部, Pending, Training, Success, Failed
  • 操作按钮[查询] [重置] [新建训练任务]

1.2 数据表格

列名 数据类型 说明
任务名称 String 点击名称可直接跳转详情页
算法类型 String GPR / MLP 等
设备类型 String CylindricalTank 等
训练集来源 String 显示文件名或数据源类型(如 "Upload: dataset.csv"
核心指标 String 成功时显示关键指标(如 RMSE: 0.02, R2: 0.98),失败/进行中显示 "-"
状态 Status 使用 Tag 区分颜色:
🔵 Pending (等待中)
🟡 Training (训练中)
🟢 Success (成功)
🔴 Failed (失败)
创建时间 DateTime yyyy-MM-dd HH:mm:ss
操作 ButtonGroup [查看详情] [发布模型] [删除]
  • 分页控件:位于表格底部,支持调整每页显示条数。

1.3 操作说明

  • 查看详情:任何状态下均可点击,跳转至详情页。
  • 发布模型:仅当状态为 Success 时可用(否则禁用)。点击弹出发布确认框。
  • 删除:仅当状态为 SuccessFailed 时可用Training 中不可删除)。点击需二次确认,删除后不可恢复。

2. 新建训练任务 (Create Task)

采用分步向导或单页表单形式,推荐单页表单。

2.1 基础配置

  • 任务名称 (必填):文本框,建议自动生成默认名(如 "Train_GPR_20240311_001")。
  • 设备类型 (必填):下拉选择。
  • 算法类型 (必填):下拉选择。选择后,下方的“参数配置”应动态加载该算法的默认参数。

2.2 数据准备

  • 数据源类型 (必填):单选框 [文件上传] / [临界库数据]。
    • 选中“文件上传”
      • 显示文件上传组件(支持 .csv, .xlsx
      • 上传后需显示文件名及大小,并提供“重新上传”按钮。
    • 选中“临界库数据”(二期功能):
      • 显示时间范围选择器(开始时间 - 结束时间)。
      • 显示“预览数据量”按钮(如:查询到 5000 条记录)。

2.3 参数配置

  • 训练超参数
    • 提供“加载默认值”按钮。
    • 使用 JSON 编辑器Key-Value 列表 展示参数(如 epochs, learning_rate, kernel 等)。
    • 相比单纯文本框JSON 编辑器能提供格式校验,避免输入错误。

2.4 底部按钮

  • [提交训练]:点击后校验表单,成功则跳转回列表页并自动刷新。
  • [取消]:返回列表页。

3. 查看详情 (Task Details)

详情页分为三个主要区域:基础信息、训练监控/结果、日志。

3.1 基础信息卡片

展示任务的静态配置信息:

  • 任务名称、ID
  • 算法类型、设备类型
  • 数据源路径
  • 训练参数JSON 格式化展示,只读)
  • 创建时间、更新时间

3.2 训练监控/结果区

根据状态不同,展示不同内容:

  • Training (训练中)

    • 进度条:显示当前 Epoch/Total Epochs。
    • 实时指标图:折线图展示 Loss (损失函数) 随迭代次数的变化。前端定时轮询或通过 WebSocket 获取最新数据。
    • 当前指标:实时显示当前的 RMSE, Accuracy 等。
  • Success (成功)

    • 最终指标卡片RMSE, MAE, R2, MaxError 等关键评估指标。
    • 误差散点图:展示 metrics_image_path 对应的图片(预测值 vs 真实值)。
    • 特征重要性(可选):如果算法支持,展示特征权重图。
  • Failed (失败)

    • 显示醒目的红色错误提示。

3.3 错误日志区

  • 仅在 Failed 状态或 Training 状态下显示。
  • 展示后端或 Python 服务返回的详细异常堆栈或 Print 输出,便于排查问题。

3.4 顶部/底部操作栏

  • [发布模型](仅 Success 状态可见)
  • [返回列表]

4. 模型发布 (Publish Model)

将临时训练任务产出的模型正式注册到系统模型库中。

4.1 交互流程

  1. 在列表页点击“发布模型”,或在详情页点击“发布模型”。
  2. 弹出模态框Modal

4.2 弹窗内容

  • 任务名称(只读回显)
  • 算法/设备(只读回显)
  • 版本号 (Version Tag) (必填):文本框。
    • 提示用户输入版本标识,如 v1.0, 20240311-release
    • 后端需校验该算法+设备下版本号的唯一性。
  • 备注描述:多行文本框(可选),用于记录模型特性或变更点。

4.3 确认操作

  • [确认发布]
    • 后端将临时模型文件移动到正式目录。
    • algorithm_model 表中创建新记录。
    • 发布成功后,提示用户“发布成功,请前往模型管理页激活使用”。
    • 关闭弹窗,刷新列表(建议在列表中增加“已发布”标记或状态)。
  • [取消]:关闭弹窗。

4.4 模型路径规划

模型路径规划建议(推荐目录结构) 以你现有的配置 file-space.model-path 为根(例如 E:/python_coding/keffCenter/models/ ),建议分两棵树:

  • 训练产物(可清理)

    • {modelRoot}/runs/{algorithmType}/{deviceType}/{taskId}/
    • 里面放: pipeline.pkl 、 metrics.json 、 feature_map.json 、 metrics.png 、 train_params.json 等
    • 优点:用 taskId 保证唯一、不覆盖
  • 发布模型(长期保留、可回滚)

    • {modelRoot}/published/{algorithmType}/{deviceType}/{versionTag}/
    • 里面放: pipeline.pkl (或带 hash 的文件名、配套文件、manifest可选
    • algorithm_model.model_path 指向这里 另外建议:
  • 路径里尽量只用 algorithmType/deviceType/versionTag/taskId 这种稳定字段,避免包含中文/空格

  • versionTag 建议由用户输入但要校验(只允许 [a-zA-Z0-9._-] ),避免路径注入

  • 如果担心文件重复,可在发布时生成 artifactId hash并写入模型表便于去重/校验一致性