老王是城中餐厅的主厨,研发过三百多道菜。以前厨房后墙贴满手写菜谱,想找「辣口、快手、成本低」的菜,只能一张张撕下来对照。后来他给每道菜立了规矩:食材配料、火候时间、试吃评分、菜系标签,四样缺一不可,全部录入电子菜谱库。从此找菜只需敲几个条件,十秒出结果。 训练 AI 模型和做菜是同一套逻辑:参数是配料,指标是试吃评分,每一次训练就是一次实验。当实验记录积累到成百上千条,MLflow、Weights & Biases 这类追踪平台就成了主厨的电子菜谱库。搜索与过滤,就是让你在浩如烟海的实验记录里,快速找到那道「招牌菜」。 本文沿着「记录什么 → 怎么查 → 怎么筛 → 怎么排 → 怎么打标 → 怎么共享」的主线,用菜谱墙的比喻讲清实验搜索与过滤的完整方法论。

岗位关联

学会实验搜索与过滤,你就能在上千条训练记录中 10 秒定位最优模型。这是 MLOps 工程师从「会训练」走向「会管理」的核心基本功。

目录
  1. 可视化演示
  2. 实验元数据设计
  3. 搜索查询基础
  4. 参数范围过滤
  5. 指标排序选优
  6. 标签分类管理
  7. 跨团队协作共享
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示实验追踪搜索核心:元数据schema架构与查询流程、多维过滤(指标/参数/标签)与Top-K排序、跨团队知识沉淀与最优配置识别。

本节配有交互动效(进入视口后自动加载,约 3KB)。

实验元数据Schema与搜索架构 五维元数据:参数(Prm)、指标(Met)、标签(Tag)、产物(Art)、时间戳(TS)分离存储 查询从Schema经DB索引到结果输出,秒级返回匹配实验 Query: {metric: acc>θ, param: lr<α, tag: team:X} → ResultSet 元数据分离存储支撑高效实验搜索

实验元数据设计

老王的菜谱墙一开始并不好用。最早每张卡片只写菜名,日子一久,想找「上个月那盘酸辣土豆丝」的配方,只能一张张揭下来认。于是他给每道菜立了规矩:食材清单、火候时间、试吃评分、菜系标签,四样缺一不可。菜谱墙从此变得可查、可比、可传承。

AI 训练同样如此。一次实验跑完,如果只留下一个 model.pt 文件,等于一张没有配方的菜名,下次想复现只能靠运气。实验追踪平台用「实验元数据」为每次训练建立完整档案。这套元数据的标准结构,业内通常归纳为四要素:名称、参数、指标、标签。

参数是训练中可调的旋钮——学习率、batch size、优化器类型;指标是评价训练效果的量表——准确率、loss、F1;标签是便于检索的自由标记——任务类型、实验阶段。四者组合,一次实验才是一个完整的知识单元。平台首页的表格、搜索、对比,全部建立在这套元数据之上。字段不设计好,平台功能再强也无处发力。

菜谱格式化后,学徒翻墙就能找到「辣口、快手、成本低」的候选菜。定义清晰元数据,是实验搜索与过滤这桌宴席的第一道菜,也是整座菜谱墙的承重墙。

E=(n,P,M,T)\displaystyle E = (n, P, M, T)
一次实验元数据 = 名称 + 参数集合 + 指标集合 + 标签集合。四要素齐备,搜索才有对象、对比才有依据。
  1. 实验记录E 表示一次完整训练实验的全部元数据,是对一条记录的总称
    E=(n,P,M,T)\displaystyle E = (n, P, M, T)
  2. 名称字段n 是实验名称与备注,供人快速识别,对应菜谱卡片的菜名
    n∈Symbols\displaystyle n \in \text{Symbols}
  3. 参数集合P 是超参数字典,记录学习率、批尺寸等所有可控旋钮的取值
    P={p1,p2,…,pm}\displaystyle P = \{p_1, p_2, \ldots, p_m\}
  4. 指标集合M 是评价指标字典,记录准确率、loss 等训练效果的度量结果
    M={m1,m2,…,mk}\displaystyle M = \{m_1, m_2, \ldots, m_k\}
  5. 标签集合T 是自定义标签集合,记录实验阶段、业务方向等人为分类信息
    T={t1,t2,…,tr}\displaystyle T = \{t_1, t_2, \ldots, t_r\}

搜索查询基础

