知识点 › 面试题

智驾数据闭环 · 47 道面试题

每题给出参考答案、追问方向与常见踩坑。按领域分组。

范式与价值

什么是数据闭环?为什么重要?

一句话:把真实世界产生的数据持续转化成车端模型能力的工程体系——采集→回传→治理→挖掘标注→训练→评测→部署→再采集。重要在于它决定「发现长尾的速度」,而长尾决定安全上限。

追问:那闭环的「转速」用什么衡量?(闭环周期、数据利用率、自动标注率、复发率)

踩坑:把它说成标注流水线。

闭环包含哪几个环节?

主干七环:采集、回传、存储治理、场景挖掘与标注、训练、仿真评测、部署回流;两个旁路:影子系统(自动发现)与信号系统(状态黑匣子);一层底座:数据平台(元数据/检索/权限)。

追问:哪个环节最容易断?(部署:发现问题排不上版本)

踩坑:只背步骤,不说「断在哪」。

为什么长尾问题不能靠堆里程解决?

里程增长主要落在简单场景,长尾是组合爆炸且不可穷举,边际收益极低。正确做法是「提高单位里程的长尾召回」+「用仿真/合成补覆盖」,也就是闭环效率而非数据总量。

追问:那怎么衡量「有效数据」?(数据利用率、场景覆盖、每万帧新增场景数)

踩坑:说「数据越多越好」。

数据飞轮怎么量化?

四个数:闭环周期(天)、数据利用率、自动标注率、Bad Case 复发率;再补一个「单位数据的指标增量」。飞轮转速看周期,健康度看复发率。

追问:周期缩短一半,瓶颈会转移到哪?(标注产能/评测算力/OTA 排期)

踩坑:只讲概念不讲数。

采集与回传

采集触发策略怎么设计?

双轨:随机基线(无偏样本,保证分布可测)+ 长尾触发(事件/区域/影子差异/语义不确定)。阈值用回传预算反推,配额按场景稀缺度分配,而不是按车平均。

追问:只有长尾触发会怎样?(分布漂移,模型在常见场景退化)

踩坑:只讲事件触发。

回传成本怎么降?

四招:车端预筛(算力换带宽)、只传关键片段(pre-trigger 缓冲 + 切片)、场站 WiFi/夜间闲时卸载、特征或缩略图先传再按需拉全量。量化口径是「每 GB 带来的指标收益」。

追问:预筛会不会引入选择偏差?(会,必须留随机基线校准)

踩坑:只会说「压缩」。

怎么保证采回的数据分布不偏?

固定比例的随机采样作为无偏锚点;按 ODD/天气/道路分层配额;定期用随机集对比「挖掘集」的分布差异;把「分布漂移」做成看板指标。

追问:发现漂移了怎么纠?(调整配额、补采、训练侧重加权)

踩坑:认为「挖难例」没有副作用。

多传感器时间同步怎么做?

硬件触发(PPS/曝光同步)+ PTP/gPTP 授时 + 统一时间戳口径(曝光时刻而非到达时刻);验收看跨传感器偏差(<1ms 级)与丢帧率;行曝光场景要做运动补偿。

追问:同步错了会在数据里表现成什么?(融合错位、BEV 拖影)

踩坑:只说「用 PTP」。

标定漂移怎么发现?

在线自检:用车道线/路沿/点云地面拟合外参残差,超阈值标脏;离线抽检:同一路段多车对比;数据侧给每段打「标定健康度」标签,训练时过滤。

追问:漂移会伪装成什么?(模型 bug:BEV 偏移、远处目标漏检)

踩坑:等到实车出问题才查。

数据合规有哪些红线?

三条线:测绘法(地理信息采集资质与加密)、汽车数据安全管理规定(敏感区域、重要数据)、个保法(人脸车牌属个人信息)+ 出境评估。落地手段:车端脱敏、地理偏转、分区存储、访问审计。

追问:出海怎么办?(本地处理、只回传模型/特征、走评估)

踩坑:以为脱敏就万事大吉。

矿山/封闭场景的闭环有什么不同?

路线固定、场景重复度高、可布场端基站与 WiFi、可「导演式」复现、合规压力小;但粉尘/震动/遮挡/无 GPS 是特有难点。闭环更短,数据冗余更高,重点是「增量场景判定」与「场端真值」。

追问:为什么重复度高反而更难?(去重与增量判定,容易过拟合固定路线)

踩坑:照搬开放道路方案。

数据基础设施

数据泄漏怎么防?

三种泄漏:时间(用未来数据)、实体(同场景/同车跨集)、标签(拿测试集挖 case 再训练)。防御:按片段/时间/地理切分;测试集只读+访问审计;holdout 定期轮换;双盲评测。

追问:已经泄漏了怎么补救?(重算历史指标、重建测试集)

