面灵AI→

字节跳动 大模型算法 三面:项目归因、Transformer 与手撕

轮次
三面
时间
2026-10
来源
牛客网

《面试题目》

  1. 你核心优化方案的具体内容是什么?一句话说清它到底改了什么。
  2. 这个优化对应哪个指标,涨了多少?怎么把增长归因到你的改动,而不是同期其他变化?
  3. 你的模型是基座微调,还是从零开始训练?
  4. 训练数据的清洗流程和筛选规则是什么?请一条一条说。
  5. 清洗过程中有没有误删、错筛?怎么规避?
  6. 训练链路只有 SFT,还是叠了 RL?
  7. 详细讲 Transformer 的整体架构和核心模块。
  8. 给定头数 H、序列长度 N、嵌入维度 D、Encoder 层数 L,推导整体计算复杂度。
  9. 手写二分类损失函数公式。
  10. 讲生成式模型的基本原理,并手写 VAE 的 loss。
  11. 长度 2n+1 的数组,n 个成对,找唯一出现的数。
  12. 升级:长度 2n+2,有两个只出现一次的数,都找出来。
  13. 三维积木堆叠,上层长宽严格小于下层,求最大可堆叠高度。

《参考解析》

项目归因:面试官问「怎么证明是你的改动带来的」,本质是考实验设计。正确答法是:先固定基线,再做单变量 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) 比较即可,要求严格小于,注意相等时不能叠。写完主动说边界:空数组、全成对、重复维度。