老王换电子菜谱后,点菜式输入练得飞快。「今天要辣的、十五分钟内能上桌、还不超过 30 块」——三个条件一次敲完,系统像翻牌似的列出来。这种组合条件的底层逻辑,叫「布尔查询」。

追踪平台的搜索语法,本质就是「字段 + 比较 + 逻辑」。比如 metrics.acc > 0.9 是按准确率字段筛;params.batch_size = 32 是按参数字段筛。多个条件用 AND、OR、NOT 连接,就组成了一个查询表达式。

实际工程里,查询几乎都是多条件组合:「找出 batch_size=32、学习率在 1e-4 到 1e-3、准确率高于 0.9 的实验」。平台先执行括号内的子条件,再做集合运算。理解 AND/OR/NOT 的优先级,既能读懂别人的检索式,也能写出不踩坑的查询。

布尔查询就是你和实验库之间的「点菜用语」。会点菜的人面对同一套菜谱,找到招牌菜的速度,是照着菜单逐页翻的人望尘莫及的。

Q=q1∧(q2∨¬q3)\displaystyle Q = q_1 \land (q_2 \lor \lnot q_3)
一次查询 = 若干子条件 + 逻辑连接词。∧ 表示同时满足,∨ 表示满足其一,¬ 表示排除。
  1. 查询表达式Q 表示一次组合检索的完整布尔表达式,对应一次复杂点菜
    Q=q1∧(q2∨¬q3)\displaystyle Q = q_1 \land (q_2 \lor \lnot q_3)
  2. 合取运算∧ 表示逻辑「且」,条件 q1 必须被满足才能命中
    ∧ 表示同时满足\displaystyle \land \ \text{表示同时满足}
  3. 析取运算∨ 表示逻辑「或」,q2 与 ¬q3 两项满足其一即可
    ∨ 表示满足其一\displaystyle \lor \ \text{表示满足其一}
  4. 否定运算¬ 表示「非」,¬q3 表示排除满足 q3 的实验记录
    ¬q3 表示排除满足 q3 的实验\displaystyle \lnot q_3 \ \text{表示排除满足 } q_3 \text{ 的实验}

参数范围过滤

老王给新菜单定价时说要「成本 20 到 30 元」。他不在乎具体是 22 还是 28,只要落在这个区间就行。连续值上的区间判断,就是范围过滤的直觉来源。

超参数大多是连续值。学习率 1e-4、batch size 64、dropout 0.3——用「等于」去搜没有意义:同样的值可能出现很多次,而相差毫厘的结果可能相去千里。所以平台支持范围查询:params.lr between 1e-4 and 1e-3。

范围过滤的数学表达是一个闭区间,含下限也含上限。多个范围条件组合时,等价于集合的交集——只有同时落在两个区间的实验才保留。这也解释了为什么搜索框里常见写法是「区间 + 区间」,而不是「等值 + 等值」。

一道「成本 20~30 元」的限价,让老王的候选菜从一百道缩水到十道。范围过滤是搜索里最常用的「第一刀」,刀法越精准,后续排序的负担越小。

R={e∈E∣l≤pe≤u}=F1∩F2\displaystyle R = \{ e \in E \mid l \le p_e \le u \} = F_1 \cap F_2
范围过滤 = 在参数轴上圈定一个闭区间,落在区间内的实验入选;多个区间条件叠加时取交集。
  1. 筛选集合R 是过滤后保留的实验结果集合,即最终上桌的候选菜
    R={e∈E∣l≤pe≤u}\displaystyle R = \{ e \in E \mid l \le p_e \le u \}
  2. 元素与条件e ∈ E 表示遍历所有候选实验,竖线后面的公式是保留条件
    e∈E∣l≤pe≤u\displaystyle e \in E \mid l \le p_e \le u
  3. 闭区间语义l ≤ p_e ≤ u 表示该实验的参数取值必须同时大于等于下界、小于等于上界
    l≤pe≤u\displaystyle l \le p_e \le u
  4. 交集组合F = F1 ∩ F2 表示同时满足两个范围条件,比单一范围更严格
    F=F1∩F2\displaystyle F = F_1 \cap F_2

指标排序选优

候选菜还是太多,老王决定按「食客评分」从高到低排一遍,取前三贴在今日推荐栏上。排序,是把「能入围」变成「谁最优」的那一步。

过滤解决「哪些实验值得看」,排序解决「这些里面谁领先」。准确率、F1 越大越好,用降序;loss、延迟越小越好,用升序。这一步在 SQL 里是 ORDER BY ... LIMIT,在追踪平台上是点一下表头字段。