踩坑:随机按帧划分。

数据集版本怎么管理?

不可变快照 + manifest 引用(不复制 PB 级数据)+ 变更日志;版本绑定「数据+代码+配置+权重」四元组;禁止原地修改。

追问:为什么不能直接复制数据集?(成本 + 血缘断裂)

踩坑:用文件名当版本。

向量检索 + 标量过滤,应该先过滤还是先搜?

取决于过滤后的基数:选择率低(过滤后很少)就先过滤再 ANN,否则先 ANN 再过滤会漏召回;选择率高就先 ANN + 后过滤,避免破坏索引效率。Milvus 支持标量过滤下推,实际按「过滤基数 / 总基数」估算切换。

追问:过滤后只有 100 条,还用 ANN 吗?(直接暴力精确检索更快)

踩坑:答「永远先过滤」或「永远先 ANN」。

TB 级 ETL 变慢,你怎么定位?

顺序:①看 Spark UI 的 stage 耗时,找最慢 stage;②看 task 耗时分布判断倾斜(个别 task 远超中位数);③看 shuffle 读写量与 spill;④看小文件数与分区数;⑤最后才怀疑算子写法。解法:加盐、repartition、合并小文件、列存 + 谓词下推、Kryo/Zstd。

追问:倾斜加盐后又慢了呢?(盐粒度过细导致任务数爆炸,要调粒度)

踩坑:一上来就调 executor 内存。

场景挖掘与标注

场景库怎么建?

四要素定义场景(静态环境+动态要素+任务+环境条件),按片段/事件/实例三级粒度管理,每个场景有标签、难度、ODD 归属、频次、关联标注与测试用例;一鱼三吃:训练样本、回归用例、仿真种子。

追问:场景过期了怎么办?(定期复核、标记失效、重采)

踩坑:只做标签列表,不做实例化。

难例挖掘有哪些方法?

五路:失败事件(接管/AEB/碰撞)、模型指标(低置信/高损失/不确定度)、一致性(时序抖动、传感器冲突、新旧模型分歧)、规则(近距离 cut-in、异形目标)、人工/UGC 反馈。挖完要去重、聚类、验证效果。

追问:挖出来就一定有用吗?(要 A/B 验证是否真的提升)

踩坑:只讲主动学习一种。

自动标注怎么保证质量?

三件事:教师模型用「离线特权」(更大模型+未来帧+多传感器融合);输出做置信度过滤与一致性校验;保留人工抽检与黄金集做校准。自动标注率要按「采纳率」算,不是「产出率」。

追问:教师模型的确认偏误怎么破?(人工锚点、定期换教师、主动补盲区)

踩坑:把「跑通模型」当成「自动标注上线」。

标注规范怎么写?

可执行判定规则 + 正反例截图 + 争议样本定论;规范版本化并与数据集版本绑定;定期用争议样本回炉修订。规范不清是质量波动的第一原因。

追问:规范改了,历史数据怎么办?(批量回填重打标)

踩坑:写成一堆抽象原则。

标注质量怎么评估?

四道关:培训考核、按比例抽检(算准确率、漏标率)、黄金集(固定标准答案测漂移)、争议仲裁(专家定论并回写规范)。漏标率比错标率更难测,也更伤模型。

追问:黄金集怎么防「被记住」?(定期换、控制样本量、不公开)

踩坑:只说「抽检 10%」。

数据配比怎么定?

基底用真实分布、长尾按稀缺度过采样(权重∝稀缺度^α)、新开城/新车型加权、旧场景保持回放防遗忘。配比要版本化并做消融,否则涨点无法归因。

追问:α 怎么调?(看长尾指标与整体指标的双目标,帕累托选点)

踩坑:拍脑袋定比例。

主动学习怎么避免「只挖难例导致简单场景退化」?

三个手段:①采样时保留随机基线,按比例混入无偏样本;②采样策略用「不确定性 × 多样性」,避免扎堆噪声;③每次迭代跑「简单场景回归集」,退化就回滚配比。核心是把「挖掘」当成有偏采样来管理,而不是无限捞难例。

追问:怎么量化偏移?(挖掘集与随机集的分布距离、类别覆盖率对比)

踩坑:只讲不确定性采样,不提偏差控制。

模型训练

训练时 GPU 喂不饱怎么办?

先查数据管道:解码、增广、shuffle 是否在 CPU 打满;再上「预解码 shard(WebDataset/LMDB)+ 多进程预取 + 本地 NVMe 缓存 + GPU 增广」。GPU 利用率低于 70% 先别换模型。

追问:shard 大小怎么定?(匹配并行度,兼顾 IO 碎片与负载均衡)

踩坑:第一反应加卡。

端到端和传统方案最大不同是什么?

