开发工程师(人工智能平台部)【2026届】 一面
2025.3.13 面试 约50min 一面过
1、简历拷打
(1) 字节跳动实习经历
- 介绍一下这段实习的内容
- 能讲一下模型结构吗?
- 答:保密协议原因,实习生无权访问最新模型架构,旧版模型结构是:xxxxxxx
- 你融合算子,是怎么知道要融合这几个的?
- 答:旧版模型能接触到,通过 profile 工具导出 trace 图,分析找出可融合算子。
- 都是在什么卡上进行的调优?
- page attention 优化项目能否详细讲?
- 你们的 video caption 是什么样的模型?传统 video caption 可能只是使用 vit + cnn 提取特征然后使用 lstm 进行解码,然后现在有些模型是直接将输入特征拉平然后传入 LLM 进行生成,所以你们的模型是什么样的?
- 答:我们的 video caption 是通过 ViT 将图像切成 patch 并拉平,然后还要从原始图像中提取出一个全局图像信息特征,作为 mask token。然后在 LLM 生成过程中,每次使用这个 mask token 拼接在输入序列后,使用这个全局信息特征作为请求计算得到的 logits 作为生成结果。在加速优化过程中,我们跟算法沟通,能否去掉这个 mask token 重训一版,算法表示可以,但懒得重训,因此我们采用优化 page attention 的方式来提升吞吐。
- 优化 tensorrt-llm 时,你们是通过改 plugin 实现的吗?还是怎么实现的?
- 答:我们更换 plugin,然后由于 plugin 只是计算 attention,因此我们在进入 plugin 前先对 qkv 做 rope,将加了 rope 后的 qkv 送入 plugin 进行计算。
- 你觉得融合四个算子时,为什么提升这么大?
- 答:减少了全局内存访问
- 为什么不能直接用现有的融合算子实现?
- 答:DiT 视频生成模型需要将图像和 text 的 embedding 进行拼接后再做后续操作,然后图像做 rope,文本不做 rope,因此不能提前拼接,所以现有的融合算子没有相关的实现。
- 视频帧做 rope 时,时序信息怎么维持?
- 答:在视频生成模型中,使用 3D rope,在计算 rotary embedding 时,需要的参数除了2d rope中的 h、w 外,还需要时序编号 t。因此在旋转编码中已经融入了时序信息。
- 视频生成模型有多大?
- 答:保密协议原因,具体数值不详。
- 融合算子的时候是否考虑了 cp 或 sp?
- 不需要,因为我融合的这几个算子都是 element-wise 的,序列并行并不会造成计算结果的错误以及通信量的增加。
(2) 美团实习经历
- 原生多模态是指什么?
- 为什么要改 flash attention?
- 为什么不用 varlen 实现?
- 用 varlen 也只能是不同长度的序列可以一起计算 attention,但他们使用的 attention 类型需要是一样的。我们的 mask 需要是不同部分使用 attention 类型是不同的。
2、算法题
给定一个数组 nums 和一个目标值 target,m 次查询,每次给定一个区间 [l, r],求在区间范围内是否存在两个数的异或等于 target。
开发工程师(人工智能平台部)【2026届】 二面
2025.3.18 面试 约 30 min
唠家常
- 为什么要投递B站?考虑了哪些因素?
- 答:考虑到转正率;以及对于基座 LLM 的推理训练了解比较少,来这里可以更多学到这方面的知识
简历拷打
- 为什么没有看到使用量化方法进行优化?
- 答:我们使用一些典型测试集进行测试,观察模型中的激活数据分布和权重数据分布,发现我们的模型中的激活数据分布和权重数据分布都比较集中,异常值都比较小,所以没有使用特殊的量化方法进行优化。只是使用简单计算的方法进行量化。当然一些典型方法也是尝试过的,比如 smoothquant、awq等,我们也尝试了attention量化sage attention,效果还可以,但由于我们线上模型的attention占比比较小,所以也没有上。
- 是否了解 tensorrt-llm、vllm 以及 sglang 等框架?
- 答:从使用难度、性能、量化性能、特点等方面进行回答。sglang 的特点在与 redix attention,即 prefix cache。
- 为什么 tensorrt-llm 要兼容双向注意力?
- 算子优化是有一个列表吗?还是怎么知道要有这些算子可优化点的?
- 答:根据 profile 结果进行判断
- 看起来做的事情都是比较杂,没有线性的工作,即在做一个优化的过程中出现了其他问题,然后解决这个问题,这是为什么?
- 答:因为入职时间原因,我来的时候已经没有整块的可做的事了,只剩这些零碎的小问题。
- triton、cuda、cutlass 差异是什么,为什么没有使用 cuda 融合算子?
- flash attention 优化做了什么,为什么能有这么大的性能提升?
- 对训练是否了解?比如并行这些?
- 多模态训练时是否支持变长?需要做 padding 吗?
- 支持变长,没有做 padding,直接拼接,然后使用 varlen 实现。
- 对 moe 是否做过尝试?moe 会存在什么问题?
- 答:moe 可能存在负载不均衡、通信成本高等问题。
- 是否以 compute bound 和 memory bound 为标准进行优化?
- deepspeed 中的几个 zero stage 分别是什么?
- profile 用的什么工具做的?有没有什么发现与预期不一致的情况?
- 对于模型稀疏性了解哪些?
- 答:调研过 sparsity attention,包括 minference、nsa 等;还有 mla、flash mla 等。