多指标权衡是排序的高阶话题。比如「准确率高 0.5% 但推理慢 30%」,单看 acc 排榜就会踩坑。常见做法是:先对资源开销做范围过滤,再用核心指标排序;或把多个指标合成单个评分,F1 本身就是精确率与召回率的调和平均。

评分榜一贴,招牌菜一目了然。指标排序让「谁是最优实验」从各执一词变成可复现的团队共识。

Sk=topk(sortm↓(E))\displaystyle S_k = \text{top}_k(\text{sort}_{m\downarrow}(E))
排序选优 = 先按指标 m 降序重排候选实验,再截取前 k 个作为最优推荐。
  1. 候选全集E 是已经通过参数与指标过滤的实验集合,对应入围的候选菜
    E={e1,e2,…,en}\displaystyle E = \{e_1, e_2, \ldots, e_n\}
  2. 降序排序sort_{m↓} 表示按指标 m 从大到小重排,指标越大位置越靠前
    sortm↓(E)=(e(1),…,e(n)),m(1)≥m(2)≥⋯≥m(n)\displaystyle \text{sort}_{m\downarrow}(E) = (e_{(1)}, \ldots, e_{(n)}), \quad m_{(1)} \ge m_{(2)} \ge \cdots \ge m_{(n)}
  3. 截取最优top_k 取排序结果的前 k 个,得到本轮最值得关注的实验集
    Sk=topk(sortm↓(E))\displaystyle S_k = \text{top}_k(\text{sort}_{m\downarrow}(E))

标签分类管理

老王在电子菜谱里给菜打标:「川菜」「低卡」「周末限定」。客人问「有没有清淡的」,他轻点低卡标签,一摞菜谱自动归拢。标签,是最灵活的检索捷径。

参数和指标都是「机器读数」,标签是「人赋予的意义」。实验阶段(baseline / ablation / best)、业务方向(推荐 / 风控 / 搜索)、结论状态(候选 / 已弃 / 已上线)——这些无法从数值推导的信息,全靠标签表达。

标签查询支持集合运算。查「同时是 baseline 且属于 cv」就是交集;查「best 或 ablation」就是并集;查「不是已废弃」就是差集。组合几枚标签,就能把实验库切成任意想要的切片,像书签系统一样灵活。

书签贴得规范,才能按主题随时抽出一摞相关菜谱。标签是团队协作时共同维护的一套「检索暗号」,暗号统一,检索才灵。

R={e∈E∣Te∩Tq≠∅}\displaystyle R = \{ e \in E \mid T_e \cap T_q \ne \varnothing \}
标签搜索 = 查询标签集合与实验标签集合的交集非空,即实验至少携带一个你要找的标签。
  1. 标签命中集合R 是匹配标签条件的实验结果集,是标签筛选后返回的菜谱合集
    R={e∈E∣Te∩Tq≠∅}\displaystyle R = \{ e \in E \mid T_e \cap T_q \ne \varnothing \}
  2. 实验标签集T_e 是某条实验自带的全部标签,记录这道菜的「分类属性」
    Te={t1,t2,…,tr}\displaystyle T_e = \{t_1, t_2, \ldots, t_r\}
  3. 查询标签集T_q 是检索时输入的目标标签集合,相当于点菜时选的标签
    Tq={q1,q2,…,qs}\displaystyle T_q = \{q_1, q_2, \ldots, q_s\}
  4. 非空判定交集非空表示实验携带了至少一个查询标签,因此进入结果集
    Te∩Tq≠∅\displaystyle T_e \cap T_q \ne \varnothing

跨团队协作共享

老王把「招牌红烧肉」的完整菜谱同步给全国分店,新厨师照方抓药,味道能有七分像。实验共享,就是把「最优实验的完整信息」同步给团队里所有人。

一个人跑实验可以靠记忆,团队协作必须靠平台。MLflow 的 Model Registry 记录谁、何时、基于什么参数注册了最佳模型;W&B 的 workspace 让多人在同一组曲线下评论、对比。共享的不是一个权重文件,而是它的元数据全集——参数、指标、标签、数据版本缺一不可。

知识沉淀意味着新成员搜索「历史做过什么」,就能看到之前踩过的所有坑。跨团队做方案对比时,用相对提升率度量新方案比基线好多少——直接比较原值会受任务难度影响,相对量才可在不同任务间公平对比。

