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