美团自动驾驶算法二面:数据流水线、SFT 数据质量与手撕合并区间
- 轮次
- 二面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
自我介绍与实习追问
- 自我介绍
- 数据流水线中的结构分析和样本回流具体怎么做?
- 怎么理解高质量 SFT 数据集?
- 怎么评估数据集与真实数据分布接近?
- “专家经验思考监督数据”具体是什么?
手撕
- 二维数组,每个元素是一维数组,一维数组只有两个整数,代表一个线段的起点和终点,要求合并区间
- 给出一段算法核心源码,要求在代码里 debug
《参考解析》
-
合并区间是白板高频题,考的是排序 + 一次扫描,不是数据结构:先把区间按左端点排序,再顺序遍历,维护一个当前区间;新区间左端点 ≤ 当前右端点就合并(右端点取两者较大值),否则把当前区间落盘、换新的。讲的顺序比写完更重要——先跟面试官确认区间是否闭合、输入是否已排序、要不要原地修改,再动笔。常见的三个坑:只判了
start <= curEnd忘了取max导致区间被截短;相等时是否合并(闭区间要合并);最后一段别忘了收尾。写完主动跑一遍空数组、单区间、完全包含、首尾相接四组用例。 -
debug 题考的通常不是算法,是健壮性:这类题给一段能跑的代码,错的地方多在边界与契约上——入参类型/范围没校验、负数与零、除零、空集合、返回值与异常路径不一致、异常被吞掉。排查顺序是先在脑子里跑一遍正常用例,再针对每个函数的入参问「如果传进来的是 None / 负数 / 超长会怎样」。回答时把「发现的问题 — 触发条件 — 修法」说成三段,比直接改代码更容易拿分;顺手补一句工程习惯(类型注解、断言、单元测试)会显得不是只会刷题。
-
「高质量 SFT 数据集」要答成一组可度量的维度,而不是一句多样性:数据来源是否真实、去重与清洗是否彻底、任务与标签定义是否一致、类别配比是否贴近线上真实分布、样本难度是否有梯度、标注质量与一致性怎么抽检、长度分布是否被长样本带偏。落到自动驾驶这类场景,还要说清「模型最终要在什么分布上评估,训练集就该覆盖什么分布」——这句话能把题从数据科学拉到业务目标。
-
「怎么评估数据集与真实数据分布接近」有现成的两层答法:数值/类别特征做逐维统计对比(均值方差、分位数、类别占比、缺失率),再加分布距离指标(PSI、KL/JS 散度、KS 检验);高维非结构化数据(图像、点云、文本)则用模型 embedding 做距离或做判别器式检验,配合人工抽样看长尾。答完要补一句闭环:发现偏移后是补采、加权采样还是重做标注,以及这件事多久跑一次。
-
「专家经验的思考监督数据」本质是把隐式规则显式化:人工分类经验往往只沉淀成一级、二级标签,模型只学到「输入 → 标签」的映射,学不到判断依据。补法是把专家的判断过程写成推理链,做成带思维过程的监督样本,让模型先学「为什么这么分」再学「分成哪类」;代价是标注成本高、推理链质量参差,所以通常只对难例和边界样本做,配合规则约束一起用。答这题时把「规则约束 + 推理监督 + 少量难例」的组合讲清楚,比单说一句「换成思考模式模型」有信息量得多。