模块化是「感知→预测→规划」显式接口、误差可分层归因;端到端直接从传感器到轨迹,信息不丢但不可解释、数据需求大、开环评测会骗人,必须靠闭环仿真与影子对比兜底。

追问:那怎么定位一次端到端的失败?(切片回放 + 中间监督 + 反事实仿真)

踩坑:只说「端到端更先进」。

蒸馏在闭环里起什么作用?

三个用途:云端大模型教车端小模型(部署)、教师模型生成伪标签(自动标注)、把多模型集成压成单模型(降本)。教师质量决定上限,教师有偏学生会继承。

追问:伪标签噪声怎么处理?(置信度过滤、一致性校验、人工锚点)

踩坑:把蒸馏只当压缩工具。

仿真与评测

开环评测有什么局限?

因果混淆:模型输出错了,历史仍按人类轨迹走,误差不累积、交互不发生。对规划尤其失真——「不敢动」的模型开环可能很好。所以开环只用于快速否定,闭环才用于肯定。

追问:怎么缓解?(自车历史条件化、闭环仿真、影子对比)

踩坑:拿开环指标证明安全。

怎么证明仿真可信?

同一批场景做「仿真 vs 实车」双跑,比对通过率、失败集合重叠度、排序一致性;差距大的模块(传感器仿真)要标定;实车发现的新失败模式要回灌场景库。没有对齐证据,仿真只能做筛选。

追问:对齐后仍有 gap 怎么办?(按 gap 加权、只信相对排序)

踩坑:认为「渲染真=仿真可信」。

闭环仿真怎么搭?

四件套:场景描述(可参数化)+ 交通流(会对自车反应)+ 车辆动力学 + 评测器。难点是「背景车要交互」,回放式仿真做不到;还要控制吞吐(百万级场景)与结果判读(自动分类失败原因)。

追问:回放和交互式各用在哪?(回归用回放,博弈用交互)

踩坑:把回放当闭环。

回归门禁怎么设?

分层:冒烟(分钟级,核心场景)→ 核心(小时级,分场景簇)→ 全量(天级)。阈值区分噪声与真实退化,失败要定位到「哪个簇退化」,并允许「已知问题白名单」但需登记。

追问:门禁总误报怎么办?(提高样本量、分桶阈值、趋势判定)

踩坑:一条总分卡死。

线上 A/B 怎么做?

车队分组、同版本基线、指标分层(接管/舒适/效率)、统计显著性、分层或配对校正(两组跑的路不同)。灰度限制爆炸半径,异常自动熔断回滚。

追问:样本量不够怎么办?(延长周期、配对同路段、用仿真补充)

踩坑:拿一天数据下结论。

MPI 这个指标有什么问题?

三个问题:接管定义不统一(安全员主观)、非系统原因混入(需剥离)、样本量小导致置信区间宽。报告必须带判定标准与置信区间;封闭场景更适合「每万吨公里事故率」这类业务指标。

追问:怎么降低主观性?(责任接管判定流程 + 复核)

踩坑:把 MPI 当安全证明。

部署与回流

影子模式是怎么实现的?

车端并行跑候选模型但不控车,与在用策略/人类驾驶做输出比对(轨迹距离、检测一致性、置信度),差异超阈值触发录制回传;云端聚合、归因、聚类、排序,产出待修复清单。关键约束是算力隔离与回传量控制。

追问:阈值怎么定?合理差异怎么排除?

踩坑:以为影子模式就是「录视频」。

影子模式和事件触发有什么区别?

事件触发只能发现「已暴露的问题」(接管、急刹、AEB);影子模式能发现「模型错了但系统没出事」的隐性 bad case——因为它在没有事件发生的平常路段也能比对出差异。两者互补:事件触发保底,影子扩面。

追问:影子会不会误报太多?怎么控?

踩坑:把二者混为一谈。

训练和部署不一致怎么排查?

拿同一帧原始数据,分别喂训练管线与车端管线,逐层比对输出:预处理(resize/归一化/颜色空间)、标定、坐标系、后处理(NMS/阈值)、量化。最常见是 BGR/RGB、插值、均值方差版本不一致。

追问:怎么防止复发?(自动化一致性测试进 CI)

踩坑:直接怀疑模型。

线上掉点怎么排查?

顺序:①确认范围(车型/区域/版本/时间);②对比新旧版本同场景;③查数据分布漂移;④查前后处理与标定;⑤查量化与算子;⑥最后才怀疑场景本身变了(施工/改路)。

追问:为什么先查环境?(很多「掉点」是路况变了)

踩坑:一上来就重训。

OTA 怎么保证安全?

A/B 分区保留上一版、签名校验、升级条件(驻车/电量/网络)、断点续传与断电保护、灰度分批、失败自动回退、成功率与回滚率看板。模型包与整车包解耦,可独立高频更新。

追问:升级中断电怎么办?(分区原子切换 + 看门狗)

