模型精度已达标,但产线节拍要求单张端到端 ≤30ms(含预处理与后处理)。当前在 T4 上实测端到端 85ms:CPU 解码+resize 20ms、GPU 推理 45ms、NMS 等后处理 15ms(还有约 5ms 调度开销)。要落地到 8 条产线共 16 个工位。请给出你的优化顺序和理由——为什么第一步不是换更小的模型——以及多工位部署在架构和成本上的取舍。
面试官在考什么
判断候选人是否做端到端 profiling、能否按性价比排序优化动作,并把单张延迟问题放到多工位吞吐与部署成本的整体框架里决策。
回答框架 · 前两步
- 先做端到端 profiling 拆到算子/阶段级别,本例中前后处理已占 35ms,先攻它们(GPU 解码/DALI、算子融合、NMS 搬到 GPU、批处理)通常是性价比最高的
- 再做推理侧工程优化:FP16/INT8 + TensorRT 编译,但必须在带小缺陷的校准集上验证精度回退,回退不可接受就退回 FP16
还有 3 条答案要点、 3 层追问、 5 个常见坑, 以及针对你简历的追问路径,在定制报告里。
延伸阅读
想看这个方向的整体准备路线? 进入「CV 与多模态」方向页
同一能力域的其他题
- 工业缺陷检测里缺陷样本极少。你简历写"准确率 85%→95%",请说明:类别不平衡你具体怎么处理的?为什么在这种情况下"准确率"往往不是个好指标?
- 某产线一条工位用同一台工业相机连续拍了 30 天,共 50 万张图,其中质检员框选标注出的缺陷图 300 张,缺陷类型有划痕、脏污、凹坑三种。数据按采集时间顺序存放在同一个目录里,同一件产品经过该工位时会被连拍 8~10 帧。你接手后,从拿到这批数据到切出可用的 train/val/test,你会做哪几件事?划分方式为什么这么选?
- 某厂两条产线要做统一的缺陷检测模型。A 线每天产出约 20 万张图,良品率 99.5%,累计缺陷图 1000 张(划痕 600、脏污 300、其他 100)。B 线是新产品,收集两周只有 80 张缺陷图(类别与 A 线不完全重合),良品图 5 万张。你会怎么构建和划分数据集?请具体说清:以什么单元划分 train/val/test、跨线数据怎么用、长尾的“其他”类怎么处理、测试集怎么设计才能反映上线后的真实表现。
- 你接手一条产线的缺陷检测项目:A 线有 18 个月历史图像,但缺陷定义在这期间改过 3 次(标签体系漂移,比如原来叫“划伤”的现在被拆成“线性划伤”和“压痕划伤”);B、C 线刚上线 2 个月,只有 300 张已标注图,标注由质检员兼职完成,同一张图两个人标的框 IoU 只有 0.4。你的目标是 6 个月内把模型迭代到可上线。请说清楚:第一版训练集你怎么组、历史数据用不用怎么用、标注一致性你怎么管、以及你会向产线/质量团队要什么配合。
- 某产线连续采集了 5000 张图像,其中只有 40 张含缺陷,且这 5000 张是同一天、同一台相机、同一光照条件下拍的,同一块产品有时会连拍多张。现在你要训一个缺陷分割模型,请说明你会怎么划分训练/验证/测试集,为什么不能直接把 5000 张随机打乱按 8:2 分?如果把模型部署到另一条产线上,最可能出现什么问题?
- 你的训练集有 20 万张 OK 图、800 张缺陷图,缺陷分 5 类:划痕 500 张、脏污 150 张、凹坑 40 张、压伤 60 张、异物 50 张。目标是把 5 类都做到可用。请给出你处理不平衡的具体动作顺序和取舍,并说明每一步是为了解决哪个层面的不平衡。