字节跳动广告基础设施四面:micro benchmark 降噪与生成式召回的延迟取舍
- 轮次
- 四面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 自我介绍。
- 围绕实习经历展开追问。
- 围绕项目经历展开追问。
- 做 micro benchmark 的时候,怎样尽可能减少环境噪声?
- 了解私募量化那边用大模型替代传统训推做 Alpha 因子挖掘的工作吗?搜广推里生成式召回正在替代 ANN 双塔 / 定向倒排,但大模型对延迟敏感的在线链路来说太慢,这个「低延迟 vs 效果好」的 trade-off 是怎么做的?
- 最近有看什么论文吗?解决什么问题,创新点在哪?
《参考解析》
micro benchmark 降噪:分环境、内存、测量三层。环境上独占裸金属而不是大家都 ssh 上去的开发机,锁频并把 governor 设成 performance,避免睿频漂移;绑核时遍历 cpu list 挑利用率低于 2% 的核,优先同 NUMA node、共享 L3 的核,用 taskset/cgroup 把进程与中断都钉住,把 irq/rcu 这类杂活迁走,必要时用 isolcpus 隔离。内存上注意 NUMA 本地性,用 numactl 做 membind 与 interleave 对照,开 hugetlb 减少 TLB 抖动,预热阶段把内存摸一遍,别让缺页落在测量窗口里。测量上充分 warm up(对 glibc ptmalloc 反复 malloc/free,让 tcache 有足够 block),跑 A/A 对照看噪声底,多轮重复看中位数与 stdev 是否收敛,丢掉首轮与异常值;固定链接顺序、-falign-functions 等布局参数,避免代码对齐带来的偶发差异。汇报给分布,不给单个均值。
低延迟与效果的取舍(生成式召回):核心是把大模型挪出在线关键路径,做「离线重、在线轻」的分层。常见手段有五条:级联——生成式模型在离线或近线扩召回,在线仍用双塔加 ANN 快召回,只在候选集上跑轻量精排;蒸馏量化——用大模型当 teacher 打分,把能力压进小模型或小维度 embedding;预计算——用户与物料的生成式表示离线算好写进向量库或 KV,在线只做索引查询;近线更新——结果走流式通道按分钟级刷新,用一点新鲜度换延迟;预算与降级——按请求的 latency SLO 分配 token 与层数预算,超时直接退回传统链路。评估要同时看效果(召回率、CTR/CVR、多样性)、延迟分位(看 P99 不看均值)和单位算力成本,最终由线上 AB 决定净收益。
论文怎么讲:准备两到三篇能讲透的,按「问题—已有方案的不足—核心 insight—关键设计—代价与边界—能否落到自己项目」组织,配上吞吐、延迟分位这类量化收益。原帖提到的 DPDK、SMC 都属于用非常规手段换性能的方向,要能说清安全边界与维护成本;被追问「换到你们线上会怎么改」「什么场景下不成立」是常态,只报名字和会议名会被很快看穿。
反问环节:反问要问出信息量。可以问搜广推的差异:搜索是 query 强约束的主动检索,推荐候选池大但曝光漏斗陡,广告夹在中间却受预算、出价、定向与竞价约束,三者的延迟 SLO 与库存一致性要求都不一样;海外广告还能追问跨 AZ / 时区流量波峰错位带来的弹性调度,以及曝光与预算扣减的跨 region 一致性怎么防超卖。