跳转至

任务矩阵

任务矩阵是 sweep 批次的杀手视图:把 model × dataset 拍成网格,每个 格子是一个 job。整体走的是「克制」路线 —— 默认 状态是白底配细灰边,强调留给整张矩阵里仅有的两个格子。

布局

              dataset₁    dataset₂    dataset₃    dataset₄
            ┌─────────┬─────────┬─────────┬─────────┐
   model₁   │  0.382  │  0.412  │  0.470  │  0.521  │
            ├─────────┼─────────┼─────────┼─────────┤
   model₂   │  0.354  │  0.394  │ 🏆 0.341│  0.488  │  ← 全局最佳(绿边 + 奖杯)
            ├─────────┼─────────┼─────────┼─────────┤
   model₃   │  0.415  │  0.510  │  0.499  │ ⚠ 0.612 │  ← 全局最差(红边 + 警告)
            └─────────┴─────────┴─────────┴─────────┘

强调对象是 整张矩阵,不是按行或按列。每个主指标最多有一个全局 最佳和一个全局最差。

单元格装饰

每个格子带:

  • 白底 + 细灰边:默认状态,方便阅读。
  • 右上角的小色点:使用统一的 5 色调色板(与卡片、徽标共用)。 但是 干净 done 且未被空闲检测器标记的格子 不画色点,因为 「这次跑完了」不需要装饰。
  • 最佳格子(全局唯一):粗绿边 + 奖杯图标。
  • 最差格子(全局唯一):粗红边 + 警告图标。

最佳 / 最差的资格

只有同时满足以下条件的格子才参与计算:

  • status === 'done'(running / failed / stalled 一律不参与)。
  • is_idle_flagged === false(途中卡死的 run 没资格做最优解)。
  • 主指标值是有限的(Number.isFinite)。

每个指标的优化方向(越低越好 / 越高越好)按指标各自配置。可参与 格子 ≤1 时不画高亮。多个格子同时取得最佳值(或最差值)时也跳过 —— 任意挑一个赢家会误导。

主指标

主指标就是计算全局最佳 / 最差所基于的指标。默认是项目里 job 第一个 报上来的那个;可以在 Project settings → Primary metric 里显式 指定。

超参数 / 指标列

工具栏的 Columns 按钮选择哪些指标和超参列要显示。值过长会截断, 鼠标悬停看完整字符串。选择按用户 + 批次 持久化。

CSV 导出

Export CSV 按钮按可见列、当前排序导出 CSV。pandas / Excel 直接 打开 —— 这是从「我跑了一次 sweep」到「我有了一张论文表」的最短路径。

另见

  • 任务详情 —— 进入单个格子。
  • 实现见 frontend/src/components/JobMatrix.vue,文件头注释解释了 重设计的动机。