一个后厨是菜谱墙,一个连锁集团是共享菜谱库。跨团队共享,让实验智慧从个人大脑沉淀为组织资产。

Δ=mnew−mbase∣mbase∣\displaystyle \Delta = \frac{m_{\text{new}} - m_{\text{base}}}{|m_{\text{base}}|}
相对提升率 = 新旧方案指标差除以基线指标的绝对值。它衡量「进步幅度」而非「绝对分数」。
  1. 提升量分子是新方案与基线方案的指标差值,表示绝对进步了多少
    Δ=mnew−mbase∣mbase∣\displaystyle \Delta = \frac{m_{\text{new}} - m_{\text{base}}}{|m_{\text{base}}|}
  2. 新方案指标m_new 是实验组(新方案)的核心指标取值,对应新菜评分
    mnew\displaystyle m_{\text{new}}
  3. 基线指标m_base 是对照组(旧基线)的指标取值,作比较的基准
    mbase\displaystyle m_{\text{base}}
  4. 绝对值归一化分母取绝对值并做除法,把差值转成无量纲的相对比例
    ∣mbase∣\displaystyle |m_{\text{base}}|

AI 应用场景

模型调参卡片墙:超参搜索后的最佳实验定位

阶段:实验管理与模型评估

解决的问题:超参搜索跑出四五百条实验后,参数组合多到记不住。传统方式靠翻 CSV 和对比文件名,效率低,还容易漏掉次优方案。AI 追踪平台的搜索过滤,用「指标排序 + 参数范围过滤」在秒级定位最优配置。

具体案例:推荐算法团队在 Weights & Biases 上对 500 条 run 做「按 acc 降序 + 过滤召回率 > 0.6」的组合查询,10 秒锁定 Top 3。再用 compare 视图对比它们的 learning rate 与 batch size 分布,顺藤摸瓜确定下一轮搜索的区间。

跨团队基线复用与知识沉淀

阶段:模型交付与团队协作

解决的问题:新团队做实体识别,想复用总部训练好的 text encoder,却不知道找谁确认、训练配置放在哪。传统方式靠邮件来回问,一周未必有结果。平台共享工作区加标签检索,让基线模型变成「可查询的资产」。

具体案例:新团队在共享工作区搜索 tag=text-encoder 且 metrics.f1 >= 0.92,找到注册为 base-2024 的模型。一键查看完整参数、数据集版本与代码 commit,克隆实验后 15 分钟复现了 95% 的基线效果。

Python 演示

python66 行
from dataclasses import dataclass  @dataclassclass Experiment:    name: str    params: dict    metrics: dict    tags: list  def build_experiments():    data = [        ("exp-001", {"lr": 1e-3, "batch": 32, "model": "resnet18"}, {"acc": 0.91, "loss": 0.38}, ["base", "cv"]),        ("exp-002", {"lr": 5e-4, "batch": 32, "model": "resnet18"}, {"acc": 0.93, "loss": 0.31}, ["best", "cv"]),        ("exp-003", {"lr": 1e-4, "batch": 64, "model": "resnet50"}, {"acc": 0.88, "loss": 0.52}, ["base", "nlp"]),        ("exp-004", {"lr": 2e-3, "batch": 64, "model": "resnet50"}, {"acc": 0.90, "loss": 0.45}, ["cv"]),        ("exp-005", {"lr": 1e-4, "batch": 128, "model": "vit-small"}, {"acc": 0.94, "loss": 0.29}, ["best", "nlp"]),    ]    return [Experiment(*row) for row in data]  def filter_by_param(experiments, param, lo=None, hi=None):    result = []    for exp in experiments:        value = exp.params.get(param)        if lo is not None and value < lo:            continue        if hi is not None and value > hi:            continue        result.append(exp)    return result  def filter_by_metric(experiments, metric, min_value):    return [e for e in experiments if e.metrics.get(metric, -1) >= min_value]  def filter_by_tags(experiments, tags, require_all=False):    wanted = set(tags)    if require_all:        return [e for e in experiments if wanted.issubset(set(e.tags))]    return [e for e in experiments if wanted & set(e.tags)]  def sort_and_top(experiments, metric, ascending=False, top_k=3):    ranked = sorted(        experiments,        key=lambda e: e.metrics.get(metric, -1),        reverse=not ascending,    )    return ranked[:top_k]  def find_best(experiments, param, lo, hi, metric, top_k=2):    step_1 = filter_by_param(experiments, param, lo, hi)    step_2 = filter_by_metric(step_1, metric, 0.90)    step_3 = sort_and_top(step_2, metric, ascending=False, top_k=top_k)    return step_3  if __name__ == "__main__":    pool = build_experiments()    best = find_best(pool, "lr", 1e-4, 1e-3, "acc")    for exp in best:        print(f"{exp.name}: acc={exp.metrics['acc']:.2f}, lr={exp.params['lr']:.1e}")
目的:用 5 条模拟实验记录,演示「参数范围过滤 → 指标阈值过滤 → 指标降序取 Top-K」的完整搜索链路。
  1. def build_experiments():构造模拟实验池,每条记录包含名称、参数、指标与标签四个元数据字段
  2. def filter_by_param(experiments, param, lo=None, hi=None):按参数区间过滤,lo 与 hi 分别对应下界与上界
  3. if lo is not None and value < lo:参数值小于下界时跳过该实验,相当于闭区间左端检查
  4. def filter_by_metric(experiments, metric, min_value):按指标阈值过滤,保留指标不小于设定值的实验
  5. def filter_by_tags(experiments, tags, require_all=False):标签过滤,require_all=True 时要求同时命中全部标签
  6. def sort_and_top(experiments, metric, ascending=False, top_k=3):按指标排序并截取头部,reverse=not ascending 实现降序
  7. best = find_best(pool, "lr", 1e-4, 1e-3, "acc")组合三条链路:先筛学习率区间,再筛准确率,最后取前两名

