字节跳动 大模型算法 三面:项目归因、Transformer 与手撕
- 轮次
- 三面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 你核心优化方案的具体内容是什么?一句话说清它到底改了什么。
- 这个优化对应哪个指标,涨了多少?怎么把增长归因到你的改动,而不是同期其他变化?
- 你的模型是基座微调,还是从零开始训练?
- 训练数据的清洗流程和筛选规则是什么?请一条一条说。
- 清洗过程中有没有误删、错筛?怎么规避?
- 训练链路只有 SFT,还是叠了 RL?
- 详细讲 Transformer 的整体架构和核心模块。
- 给定头数 H、序列长度 N、嵌入维度 D、Encoder 层数 L,推导整体计算复杂度。
- 手写二分类损失函数公式。
- 讲生成式模型的基本原理,并手写 VAE 的 loss。
- 长度 2n+1 的数组,n 个成对,找唯一出现的数。
- 升级:长度 2n+2,有两个只出现一次的数,都找出来。
- 三维积木堆叠,上层长宽严格小于下层,求最大可堆叠高度。
《参考解析》
项目归因:面试官问「怎么证明是你的改动带来的」,本质是考实验设计。正确答法是:先固定基线,再做单变量 AB 实验,实验组和对照组同时段、同流量、同人群;看核心指标和护栏指标;如果同期还有别的策略上线,用分流正交、分层实验或 holdout 拆开;最后给置信区间和样本量,而不是只报一个涨幅。没有条件做 AB 时,至少做离线回放、消融实验和 bad case 分析,并说明局限性。
数据与训练:数据清洗要说清来源、去重、语言/长度/质量过滤、敏感内容处理、采样比例和人工抽检。误删和错筛靠规则灰度、保留原文可回溯、抽样评估和指标监控来规避。SFT 是监督微调,RL 是在奖励信号下优化策略;两者不是互斥,常见链路是预训练 → SFT → 偏好对齐。答题时把「数据—训练—评估—上线」闭环讲出来,比堆名词更重要。
Transformer 复杂度:每层自注意力是 O(N^2 D)(QK^T 和加权求和),FFN 是 O(N D^2),L 层合计 O(L(N^2 D + N D^2)),头数 H 在常数因子内。长序列时注意力是瓶颈,所以有稀疏注意力、滑窗、线性注意力等优化。二分类损失是 -[y log p + (1-y) log(1-p)]。VAE 的 loss 是重构项加 KL 正则,训练时用重参数化采样。
手撕:找唯一数用异或,成对抵消;两个唯一数先异或得到 a^b,取最低位的 1 把数组分成两组,再分别异或。三维积木堆叠先按底面排序,再做三维偏序的最长链 DP;n 不大时 O(n^2) 比较即可,要求严格小于,注意相等时不能叠。写完主动说边界:空数组、全成对、重复维度。