Appearance
近三年 AI Infra 大厂面经补充索引(2026-04-17 更新)
1. 百度 AI Infra 一面 (1)
- 阐述 Attention 机制的原理,并介绍近期关注的模型所采用的注意力机制
- QKV 中 K 的作用是什么?能否省略 K 直接使用 V?
- 对比 BatchNorm、LayerNorm 与 RMSNorm 的区别
- 常见的位置编码方式有哪些?各自的特点
- 介绍强化学习中的 PPO、DPO、GRPO 算法
- 为何当前 decoder-only 架构比 encoder-decoder 架构更为流行?
2. 百度 AI Infra 一面 (2)
- CUDA 中 GEMM 的实现与优化方法
- 实现 CUDA 向量加法 Kernel
- LLM 推理部署中有哪些常用的优化技术?
- Float32 与 INT8 之间如何进行相互转换(模型量化)?
- 最长公共子序列(LeetCode 1143)
3. 百度 AI Infra 一面 (3)
- Trust Region 方法与 PPO 之间的关系
- PPO 属于 on-policy 还是 off-policy?为什么需要引入 importance sampling?
- PPO 中 clip 机制在优势函数 A 为正值和负值时分别如何限制上下界?
- PPO 的损失函数如何计算?广义优势估计(GAE)的计算方式及 lambda 参数对方差和偏差的影响
- GRPO 的损失计算方式,序列级别损失如何分配到每个 token?序列级别平均与批次级别平均的区别
- 其他 GRPO 变体(如 DAPO、GSPO、GFPO 等)的特点
- Agentic RL 的基本概念与应用
- 训练过程中优化器状态、梯度、模型参数各自的显存占比
- FSDP 与 DeepSpeed ZeRO Stage 1/2/3 的对比
- 项目介绍及技术方案,如何将大语言模型与具体应用场景结合,评测方式与指标结果
- 二叉树的层序遍历,并记录每个节点所在的层级(LeetCode 102 变体)
4. 百度 AI Infra 二面
- 请完整描述 Transformer 从输入 token 到输出 logits 的计算流程。
- FFN 层为何采用先升维再降维的结构?这种设计对模型表达能力有何影响?
- MHA、MQA、GQA 在推理阶段的 KV Cache 占用和计算效率方面有什么差异?
- 推理阶段为什么 KV Cache 只缓存 K 和 V 而不缓存 Q?
- RoPE 的核心原理是什么?在长上下文场景下存在哪些局限?
- Instruction Tuning 中多轮对话数据训练时,Loss Mask 应如何设计?
- SFT 后模型在特定任务上能力增强但通用能力下降,应如何处理?
- LoRA 的低秩分解为何能近似全参数微调的效果?
- LoRA 的 Rank 设置不当时,模型表现会出现什么现象?
- DPO 训练后模型输出明显变长,在实际系统中如何应对?
- 对齐训练后模型过于保守、频繁拒绝回答,应如何调整训练策略?
- 大模型出现复读机现象通常由哪些因素导致?
- 知识库数据的清洗与构造流程是怎样的?数据质量不一致会对 RAG 系统产生哪些影响?
- 文档切分策略如何设计?Chunk Size 和 Overlap 的选择会如何影响召回质量与生成效果?
- 用户问题在知识库中确实存在但系统未能召回正确文档,应如何排查?
- 检索到了正确文档但模型生成的答案仍然有误,应如何定位问题?
- 召回结果经常语义相似但事实无关,应如何优化检索模块?
- 一个问题需要跨多个文档才能回答时,RAG 系统应如何处理?
- 如何判断 RAG 系统中的问题出在检索模块还是生成模块?
5. 阿里巴巴 AI Infra 一面 (1)
- Group Query Attention 的设计动机与作用是什么?
- MoE 架构中,专家路由是针对每个 token 进行还是针对每个序列进行?
- 针对 KV Cache 有哪些常见的优化策略?
- RAG 系统中检索模块的实现方案有哪些?
- 预训练阶段常用的数据清洗方法有哪些?
- 请阐述你设计的 Agent 系统的整体架构。
- 实现一个 LRU Cache。
6. 阿里巴巴 淘天 AI Infra 一面 (1)
- Agent 的记忆模块应如何设计?有哪些常见的记忆管理策略?
- Workflow、Agent、Skill 三者的区别与各自的定位是什么?
- 编写 Prompt 时需要考虑哪些关键因素?如何评估 Prompt 的质量?
- 详细介绍项目一的技术方案与实现过程。
- 你构建的 Agent 系统中,各个 Agent 分别负责什么任务?请说明各自的输入和输出。
- Vibe Coding 实操:根据给定问题现场进行编码实现。
7. 字节跳动 AI Infra 一面 (1)
- C++ 虚函数的实现机制是什么?虚函数表如何工作?
- C++ 中内存对齐的规则和意义是什么?
- 动态库与静态库的区别及各自的适用场景是什么?
- 编程题考察。
8. 字节跳动 豆包 AI Infra 实习 二面
- Decoder-only 架构为什么成为当前大模型的主流选择?
- Qwen2 的模型结构是怎样的?相较于 Qwen1 做了哪些改进?
- PPO 与 DPO 的核心思想分别是什么?
- 为什么在 SFT 之后仍然需要 RLHF 阶段?
- 目前有哪些常见的模型训练与推理优化方法?
- 请介绍你的实习项目及论文研究内容。
- 合并 K 个升序链表(LeetCode 23)。
9. 腾讯 TEG AI Infra 一二三面
- 聚合函数与 GROUP BY 的底层实现方式
- JOIN 操作的实现方法及优化策略(索引优化、哈希表优化)
- 哈希 JOIN 中若一侧表远大于另一侧,如何进行优化
- 数据库优化器的作用及其实现原理
- EXPLAIN 语句的执行机制
- Buffer Pool 的设计与实现
- 脏页的管理策略及数据丢失问题的解决方案(redo log)
- LRU 算法的缺陷(预读失效、缓存污染)及改进方案
- 并发 B+ 树的实现机制
- 火山模型与其他执行模型(物化模型)的比较
- 行存储与列存储的适用场景分析
- 事务与 MVCC 的基本概念
- 从单机数据库扩展为分布式数据库的设计思路(数据分片、元数据管理、算子执行)
- 哈希分片与范围分片的区别
- 元数据节点的高可用方案(主从复制、分布式一致性协议)
- MySQL 主从复制中如何保证强一致性
SELECT * FROM table的执行计划(Project 投影算子 + TableScan 全表扫描算子)- 分布式场景下需要增加哪些算子来实现跨节点查询
- 带 WHERE 条件和 GROUP BY COUNT 的分布式执行计划设计
- Linux 系统的启动过程
- 中断处理模块的实现机制
- CPU 如何处理多个并发中断
- 进程与线程(包括用户态线程)的区别
- 用户态线程的调度方式及可能存在的问题
- 用户态到内核态的切换过程
- 实现基于内存的文件系统(字典树变体)
- 基于 MiniOb 阐述一条 SQL 查询的完整执行流程
- 查询过程中最影响性能的关键环节
- 项目中是否有优化器的设计
- 火山模型与 Pipeline 模型的关系
- 突破现有执行模型瓶颈的优化方向(CRTP 减少虚函数开销、物化模型批量返回数据)
- OceanBase 项目的优缺点分析
- 介绍 xv6 项目及其带来的收益
- 快慢指针找链表中点 + 反转链表
- 介绍简历项目中个人负责的部分及分工情况
- 团队协作中遇到分歧时如何处理
- 将字符串中的大写字母转为小写,并按字典序排序(不使用库函数)
10. 快手 AI Infra 一面
- 是否了解 Prefill-Decode(PD)分离?AF 分离的目的是什么?既然已有 PD 分离,为何还需要 AF 分离?
- FlashAttention V2 相比 V1 做了哪些改进?具体优化思路是什么?是否了解最新的 V4 版本?
- 大模型中一层 Transformer 包含几个线性层?张量并行(TP)时如何切分?这样切分的原因是什么?有哪些思路可以优化中间的 AllReduce 操作?
- Ray 的底层实现机制是什么?有哪些关键特性?在实际研究中是如何使用 Ray 的?
- 列举并阐述 CUDA GEMM 的常见优化方法。
- LeetCode 单词接龙。
11. 小米 AI Infra 校招 一面
- 介绍 Fastllm.cpp 的核心技术细节。
- PagedAttention 的作用与设计原理。
- FlashAttention 的算法流程。
- 模型量化的基本原理与常见方案。
12. 蚂蚁 AI Infra 实习 一面 (1)
- 如何判断一个算子是否需要优化?具体的判断依据和分析路径是什么?(热点分析、瓶颈类型判定:算力瓶颈 / 访存瓶颈 / 调度开销)
- 面对一个尚未量化的模型,应如何系统地推进量化工作?(模型结构分析、部署目标确定、量化粒度选择、校准方式选择、精度与性能的迭代验证)
- AWQ 等量化方式在增加了反量化步骤后,为什么整体推理仍然可以实现加速?
- 静态图和动态图各有什么特点?为什么通常需要将动态图转为静态图后再进行融合优化?转换本身的开销如何处理?
- vLLM 在推理调度和 KV Cache 管理方面的核心设计思路是什么?
- 实习中遇到过哪些有难度的问题?(如 OOM、长轮次推理中的显存异常增长与随机崩溃,排查链路与修复方案)
- 实习中开发的 Timing 插件底层实现是什么?为什么不直接使用 Nsight / NCU 等 Profiling 工具?
- 不同模型在本地部署和量化时是否存在显著差异?
- 图优化的选取策略和开发流程是怎样的?
- 复制带随机指针的链表。
13. 美团 AI Infra 一面
- 针对简历中涉及的全部项目进行深入提问,重点考察项目细节与技术实现
- Decoder-only 架构与 Encoder-only 架构各自的优势与不足
- 概述 LLaMA 模型的主要设计特点
- CUDA 编程模型的基本概念与层次结构
- CUDA 内存模型包含哪些层级,各自的特点是什么
- 使用共享内存时如何应对 bank conflict,有哪些规避策略
- 使用寄存器时可能遇到哪些问题(如寄存器溢出),应如何处理
- GPU 多线程与 CPU 多线程在调度机制上有何本质差异
- 阐述 Flash Attention 的核心原理
- 阐述 Paged Attention 的设计思路与工作机制
14. 华为 AI Infra 实习 (2)
- 部署模型与推理模型时所需的参数量分别如何估算?
- 模型推理中 Prefill 阶段与 Decoding 阶段的区别是什么?KV Cache 的大小如何计算?
- 模型中的超参数 Temperature 的数学原理是什么?Temperature、Top-k、Top-p 三个参数的作用顺序是怎样的?
- Softmax 函数的定义与计算过程是什么?
- DeepSpeed 框架中 ZeRO Stage 1、2、3 分别优化了什么?各阶段的区别是什么?
- 假设需要对矩阵乘法 A x B 进行分布式计算,给定 4 张卡,请描述如何分配矩阵 A、B 的参数,并通过卡间通信实现显存节省。
- 对通信算子有哪些了解?常见的集合通信原语有哪些?
15. 英伟达 AI Infra 校招 (2)
- SIMT(Single Instruction, Multiple Threads)的含义与工作原理。
- Occupancy 受哪些因素影响?如何进行调控?
- Bank Conflict 的粒度是多少?
- GEMM 分块大小的选择受哪些因素制约?
- 使用 float4 读写全局内存为何能提升性能?
- 一个 Block 是否可能被调度到不同的 SM 上执行?
- 主流 GPU 型号的 Cache 容量分别是多少?
- Warp Divergence 对性能的具体影响。
- NVIDIA GPU 中指令级并行(ILP)的实现方式。
- 实现 CUDA 矩阵转置。
- 实现向量外积运算。
16. 寒武纪 AI Infra 实习
- GEMM 中为什么通常让单个线程处理 8x8 的计算块?
- 使用 CUDA 实现算子时的主要难点有哪些?
- 是否使用 CUDA 实现过前缀和(prefix sum)?
- 什么是 bank conflict?有哪些减少 bank conflict 的方法?
- Little's Law 中访存延迟与计算延迟的关系是什么?
17. 腾讯 AI Infra 校招 一二面1
- 比较 TensorRT-LLM、AGI 与 vLLM 的源码实现差异
- continuous batching 的设计动机是什么
- 介绍 fastllm.cpp 的源码结构与实现思路
- Python 中计算密集型任务应使用多进程还是多线程
- C++ 中继承的底层实现机制
- YOLO 模型推理加速的常见方法
- 最大子数组和
- 介绍 vLLM 与 PagedAttention 的核心原理
- 使用 Triton 实现 PagedAttention 的思路
- CUDA 内存模型的层次结构与特点
- C++ 编译期运行的实现方式(constexpr 等)
- 计算一个整数的二进制表示中 1 的个数
18. 阿里巴巴 AI Infra 实习 一面
- 什么是访存密集型算子?请举例说明。
- 阐述 FP32、FP16、INT8 三种数据类型在底层的存储格式及差异。
- 量化的基本原理与具体实施流程是怎样的?
- 对比 GPU 和 CPU 的体系结构差异,各自适合处理哪类计算任务?
- UDP 与 TCP 协议分别适用于什么场景?各自的优缺点是什么?
- Linux 下查看磁盘使用情况的常用命令有哪些?
- 判断链表是否存在环。
- 用 CUDA 实现向量加法。
- 解释锁的概念及常见类型。
- 谈谈对交叉熵损失函数的理解。
- CUDA 编程中并行性与并发性分别指什么?二者有何区别?
- 简述 GAN 和 CVAE 的基本原理与区别。
- 手写 SVM 的核心实现。
- 手写 Transformer 的核心结构。
19. 字节跳动 AI Infra 实习 一二三面
- 请介绍你参与的 Efficient Transformer 相关研究工作。
- CPU cache 中每条 cache line 由哪三部分组成?各自的作用是什么?
- 为什么需要设计多级缓存?
- 发生 cache miss 后,硬件的处理流程是什么?
- 页表机制引入的性能开销有哪些?如何缓解?
- 页表机制带来了哪些好处?
- C++ 中函数重载的机制是什么?编译器如何实现?
- C++ 中原子操作的概念及其引入的原因是什么?
- 棋盘连通性判断:判断棋盘第一行到最后一行是否连通。
- 请深入介绍 Efficient Transformer 的相关研究。
- Sparse Attention 的 Python kernel 如何实现?
- 大模型分布式训练中有哪些常见的并行策略?
- 模型训练和推理中显存占用过高时有哪些应对方案?(如稀疏化、梯度检查点、量化推理、混合精度训练、模型蒸馏等)
- 如何编写 GPU 并行计算相关代码?
- 给定完整的 Graph 类定义,实现拓扑排序函数。
- 请介绍你提出的 Sparse Attention 机制的创新点。
- Efficient Attention、MoE、分布式训练等技术在工业场景中的实际效果如何?
- C++ 多态机制中,虚函数表的函数地址在何时确定?对象的虚表指针在何时被赋值?
- C++ 中如何释放 vector 已分配的内存?
- 设计一个数据结构,支持栈的全部操作,并能在 O(1) 时间内获取当前最小值。
- 下一个排列(LeetCode 31)。