常见误区

误区我把每次实验的中间输出、环境变量、系统信息全部记下来,这样搜索时信息最全,肯定没错。

正解信息多不等于可搜索。没有设计 schema 的元数据就像杂乱的后厨,什么都堆着反而找不到。菜谱只需四要素,实验只需「名称 + 参数 + 指标 + 标签」这些可检索字段。大而全的日志适合写入文件系统,不适合作为检索字段。

为何常见:初用追踪平台时,容易把平台当成「记录一切」的日志系统,忽视了字段设计的投入产出比。

误区我用 `model_final_2`、`model_真_最终版` 这样的命名,加上文件夹分类,不也能找到模型吗?

正解文件名无法表达数值关系,回答不了「acc > 0.9 的全部实验有哪些」这类问题。平台把文件名变成可查询的结构化字段,搜索才从「猜位置」变成「算条件」。就像菜谱墙再整齐,也无法直接回答「评分前三的辣菜是哪几道」。

为何常见:小规模实验习惯迁移到大规模时,第一反应还是「记住文件名」,因为文件系统是每天都能看到的工具。

误区选最优实验很简单,把所有实验按准确率从高到低排,取第一个就行。

正解最高 acc 可能来自更长的训练轮数、更大的模型、过拟合,或不同的验证集划分。忽略训练成本与推理延迟,会把「赢在资源投入」误认为「赢在算法智慧」。合理流程是先过滤约束,再做多指标综合排序。

为何常见:「分数越高越好」的单科考试思维深入人心,而工程决策是多指标权衡的系统问题。

误区标签是自由字段,我想怎么打就怎么打,比如「good」「不错」「跑通了」。

正解标签的价值在于「团队统一的检索语义」。你写的 good,别人两周后无法理解当时为什么 good。像书签一样按「阶段 + 方向 + 状态」规范打标,并维护团队标签字典,搜索才有长期价值。

为何常见:自由维度容易被误读为无约束维度,忽略了标签的真正用途是协作与共享。

误区搜索过滤是锦上添花的功能,跑实验时把参数记一下就行,没必要专门学查询语法。

正解当实验量上千后,人力记忆彻底失效,检索效率直接决定迭代速度。能 10 秒定位最优实验的工程师,和翻一小时日志的工程师之间是数量级的差距。搜索语法是 MLOps 的核心技能而非可选项。

为何常见:小团队实验量小,尚未体会到「检索成本随规模指数增长」的痛点。

面试题

Q1. 实验追踪平台里,搜索与过滤能力的基础是什么?

单选题 · easy

  • A.更大的 GPU 显存容量
  • B.结构化的元数据记录← 正确答案
  • C.自动特征工程组件
  • D.模型量化推理加速

答案:B。A 与 C 是训练或特征工程的工具,D 是部署优化手段,都不承载检索语义。搜索过滤必须建立在结构化元数据之上,就像菜谱必须先成体系才能被快速查询。

