题目重点:用可复现运行身份连接层级数值检查、任务质量、模型裁判和人工标注,处理异步任务失败与结果可追溯。
题意与假设
这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。
- 训练平台比较model/runtime/config变更前后的质量,数值正确性与用户任务质量分别评估。
- run身份固定模型、tokenizer、数据集、prompt模板、推理参数、runtime/hardware和代码版本;题目没有正式schema。
- 采样生成可非确定,不能要求不同硬件所有token逐字一致;数值容差按精度与层级另定。
解题路线
- 异步API createRun返回run_id,任务状态QUEUED/RUNNING/SUCCEEDED/FAILED/CANCELLED分开。调度器配置资源与推理服务,记录每个shard重试身份和产物清单;对象存储成功写结果不等于整次run通过评测。
- 底层检查张量shape、dtype、finite、相对/绝对误差、层间输出与logits差;用已知小样本对照reference定位首个显著差层。loss或perplexity统一tokenizer与mask/分母,避免只比较不可比的一个数字。
- token层既可测试贪心确定路径,也要给采样统计容差;任务层按任务定义正确率、事实证据、拒答/安全边界和格式要求。数值小差可能被argmax边界放大,但回答不同未必质量下降。
- LLM裁判固定版本与rubric,交换回答顺序检查位置偏差,重复评判并和人工金标准校准。不要让候选模型评自身结果后直接宣布更好;保留裁判置信/分歧与人工复核队列。
- 结果按固定paired样本比较并报告样本量、置信范围及关键切片;不能只用总平均掩盖高风险任务退化。通过gate需所有必需shard成功,失败/缺失样本明确标记,不能从分母中无声删除。
- 保存可追溯manifest、日志、指标、原响应与标注协议。昂贵张量dump只对选定样本/层采集;配额、取消与超时清理资源,重跑尽量复用固定输入而非换一批更容易样本。
手动走一遍
训练例更换低精度runtime后总体回答分略升,但一个数学切片明显下降。先用同prompt/logits对照定位数值漂移,再人工复核裁判分歧;若shard失败10%,run是incomplete,不能只对剩90%比较后发布‘提升’。
规模与取舍
T个样本、每个L token,推理成本按模型规模与T·L估;保存所有层激活可能远大于最终回答,需采样。裁判调用按被评回答数与重复次数增长,paired比较可减输入方差但不消除裁判偏差。
易错点与追问
容易失分的边界
- 所有文本不同都当推理bug。
- 模型裁判当无偏真值。
- 不同tokenizer的loss直接比较。
- 失败样本从分母消失。
- 没有版本manifest,结果无法复现。
继续深挖
- 仅某GPU型号退化,如何隔离数值与任务因素?
- 裁判和人工总是分歧,哪项gate可信?
- 预算只允许少量人工标签,如何选样?
- 运行被取消后怎样避免孤儿GPU实例?