踩坑:只讲差分升级。

组织与工具链

闭环 ROI 怎么算?

投入:采集/存储/标注/算力/人力;产出:路测里程节省、标注人力减少、版本周期缩短带来的收入。算法:省下的车日×单价 + 人天×单价 + 提前上线收益;再看边际收益(第 10 万帧 vs 第 100 万帧)。

追问:老板只批一半预算,你砍哪块?(先砍重复采集与低利用率存储)

踩坑:只讲技术价值。

闭环团队怎么分工?

平台(采集/存储/检索)、标注平台与运营、训练平台、仿真评测、车端部署与工具链、算法消费方;关键是要有「闭环 owner」对最终上车效果负责,否则 KPI 割裂。

追问:小团队怎么兼?(平台+算法双人组,数据质量专人)

踩坑:只按技术栈分工。

讲讲你做过的最有闭环感的项目

STAR 压缩版:一句话背景与规模 → 你负责环节的难点 → 一个关键取舍(为什么这么设计)→ 量化结果(周期/成本/指标)→ 一个失败与改进。70% 时间给「决策」,不是「我参与了」。

追问:如果重做一次,你会改什么?

踩坑:平铺直叙讲流程。

系统架构

千亿级数据检索怎么设计?

元数据入 StarRocks(分区分桶 + 物化视图 + bitmap 索引)做标签组合与聚合;向量库做「像不像」;文件走 OSS/HBase。查询链路是「结构化先过滤 → 向量再排序 → 缩略图人工确认」。

追问:为什么不用 ES 全扛?(聚合与多表关联弱,写入放大)

踩坑:只讲一个组件。

StarRocks 和 ES 怎么选?

ES 强在全文检索与日志,弱在大规模聚合与 join;StarRocks 是 MPP 列存,强在「多维度组合筛选 + 聚合统计」,适合标签圈选。实践中两者并存:ES 查日志与文本,StarRocks 查结构化标签。

追问:资源怎么估?(并发 × 单查询扫描量 → 核数;100 QPS 中等查询约数百核)

踩坑:唯组件论。

解析任务积压怎么治理?

先分层优先级(事故>影子>定向>常规),再限流与公平调度防大包饿死小包,然后扩消费并发/分片,最后补监控(p99 lag、积压量、死信)。根因常是「下游写入慢」而不是解析本身。

追问:怎么保证事故片段不被普通数据插队?

踩坑:只会加机器。

样本中心怎么设计?

分两层:基础文件(TV/PCD/GPS/autolabel/manual_label)+ 样本(基础文件的组合,粒度 2D/3D/video/clip)。样本种类限定「有限组合」防止存储与索引爆炸;样本工厂按批次生产、配比、冻结版本、导出训练。

追问:为什么要「有限组合」?(无限组合导致存储、索引、血缘不可控)

踩坑:把样本中心做成「文件服务器」。

算子

数据闭环里说的「算子」到底指什么?

两种:数据侧的加工单元(解析/解码/对齐/脱敏/质检/打标/切片/打包,要求幂等可重放),模型侧的计算图节点(Conv/NMS/GridSample/Scatter,要求车端覆盖与精度对齐)。两者在自动标注处交汇。

追问:数据算子最关键的性质是什么?(幂等 + 可重放,否则不可复现)

踩坑:只答一种,或者只说 CUDA kernel。

车端算子不支持怎么办?

三条路:自定义算子(TensorRT plugin/厂商库)、等价算子组合重写、fallback 到 CPU。按「使用频次 × 耗时占比」选,fallback 必须告警,否则会静默掉帧。

追问:怎么提前发现?(上线前做算子扫描:解析计算图匹配支持表)

踩坑:等到部署阶段才查支持矩阵。

怎么保证训练和车端算子精度一致?

同一份输入分别跑两个引擎,逐层 dump 输出,算相对误差与余弦相似度,定位第一个显著偏离的算子;量化误差要在关键层设预算;把对齐门禁写进 CI,换引擎/换芯片都重跑。

追问:常见元凶有哪些?(浮点累加顺序、算子融合、插值实现、padding 方式)

踩坑:只看最终指标,不做逐层比对。

算子是脚本吗?怎么部署?

逻辑上不等于脚本:算子是「接口契约 + 版本 + 实现」,脚本只是实现之一,也可以是容器镜像、常驻服务、Spark/Flink 作业。部署三种形态:一 Pod 一算子(隔离好、启动开销大)、一 Pod 多算子(省数据搬运、依赖耦合)、常驻服务(无冷启动、模型常驻)。真实系统按资源画像混合。

追问:怎么判断合并还是拆开?(计算时长 vs 启动+拉数据开销、GPU 独占、依赖冲突)

踩坑:一容器跑全流程,或者每个小算子都起一个 Pod。
按知识点看 →