Q2. 要筛选「验证准确率高于 0.9 的全部实验」,最合适的做法是?

单选题 · mid

  • A.按实验名称进行模糊搜索
  • B.按指标字段设置条件← 正确答案
  • C.查看系统日志逐条排查
  • D.用 Git 标签筛选历史提交

答案:B。准确率是「指标」而非名称、日志或代码标签,应按 metrics.acc > 0.9 这类字段限定过滤。其他方式无法承载数值比较关系,如同想找评分最高的菜却去翻菜名首字母。

Q3. 学习率在 1e-4 到 1e-3 之间,用什么过滤方式最合适?

单选题 · easy

  • A.精确等值过滤匹配
  • B.范围区间过滤筛选← 正确答案
  • C.通配符模式匹配
  • D.全文关键词检索

答案:B。学习率是连续值,范围过滤天然表达「从 a 到 b」的闭区间语义。等值过滤只能匹配恰好相等的值,通配符与全文检索适用于文本而非数值区间。

Q4. 按 loss 指标挑选最小模型,排序方向应为?

单选题 · mid

  • A.按 loss 升序排列取头部← 正确答案
  • B.按 loss 降序排列取头部
  • C.按 epoch 升序排列
  • D.按参数量降序排列

答案:A。loss 越小越好,升序排列把最小 loss 排在最前,取头部即最优。若降序取头部反而会选中最差模型。「越小越优取升序,越大越优取降序」是排序方向的第一原则。

Q5. 查询条件里先执行括号内逻辑,再执行外部逻辑,这体现了?

单选题 · mid

  • A.字段类型转换规避规则
  • B.布尔运算优先级规则← 正确答案
  • C.存储引擎索引分配规则
  • D.分布式调度容错重试规则

答案:B。括号优先、AND 先于 OR,是布尔运算的优先级规则。理解它才能读懂复杂检索式,就像理解「先算乘除后算加减」才能正确计算多条件查询的结果。

Q6. 找「标签同时含 baseline 与 cv」的实验,对应集合运算?

单选题 · hard

  • A.并集运算,命中任一标签即可
  • B.交集运算,两个标签都要命中← 正确答案
  • C.差集运算,排除该标签全部实验
  • D.补集运算,取全集所有之外

答案:B。「同时含」在集合论里是交集,要求实验的标签集包含查询标签全集,即 T_q ⊆ T_e。并集是「任一命中」,差集是「排除」,补集是「全集之外」,语义各不相同。

Q7. 以下哪一项属于实验指标?

单选题 · easy

  • A.学习率大小调节
  • B.批尺寸大小设置
  • C.验证集准确率结果← 正确答案
  • D.优化器算法选择

答案:C。学习率、批尺寸、优化器都是训练前设定的参数(配料),验证集准确率是训练完成后产生的评价结果(评分)。区分「输入参数」与「输出指标」是实验元数据设计的基本功。

Q8. 团队要把「最优方案」跨团队共享并保证可复现,应该记录哪些内容?

多选题 · extreme

  • A.完整超参数配置← 正确答案
  • B.数据集版本标识← 正确答案
  • C.代码版本与随机种子← 正确答案
  • D.训练时的显卡温度

答案:ABC。可复现需要参数、数据、代码三要素自洽:超参数决定训练行为,数据集版本决定输入分布,代码与随机种子决定计算过程。显卡温度是运行时硬件状态,不影响结果复现。

Q9. 标签适合表达哪些实验属性?

多选题 · mid

  • A.实验阶段状态标记← 正确答案
  • B.业务任务方向分组← 正确答案
  • C.完整训练日志内容备份
  • D.每次前向传播梯度明细

答案:AB。标签是「人赋予的语义维度」,适合表达阶段(baseline/best)与方向(cv/nlp)。完整日志与梯度明细属于数值型细粒度数据,应存放在指标或文件系统中,而非用标签承载。

Q10. 排序选优时,为避免「分数虚高」陷阱,合理的做法包含?

多选题 · hard

  • A.对不同实验用同一验证集划分← 正确答案
  • B.过滤掉极端资源消耗的方案← 正确答案
  • C.只看最高准确率一个指标
  • D.综合准确率与推理延迟← 正确答案

答案:ABD。同一验证集保证可比性,过滤极端资源消耗排除不公平竞争,综合多指标避免单点最优。只看 acc 会选出高成本但不可用的方案,就像只看摆盘漂亮却不管出菜时间。