Appearance
AI Infra 近三年公开面经(仅问题,按公司与轮次)
阿里巴巴(16 条)
阿里巴巴 控股集团 AI Infra 实习 一面
- 开发一个 MCP 后,如何评测其实际效果?后续如何进行迭代优化?
- 对于一个 Agent 系统,如何实现链路追踪与可观测性?
- Agent 的对话记录采用什么方式保存?使用了怎样的数据结构?
- 目前了解哪些主流的 Agent 开发框架?各自的特点是什么?
- 围绕实习相关内容进行深入提问。
- 最长有效括号(LeetCode 32)。
阿里巴巴 控股集团 AI Infra 一面
- 阐述 Expert Parallelism 中 Dispatch 和 Combine 的具体流程。
- DeepSeek 系列模型的架构有哪些特点?
- 在 Tensor Parallelism 中,AllReduce 操作需要执行多少次?如何推导?
- 如何计算 KV Cache 的显存占用大小?
- vLLM 近期有哪些值得关注的新特性?
- 手写 MQA 和 GQA 的实现。
阿里巴巴 淘天 AI Infra 一面 (1)
- Agent 的记忆模块应如何设计?有哪些常见的记忆管理策略?
- Workflow、Agent、Skill 三者的区别与各自的定位是什么?
- 编写 Prompt 时需要考虑哪些关键因素?如何评估 Prompt 的质量?
- 详细介绍项目一的技术方案与实现过程。
- 介绍项目二的背景与核心工作。
- 你构建的 Agent 系统中,各个 Agent 分别负责什么任务?请说明各自的输入和输出。
- Vibe Coding 实操:根据给定问题现场进行编码实现。
阿里巴巴 淘天 AI Infra 一面 (2)
- 阐述 GRPO 与 PPO 的核心区别。
- PPO 中 Clip 操作的具体作用是什么?
- 重要性采样的作用有哪些?除了与 Clip 操作结合限制更新幅度之外,还有什么其他用途?与使用 KL 散度约束更新的方式有何区别?
- 什么是马尔可夫性质?请给出形式化定义。
- 从早期策略梯度算法到 GRPO,发展过程中哪些模块被保留、哪些被舍弃?请梳理演进脉络并说明原因。
- 共享屏幕讲解论文,包括研究背景、任务设定及对应的实际业务场景。
- 详细说明工作流程、训练方法以及所用公式的推导细节。
- 二叉搜索树迭代器(LeetCode 173),要求先阐述思路,给出从暴力到最优的多种解法。
阿里巴巴 云 AI Infra 二面
- 交叉熵损失函数的定义及其在分类任务中的作用是什么?
- 写出 Logistic 回归的公式,并说明其模型原理与损失函数。
- vLLM 中有哪些核心优化技术?请逐一说明。
- DeepSeek-MTP 是应用于训练阶段还是推理阶段?其具体工作流程是怎样的?
- 给定一个时间序列数据,如何通过机器学习方法进行建模以筛选重要特征,并在此基础上使用规则方法进行建模?
- 基于现有大模型,如何结合 Agent 相关方法训练一个面向金融领域代码编写的 Coder 模型?
阿里巴巴 云 AI Infra 实习
- 你认为当前 LLM 推理的主要瓶颈在哪里?
- 如何对互联拓扑进行建模?请结合具体工作说明。
- 你如何看待未来硬件形态的发展趋势?
阿里巴巴 云 AI Infra 实习 二面 (1)
- 介绍你在算子优化、算子融合与图优化、稳定性问题修复方面的工作经历。
- 在推理或训练过程中遇到显存异常与长期稳定性问题时,如何定位与排查?请结合具体案例说明。
- 从工程角度出发,如何对一个算子进行性能优化?请以具体示例说明优化思路、收益评估及极限分析。
- 量化推理(如 AWQ 路线下的 W4A16)在具体实现上涉及哪些关键环节?包括 Linear 层改造、数据结构设计、内存布局处理、正确性验证等。
- 多卡协同场景下,卡间通信有哪些方式?NVLink 和 RDMA 各自的特点是什么?
- 不同 GPU 生态之间存在哪些主要差异?
- 算子优化的效果如何传导到整网层面?整网之外又如何与多卡互联、Profiling、软硬件协同等环节衔接?
- 如何看待使用 AI Agent 辅助代码编写、Review 及工程梳理?
阿里巴巴 云 AI Infra 实习 二面 (2)
- vLLM 采用了哪些核心优化技术?请分别说明其原理。
- Logistic 回归的模型原理是什么?其损失函数如何推导?
- DeepSeek-MTP 是用于训练阶段还是推理阶段?请描述其具体工作过程。
- 面对一个时间序列数据集,如何利用机器学习方法提取关键特征,并结合规则方法完成建模?
- 在算力受限的条件下,如何利用大模型蒸馏出一个 3B 参数规模的小模型?
- 如何基于现有大模型,运用 Agent 相关技术训练一个能够编写金融领域代码的 Coder 模型?
阿里巴巴 AI Infra (1)
- 你是否有过利用 Agent 来自动生成 CUDA kernel 的实践?具体的实现方案是什么?
- 在大规模模型的训练或部署过程中,有没有用过底层调试工具来排查问题?当千卡集群中出现 NCCL Timeout 时,你会如何定位故障原因并解决?
- 如果去掉 Warp Specialization 优化,只保留 tile 分块和 Shared Memory 优化,性能下降主要会反映在哪些维度上?
- 你有没有 kernel 层面的优化经验?比如用 CuTe DSL 或者直接手写 CUDA 来实现 fusion 类算子,请详细说一说
- 在做 kernel fusion 时,你倾向于选择哪种技术方案?理由是什么?
- 推理服务正式上线之前,你做过哪些性能方面的优化工作?
- 编写 CUDA 代码时是否深入了解过底层硬件细节?例如 Hopper 架构下 Warp Specialization 的机制原理与底层实现方式
- 是否有过对 RL 场景下 MoE 模型的优化经验?
- 有没有做过 kernel fusion 后性能反而变差的情况?你认为原因出在哪里?
- 通过什么方式可以判断一个 MoE 模型真正实现了专家间的分工协作,而不是简单地把 Dense 模型做了参数切分?
- 在 RL + MoE 的训练场景下,是否碰到过 reward 信号引导路由产生偏差的问题(例如模型为了追求更高奖励而将大部分请求路由到少数几个 expert)?当时采取了什么应对措施?
阿里巴巴 AI Infra (2)
- MLIR 与 TVM 各自的设计理念及主要差异是什么?
- TVM 中 Relay 调度原语和 TIR 调度原语分别承担什么角色,二者有何区别?
- 针对单算子性能优化,有哪些常见的方法和手段(如 GEMM / Conv 优化策略)?
- 请系统性地介绍你参与的项目,包括技术选型与实现方案。
- 简历中提到的 MLIR 和 TVM 相关工作具体做了哪些内容?
- 在性能提升方面做过哪些尝试?请结合实际场景说明。
阿里巴巴 AI Infra 实习 (1)
- 请阐述 MHA、GQA 与 MLA 三种注意力机制的核心区别及各自适用场景。
- 针对 MoE 模型和多模态模型的训练过程,目前还有哪些可以优化的方向?
- 大模型预训练与强化学习训练在工程实践层面,还存在哪些值得优化的环节?
- 详细介绍你的项目经历,重点说明技术方案与实现细节。
- 实现二叉树的层序遍历。
- 手写 Multi-Head Attention 的实现。
阿里巴巴 AI Infra 实习 (2)
- 多轮对话场景下,超长上下文的训练方案有哪些?
- 上下文记忆策略通常如何设计与实现?
- 对于 Skills 读取超长 SOP 的场景,有哪些常见的优化技巧?
- 介绍你的项目经历,包括技术背景与核心方案。
阿里巴巴 AI Infra 实习 一面
- 什么是访存密集型算子?请举例说明。
- 阐述 FP32、FP16、INT8 三种数据类型在底层的存储格式及差异。
- 量化的基本原理与具体实施流程是怎样的?
- 对比 GPU 和 CPU 的体系结构差异,各自适合处理哪类计算任务?
- UDP 与 TCP 协议分别适用于什么场景?各自的优缺点是什么?
- Linux 下查看磁盘使用情况的常用命令有哪些?
- 围绕部署量化流程和 GridSample 算子优化进行深入讨论,包括算子的底层定义。
- 围绕模型结构展开深入提问。
- 判断链表是否存在环。
- 用 CUDA 实现向量加法。
- 解释锁的概念及常见类型。
- 谈谈对交叉熵损失函数的理解。
- CUDA 编程中并行性与并发性分别指什么?二者有何区别?
- 简述 GAN 和 CVAE 的基本原理与区别。
- 手写 SVM 的核心实现。
- 手写 Transformer 的核心结构。
阿里巴巴 AI Infra 校招 一面
- Transformer 相比 RNN 的核心优势是什么?Transformer 是否也存在 Scaling Law?
- KV-Cache 是在训练阶段还是推理阶段使用的?为什么训练阶段不使用 KV-Cache?
- Flash Attention 的核心思想是什么?它如何优化注意力计算?
- 除 Flash Attention 和 KV-Cache 外,还了解哪些注意力机制的优化方法?
- 是否了解生成式推荐?其基本思路是什么?
- SID 的训练流程是怎样的?
- Tiger 为何没有采用 Decoder-Only 的架构形式?
- 介绍新闻推荐项目的整体方案与技术实现。
- 新闻推荐任务中正负样本是如何确定的?
- 接雨水问题(LeetCode 42)。
阿里巴巴 AI Infra 一面 (1)
- Group Query Attention 的设计动机与作用是什么?
- MoE 架构中,专家路由是针对每个 token 进行还是针对每个序列进行?
- 针对 KV Cache 有哪些常见的优化策略?
- RAG 系统中检索模块的实现方案有哪些?
- 预训练阶段常用的数据清洗方法有哪些?
- 请阐述你设计的 Agent 系统的整体架构。
- 实现一个 LRU Cache。
阿里巴巴 AI Infra 一面 (2)
- 描述 Qwen-VL 的完整训练流程。
- 多模态大模型中,将视觉特征传递给 LLM 有哪些常见方法?
- ViT 通常采用什么方式进行预训练?
- 针对不同尺寸的图片或视频输入,位置编码应如何设计?
- ResNet 或 Transformer 中残差连接的作用是什么?请展开分析。
- 介绍多模态 RAG 的基本思路与实现方案。
- 概述大模型的训练流程。
- 大模型在训练和推理过程中显存不足时,有哪些优化方案?
- 数组中的第 K 个最大元素(LeetCode 215)。
百度(17 条)
百度 AI Infra (1)
- Go 中 Tag 映射的实现机制是什么?
- 阐述 Go 语言反射的基本原理与使用场景。
- Slice 和 Array 的扩容机制分别是怎样的?有何区别?
- Map 的底层实现机制是什么?其遍历为何无序?如何实现一个有序的 Map?
- 尽可能详细地介绍 GMP 调度模型。
- 对比 TCP、UDP、HTTP、HTTPS 的特点与适用场景。
- 浏览器输入一个 URL 后的完整访问流程是怎样的?
- 对比 send、write、mmap、sendfile 在内核缓冲区与用户缓冲区之间的数据传输方式。
- 进程、线程、协程三者的区别与联系是什么?
- Kubernetes Informer 的工作原理是什么?
- Docker 的底层实现原理是什么?
- 容器如何实现 PID 隔离?如何关闭该隔离?
百度 AI Infra(同名条目,三面)
- 描述 GPU 的内存层次结构及各级存储的共享关系。
- OpenMP 中如何声明并行区域?给出基本用法。
- 在并行环境下执行
for(int i=0;i<100;i++){sum++;}与串行执行的结果是否相同?如何确保并行结果的正确性? - Cache 映射分为哪几类?各有什么特点?
- 阐述 C++ 智能指针的种类及其应用场景。
- C++ 多态的概念是什么?有哪些实现方式?
- 动态链接和动态绑定分别是什么?二者有何区别?
- 介绍简历中的项目与论文,并就相关技术细节展开讨论。
- 高性能计算方向主要研究了哪些内容?是否有大规模计算系统的使用经验?
- C++ STL 中 map 的底层数据结构是什么?其基本原理是怎样的?
- AVL 树和红黑树在平衡策略上有何差异?各自的性能特点是什么?
- unordered_map 的底层实现原理是什么?
- 哈希冲突的常见解决方案有哪些?
- 介绍计算机的存储层次结构。
- CPU 中应用程序员可见的寄存器分为哪几类?程序计数器(PC)的作用是什么?
- 列举日常使用频率较高的操作系统命令。
- 介绍简历中的项目经历及研究工作。
- 如何在 main 函数执行之前运行一个自定义函数?
- 调试程序时如何设置条件断点?
- 如何进行堆栈监视?
- 程序在内存中的分段布局是怎样的?
- STL 中 deque 的内部实现机制是什么?
- 寄存器与 Cache 哪个访问速度更快?Cache 和主存分别采用什么技术实现?二者有何异同?
- CUDA 中的内存分类有哪些?
- 什么是 CUDA Kernel 函数?
__global__关键字的作用是什么? - 如何获取 GPU 支持的最大线程数量?
- 对比贪心算法和动态规划的思想与适用场景。
- 常见的图搜索算法有哪些?
百度 AI Infra(同名条目,二面-1)
- OpenMP 中如何开启并行区域?请写出基本语法。
- 循环
for(int i=0;i<100;i++){sum++;}在并行区与串行区的执行结果是否一致?如何保证并行场景下结果的正确性? - 描述 GPU 的内存层次结构,包括各级存储的共享范围。
- Cache 映射有哪几种方式?各自的特点是什么?
- C++ 中智能指针有哪些类型?分别适用于什么场景?
- 什么是多态?C++ 中如何实现多态?
- 区分动态链接与动态绑定的概念。
- 介绍简历中的项目经历,并就涉及的技术点进行深入讨论。
- 高性能计算方面主要学习了哪些内容?是否接触过大规模计算系统?
百度 AI Infra(同名条目,一面-4)
- 介绍简历中的项目与论文,围绕涉及的技术点展开提问
- OpenMP 并行区如何开启?(pragma omp parallel 相关语法)
- 在并行区内执行
for(int i=0;i<100;i++){sum++;}与串行执行的结果是否一致?如何保证一致性? - GPU 的内存层次结构:Register File、L1 Cache、Shared Memory、L2 Cache、Global Memory 各自的作用域
- Cache 映射方式的分类与特点(组相联、全相联、直接映射)
- 智能指针的分类与各自的使用场景
- C++ 多态的概念与实现方式(重写与重载的区别)
- 动态链接与动态绑定的区别
- 围绕简历与项目进行深入讨论
- STL 中 map 的底层数据结构是什么?
- 平衡二叉搜索树(AVL)与红黑树的区别
- unordered_map 的底层实现原理
- 哈希冲突的常见解决方法
- 计算机的存储层次结构(寄存器、Cache、主存、辅存)
- CPU 中应用程序员可见的寄存器有哪些分类?程序计数器(PC)的作用是什么?
- 常用的操作系统命令有哪些?
- 如何在 main 函数执行之前运行一个函数?
- 调试时如何设置条件断点?
- 如何进行堆栈监视?
- 程序在内存中的分段结构(代码区、数据区、堆区、栈区等)
- STL 中 deque 的底层实现原理
- 寄存器与 Cache 哪个更快?Cache 与主存分别采用什么技术实现?两者有何异同?
- CUDA 中的内存分类(本地内存、全局内存等)
- Kernel 函数的概念,
__global__关键字的作用 - 如何获取 GPU 允许的最大线程数量?
- 贪心算法与动态规划的区别
- 常见的图搜索算法(BFS、DFS)
百度 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 系统中的问题出在检索模块还是生成模块?
百度 AI Infra 实习 (1)
- 阐述项目的技术方案与实现细节
- 描述论文的核心思路与创新点
- 异步强化学习训练场景下,如何对损失函数进行修正?
- 请阐述DualPipe的工作原理及其设计动机
- 合并K个有序链表(LeetCode 23)
- 二叉树的右视图(LeetCode 199)
百度 AI Infra 实习 (2)
- static 关键字的作用与使用场景
- const 关键字的不同用法
- C++ 程序的内存布局(栈、堆、全局区、代码区等)
- 介绍 C++ 中的四种智能指针及其适用场景
- 说明 C++ 中四种强制类型转换的区别
- 如何查看动态链接库(.so)中的符号信息?
- 析构函数是否支持参数传递?是否允许有返回值?
- 阐述 C++ 多态的实现机制,重点说明运行时多态与虚函数表的关系
- 析构函数与构造函数是否可以声明为虚函数?分别说明原因
- 解释 RAII(资源获取即初始化)的概念与应用
- std::move 的作用是什么?左值与右值的区别
- Python 的内存管理机制
- 装饰器的原理与使用方式
- import 模块时,解释器执行了哪些操作?
- git merge 与 git rebase 的区别
- 如何撤回已提交的 commit?
- 描述 Transformer 的整体架构
- 列举其他大模型架构,并与 Transformer 进行对比
- 介绍 ResNet 的核心思想与残差连接的作用
- Docker 容器技术的基本原理
- 谈谈对 TVM 编译框架的理解
- 说明网络量化的基本方法与应用场景
- 用栈实现队列(LeetCode 232)
百度 AI Infra 实习 一面 (1)
- FlashAttention 的核心原理及其数学推导过程
- FusedAttention 的优化策略有哪些?
- RMSNorm 相比 LayerNorm 性能提升的原因是什么?
- Llama 模型中包含多少个全连接层?
- 描述 Llama2 的推理流程,每一层包含哪些算子?
- 设计一种比 cudaMalloc 更灵活高效的显存分配方案(cudaAllocator)
- C++11 引入了哪些重要新特性?
- 智能指针的分类及各自特点
- unique_ptr 如何保证所有权的唯一性?
- shared_ptr 的引用计数归零后何时触发析构?
- 类的成员函数是否可以定义为模板函数?
- 左值与右值的定义及区别
- CUDA 提供了哪几种编程模型或方式?
- Tensor Core 与 CUDA Core 的功能差异
- 最长连续序列(LeetCode 128)
- 至多包含 K 个不同字符的最长子串(LeetCode 340)
百度 AI Infra 实习 一面 (3)
- 解释 TP、PP、DP 三种并行策略的含义及具体执行流程
- 如何根据 TP 与 PP 的通信开销进行并行策略选择?
- 解释 per-tensor、per-channel、group-wise 三种量化粒度的区别
- 不同量化方法之间的精度差异,以及 group-wise 为何能进一步降低量化误差
- 各量化方式的计算开销对比及优化手段
- 量化过程中如何处理异常值(outlier)?
- 分别介绍 GPTQ、AWQ、SmoothQuant 的核心思路
- KV Cache 量化的原理与实现方式
- FlashAttention 的加速原理是什么?
- FlashAttention v1 与 v2 之间的主要区别
- FlashAttention 中 Bc 块的切分策略,以及 1-loop FlashAttention 的实现方式
- PagedAttention 的设计思路
- 大模型 prefill 阶段与 decoding 阶段的区别及其成因
- FlashAttention 在 decoding 阶段存在什么问题?FlashDecoding 的改进思路
- RMSNorm 的具体实现方式
- CUDA Kernel 优化的一般思路与方法论
- 给定 Conv2D 输入 [C=64, W=64, H=128]、卷积核 3x3、输出 [C=128, W=64, H=128],计算参数量与 FLOPs
- 在 CPU 上进行算子优化有哪些方法(如 AVX-512 等)?
- 智能指针的分类及使用场景
- 实现 CUDA LayerNorm Kernel
百度 AI Infra 校招
- etcd 与 Redis 在索引实现上有何区别?为何采用不同的设计?
- Kafka 如何实现顺序消费?如何保证消息不丢失?顺序消费场景下的写文件机制是怎样的?
- 操作系统的文件管理机制
- cgroup 与 namespace 的原理及作用
- K8s 中 Pod 的创建流程,CSI 与 CNI 分别在哪个阶段被调用?
- K8s 中 request 与 limit 的底层实现原理
百度 AI Infra 校招 二面 (1)
- 介绍项目背景、实际落地情况与核心功能
- 项目团队规模、开发周期及所用设备
- RT-DETR 相比 DETR 做了哪些优化改进?
- 大模型推理加速有哪些常用方法?
- Attention 算子层面的加速方案
- 字符串相乘(LeetCode 43)
- 验证栈序列(LeetCode 946)
百度 AI Infra 校招 二面 (2)
- 介绍项目内容及相关技术细节
- CNN 与 DNN 的核心区别是什么?
- C++ 智能指针的分类与使用场景
- 迭代与递归各自的优缺点分析
- CPU 针对分支语句(if)做了哪些预测与优化?
- 删除有序数组中的重复元素(LeetCode 26)
百度 AI Infra 校招 二面 (3)
- Beam Search 的原理是什么?与直接采样(sampling)有何区别?
- Prompt 的生成方式、优化目标及对应的任务类型
- 降低大模型幻觉(hallucination)有哪些常用方法?
- 搜索准确性不高时,应如何进行问题排查?
- 召回阶段与排序阶段,哪个更容易成为瓶颈?
- 生成式搜索能否保证 top-1 结果的准确性?如何提升?
- 生成式排序的基本思路
- 对比 BERT 与 GPT 的预训练方式及训练细节差异
- 如何构造排序模型的训练数据?正负样本不均衡时如何处理?
- 在项目中做过哪些相关性优化?是否有量化评估结果?
- Agent 服务的高可用与鲁棒性是如何保障的?
百度 AI Infra 校招 一面
- 介绍项目内容并回答相关技术问题
- C/C++ 程序的内存区域是如何划分的?
- new 与 malloc 的主要区别有哪些?
- vector 在内存中的存储方式是怎样的?通过 new 分配的 vector 与栈上分配的 vector 存储方式是否相同?
- 给定一个卷积操作场景,计算其时间复杂度
- 二叉树的镜像翻转(LeetCode 226)
百度 AI Infra 一面 (1)
- 围绕项目进行深入提问
- 阐述 Attention 机制的原理,并介绍近期关注的模型所采用的注意力机制
- QKV 中 K 的作用是什么?能否省略 K 直接使用 V?
- 对比 BatchNorm、LayerNorm 与 RMSNorm 的区别
- 常见的位置编码方式有哪些?各自的特点
- 介绍强化学习中的 PPO、DPO、GRPO 算法
- 为何当前 decoder-only 架构比 encoder-decoder 架构更为流行?
百度 AI Infra 一面 (2)
- 介绍项目的核心内容与技术方案
- CUDA 中 GEMM 的实现与优化方法
- 实现 CUDA 向量加法 Kernel
- LLM 推理部署中有哪些常用的优化技术?
- Float32 与 INT8 之间如何进行相互转换(模型量化)?
- 最长公共子序列(LeetCode 1143)
百度 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 变体)
北极雄芯(1 条)
北极雄芯 AI Infra 一面
- 对 AI 编译器(如 TVM、XLA 等)的了解程度
- 线程同步的常见方法有哪些?
- 单例模式的实现方式
- 双重检查锁(Double-Checked Locking)存在哪些隐患?
- 除单例模式外,还了解哪些设计模式?
- malloc 的底层实现原理
- NVIDIA Profiler 工具的使用方法
- PyTorch 的底层原理了解多少?
- CUDA 算子优化的常见手段
- Linux 常用命令与操作是否熟悉?
贝壳(1 条)
贝壳 AI Infra
- LoRA 微调的基本原理
- LoRA 中两个低秩矩阵的初始化方式,为什么不能将 A 矩阵初始化为零?
- P-Tuning v2 的实现方式及其与前代方法的区别
- 梳理 LLM 预训练与后训练(Post-Training)各自的目标与内容
- 强化学习中 GRPO 的基本流程
- 奖励函数的设计与评估
- 如何使用 LLM 作为评判者(LLM as a Judge)?
- Tokenizer 的优化方法有哪些?
- TF-IDF 验证的具体作用
- RAG(检索增强生成)的实现流程
- 向量检索的常见方法与技术选型
- 量化的基本原理与具体操作流程
- 字符串转换整数(LeetCode 8)
壁仞科技(2 条)
壁仞科技 AI Infra 实习
- 描述开源项目的 PR 内容与贡献
- GEMM 的整体实现思路,当 K 维度远大于 M 或 N 时,对循环体会产生什么影响(如寄存器压力等)?
- NEON 汇编指令的基本用法
- CUDA 程序的调试工具与方法
壁仞科技 AI Infra 实习 一面
- 介绍简历中的项目,围绕技术细节深入提问
- 是否有算子优化或 CUDA 加速相关的项目经验?
- 判断两个链表是否相交(LeetCode 160),要求时间复杂度 O(n+m)
- TopK 问题:找出最大的 K 个数,应使用大根堆还是小根堆?基于优先队列如何实现?
传音(1 条)
传音 AI Infra 校招 一面
- 指针与引用的区别
- 堆内存与栈内存的差异
- 野指针的成因及智能指针的使用方式
- 目标检测算法的基本原理
- 目标检测任务中类别数与数据集规模的影响
- YOLOv5 的主要改进点有哪些?
- 量化校准数据集的选取方法
- 量化的基本原理与实现方式
- 量化后的精度如何评估?
- 计算量化 scale 的常用方法
- 推理吞吐量的计算方式
- 常见推理框架的对比与选型
- 计算图的构建方式
- 卷积算子的底层实现方法
- 矩阵乘法的分块优化策略
- ARM NEON 指令集的基本概念与应用
- 大模型分词器(Tokenizer)的工作原理
- KV Cache 的作用与实现方式
飞腾(2 条)
飞腾 AI Infra 实习 一面
- 进程与线程的核心区别是什么?Cache 的层级结构及常见替换策略有哪些?
- IEEE 浮点标准中 FP16、FP32、FP64 各自的位宽分配方式是怎样的?
- 快速排序的执行流程是什么?堆的基本性质有哪些?拓扑排序适用于哪些场景?
- 请阐述 Transformer 架构中 Decoder-only 结构的特点,包括 QKV 的生成过程以及位置编码的嵌入时机。
- RMSNorm 的计算公式是什么?其计算访存特性如何?可以从哪些角度进行优化(如负载均衡、Double Buffer、指令替换)?
- Softmax 的数值稳定性问题如何处理?Online Softmax 的实现原理是什么?
- 矩阵乘法与反量化融合算子在内存方面的优化策略有哪些?
- 稀疏矩阵 SpMV 运算中如何实现负载均衡与带宽优化?
- Git 中拉取远程分支的操作方式有哪些?fetch+checkout 与 pull 的区别是什么?
飞腾 AI Infra 校招 二面
- C++ 虚函数的底层实现机制是什么?虚函数表(vtable)的工作原理是怎样的?
- 编译过程分为哪四个阶段?各阶段分别完成什么任务?
- 常见的设计模式有哪些?请说明单例模式与工厂模式的应用场景。
- 多进程与多线程之间有哪些主要区别?
- 针对特定 shape 的算子调优,如何制定优化策略以超越官方库的性能?
- 融合算子的设计思路是什么?
- 混合精度训练与推理涉及哪些关键问题?
- GPU 性能优化中,Nsight 工具链如何使用?应关注哪些计算效率与带宽效率指标?
- KV Cache 的工作原理是什么?FlashAttention 的内存优化核心思想是什么?
格灵深瞳(1 条)
格灵深瞳 AI Infra 一面
- 面对一个全新的模型,需要在指定硬件平台上进行性能优化,请描述整体的分析与优化思路。
- 当前推理优化领域有哪些尚未被充分探索的研究方向?请提出若干可行的方向。
- 平时通过哪些途径进行技术学习?阅读过哪些相关论文?
海康威视(3 条)
海康威视 AI Infra
- 什么是 CUDA 中的 bank conflict?如何避免?
- 如何实现 CUDA 版本的 Softmax?
- Online Softmax 与 FlashAttention 的核心思想分别是什么?
- 大模型端侧部署面临哪些挑战?有哪些常用的优化手段?
- 模型导出时如何处理动态维度问题?
- 量化相关技术有哪些?各自的适用场景是什么?
- 多线程编程中 OpenMP 与 MPI 的区别和使用场景分别是什么?
- ncnn 的交叉编译流程是怎样的?
- 对 ncnn 源码的了解程度如何?
- 对感知、规划、控制算法有哪些了解?
海康威视 AI Infra 实习 一面
- 互斥锁与无锁操作的区别是什么?各自适用于哪些场景?
- 使用互斥锁可能带来哪些风险?
- 自旋锁与互斥锁有什么不同?各自的使用场景是什么?
- 当线程无法获取互斥锁时,操作系统会执行哪些操作?
- 缓存项目的核心功能是什么?缓存的典型应用场景有哪些?
- 三层缓存架构中,各层的使用场景与容量量级分别是什么?开发者应如何合理使用?
- OS Suite 项目的主要功能是什么?
- 是否有实际参与项目开发,还是仅限于调研学习?
- 如何体现团队协作能力?
- 测试架构是如何设计的?单元测试主要覆盖了哪些内容?
- 实习中遇到的主要技术难题有哪些?是如何解决的?
- 面对不熟悉的新知识或新架构,有哪些高效的学习方法?
- 接触过哪些 AI 相关知识?
- 个人的技术兴趣方向是什么?如何平衡广度与深度?
海康威视 AI Infra 一面
- 介绍超算平台项目的整体架构与技术方案。
- 国产计算平台与国外主流平台相比,主要差异体现在哪些方面?
- 分布式训练目前面临的主要性能瓶颈有哪些?
- 对模型推理优化有哪些整体认识?
- 量化过程中出现精度下降时,应如何进行排查与定位?
- 合并两个有序数组。
- 如何快速进入一个全新的技术领域?
- 分享一段较为困难的经历以及应对方式。
寒武纪(1 条)
寒武纪 AI Infra 实习
- GEMM 中为什么通常让单个线程处理 8x8 的计算块?
- 使用 CUDA 实现算子时的主要难点有哪些?
- 是否使用 CUDA 实现过前缀和(prefix sum)?
- 什么是 bank conflict?有哪些减少 bank conflict 的方法?
- Little's Law 中访存延迟与计算延迟的关系是什么?
- 介绍参与的开源项目。
好未来(1 条)
好未来 AI Infra 一面
- CUDA 算子优化的一般方法与流程是什么?
- Reduce 操作的优化过程有哪些关键步骤?
- blockDim 与 blockIdx 的含义及使用方式是什么?
- 实现两个字符串之间的转换。
- 计算二叉树中从根节点到各叶节点路径所组成数字之和。
后摩智能(1 条)
后摩智能 AI Infra 实习
- 梯度下降的基本原理是什么?如何通过链式法则进行求导?
- ReLU 激活函数在零点处的导数如何定义?
- Softmax 函数的实现方式是什么?如何处理数值溢出问题?
- 介绍 AdaQuant 量化方法的核心思想。
- 介绍 I-ViT 量化方法的技术要点。
华为(2 条)
华为 AI Infra (2)
- 请介绍 LAMB 优化器的原理与特点。
- 增大 batch size 时学习率应如何调整?若模型规模很大但 batch size 不变,又应如何处理?
- 列举所了解的并行切分策略。
- 请介绍 ZeRO 的核心思想与各阶段的区别。
- 在流水线并行(PP)模式下,每张卡的显存占用与计算量是否相同?激活值的分布情况如何?
- 3D 并行的组合方式与适用场景是什么?
- DCU 与华为 AI 加速卡在架构、生态及通信库方面有哪些差异?
- DDP 与 DeepSpeed 中的异步保存机制分别是如何实现的?
- 详细介绍千卡训练项目的技术方案与实现细节。
- 异步保存方面做了哪些工作?
- T5 与 GPT-2 在架构上有哪些主要差异?
- Transformer 的整体结构是怎样的?
- 残差连接在深度网络中起什么作用?
华为 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 的参数,并通过卡间通信实现显存节省。
- 对通信算子有哪些了解?常见的集合通信原语有哪些?
辉羲智能(1 条)
辉羲智能 AI Infra 实习 一二三面
- 公司介绍与基本情况沟通。
- 什么是 bank conflict?产生的原因是什么?有哪些解决方案?
- 编写算子时如何最大化利用缓存?如何根据 L1、L2 缓存容量进行数据分块?
- 什么是线程束分歧(warp divergence)?它对性能有什么影响?
- blockDim.x 与 gridDim.x 的最大值分别是多少?
- 手写 CUDA 矩阵乘法算子(naive 版本),并说明后续优化方向及最佳分块大小的确定方法。
- 请描述 CPU 与 GPU 各自的架构特点与设计差异。
- 对 CUDA 中 grid、block、thread 三级层次结构的理解。
- 常见卷积算法有哪些?各自的优缺点是什么?
- 项目经历深入考察。
- 共享内存(Shared Memory)与硬件缓存(Cache)的区别是什么?
- Tensor Core 与 CUDA Core 在矩阵乘法加速方面哪个更快?Tensor Core 的工作原理是什么?
- 手写 CUDA Softmax 算子。
- Transformer 架构的整体结构是怎样的?
- Softmax 算法在深度学习中有哪些典型应用?
阶跃星辰(1 条)
阶跃星辰 AI Infra 实习
- 请阐述 DMA 与 RDMA 的原理及区别。
- cudaMemCopy 操作时为什么需要锁定(pin)内存?
- 进程与线程的核心区别是什么?
- 序列并行的实现原理是什么?实验中通信开销如何?还有哪些进一步优化的手段?
- 训练稳定性与容错方面有哪些常见的技术方案?
- 当前 Infra 领域有哪些值得关注的前沿技术或研究方向?
- 给定若干电视节目的起止时间,求最多可以完整观看多少个节目(区间调度问题)。
- 实现 LRU Cache。
京东(2 条)
京东 AI Infra 实习
- 请介绍 Qwen 系列模型的架构设计与训练方法。
- 阐述 PPO、DPO 和 GRPO 三种强化学习算法的区别。
- 熵、交叉熵与 KL 散度之间有什么联系与区别?
- 分类任务中为什么通常不使用 MSE 作为损失函数?
- 请分别介绍 DeepSpeed、DDP 与 FlashAttention 的核心功能与原理。
- PPO 中优势函数(Advantage)是如何计算的?Critic 模型的更新方式是什么?
- 估算 Qwen3-8B 模型推理时需要多少显存。
- RAG(检索增强生成)的完整流程是什么?有哪些可行的优化策略?
- 奖励函数是如何设计的?GRPO 训练前是否有冷启动阶段?
- 项目经历深入考察。
- 手写实现 GQA(Grouped Query Attention)。
京东 AI Infra 校招 一面
- 大模型推理优化有哪些常见方法?请从多个维度进行阐述。
- PagedAttention 的核心原理与设计思路是什么?
- FlashAttention 为什么能够实现加速?其计算过程是怎样的?
- PD 分离机制中,调度队列是如何实现的?
- Chunked Prefill 是指同一请求的 Prefill 和 Decode 交叉执行,还是不同请求之间的插入?
- C++ 多态是如何实现的?
- 虚函数实现多态的具体机制是什么?虚函数表中的函数顺序是如何确定的?
- 项目经历深入考察。
- 实现快速排序算法。
经纬恒润(1 条)
经纬恒润 AI Infra 二面
- 常见的多目标跟踪算法有哪些?各自的特点是什么?
- 卡尔曼滤波的基本原理与应用场景是什么?
- 使用过哪些推理框架?各自的特点与适用场景是什么?
- CUDA 中锁页内存(Pinned Memory)的作用与使用场景是什么?
- 以 PPT 形式介绍项目经历与技术方案。
科大讯飞(3 条)
科大讯飞 飞星 AI Infra 校招
- NVIDIA GPU 对 FP8 数据类型有哪些专门的硬件优化?
- FP8 的两种格式(E4M3 与 E5M2)有什么区别?各自的计算方式是什么?
- 如何计算使用 FP8 存储时的 KV Cache 大小?
- H 系列与 L 系列 GPU 在架构设计上有哪些不同?
- 近期推理优化领域有哪些值得关注的新技术或新方法?
科大讯飞 AI Infra 校招
- FlashAttention 的核心优化点有哪些?分块加载 QKV、Online Softmax 以及显存复杂度从 O(N^2) 降至 O(N) 分别是如何实现的?
- Self-Attention 中为什么要对点积结果除以 sqrt(d)?不做缩放会导致什么问题?
- 回调函数的实现原理是什么?
- 显存越界问题的常见排查方法有哪些?
- 项目经历深入考察。
科大讯飞 AI Infra 校招 一面
- BF16 与 FP16 在数值表示上有什么区别?为什么大模型训练通常选用 BF16?
- 什么是大端序与小端序?当前主流处理器架构采用哪种字节序?
- 设计一个 CPU 需要从哪些方面考虑?指令集设计与流水线各阶段的作用是什么?
- 用户态与内核态的区别是什么?两者之间如何切换?
- NPU 开发中有哪些主要难点?应对策略是什么?
- Softmax 运算中如何解决负载不均衡问题?
- Tensor Parallel 切分的对象是什么?涉及哪些通信操作?
- 项目经历深入考察。
快手(9 条)
快手 AI Infra 实习
- 除项目中使用的量化方案外,还了解哪些其他量化方法?
- 从量化误差的角度来看,数据分布应满足什么条件较为理想?
- 对于存在异常值的情况,数据分布越均匀量化效果通常越好。在量化到 INT8、FP8、INT4 时均成立,但量化到 FP4 时为何不再适用?
- 请描述 CUDA GEMM 的优化方法,以及计算过程中 Shared Memory 大小的选取策略。
- 详细介绍项目的技术方案与实现。
- 使用 CUDA 编写一个 Norm 算子。输入:x[N],输出:norm = (x - u) / o,其中 u = mean(x[N]),o = sqrt(sum((x - u)^2) / N)。
快手 AI Infra 实习 一面 (1)
- 请介绍模型量化与 FlashAttention 的原理,实际使用中优化效果如何?
- TensorRT 的底层加速原理是什么?
- 是否了解 vLLM 框架?PagedAttention 的设计思想是什么?
- Qwen 模型部署时占用多少显存?在实习中采用了怎样的部署方案?
- PyTorch 的核心基础功能有哪些?是否使用过 PyTorch 进行 GPU 资源管理?
- 模型训练与推理在资源消耗方面有哪些区别?训练过程中有哪些性能优化手段?
- GPU 与 CUDA 的基本概念是什么?GPU 最基础的物理执行单元是什么?
- 介绍实验室项目,说明模型的参数量与计算量是如何计算的。
- 实习内容介绍,对所从事岗位的理解。
- 将有序数组转换为平衡二叉搜索树。
快手 AI Infra 实习 一面 (2)
- vLLM 中的 PagedAttention 机制是什么?Chunked Prefill 的实现原理是怎样的?Continuous Batching 的概念及其作用是什么?
- 推理框架中的算子优化具体采用了哪些方法?
- Memory Pool 的设计与构建思路是什么?
- 框架测试方案是如何设计的?测试数据规模有多大?
- 给定一个每行有序的二维数组,求其中第 K 小的元素。
快手 AI Infra 实习 一面 (3)
- KV Cache 压缩有哪些常见方法?
- 分别阐述 MHA、MQA、GQA 的概念,以及 KV 广播的实现方式。Multi-head Latent Attention(MLA)与 GQA 之间的数据对应关系是怎样的?给定 hidden_size 和 RoPE 维度,MLA 对应多少个 GQA head?
- DeepSpeed ZeRO-1/2/3 各阶段分别做了哪些优化?假设模型参数量为 N,使用 Adam 优化器,ZeRO-1 如何在 P 个 GPU 之间分配显存?不同数据类型(FP32/FP16)对显存占用有何影响?
- SmoothQuant 的原理是什么?为什么需要进行 Smooth 操作?超参数如何确定?如何判断一个模型是否适合 SmoothQuant?若使用逐层激活值分布来判断,应关注 input channel 还是 output channel?
- AWQ 和 GPTQ 的原理分别是什么?二者有何区别?
- GPU 分布式通信原语有哪些?All-Gather、All-to-All 各自适用于什么场景?
- 详细介绍 KV Cache 稀疏计算的实现细节及 vLLM Triton kernel 的写法。KV Cache 稀疏计算为何不采用掩码方式?
- 项目中为何针对不同场景选用不同的量化方法?GPTQ 和 SmoothQuant 分别适用于什么场景?
- 蒸馏模型的具体实现流程是怎样的?使用了哪些关键技术?
快手 AI Infra 校招 (1)
- 常见的模型量化策略有哪些?各自的适用场景是什么?
- 如何判断性能优化是否已经接近瓶颈?有哪些衡量指标?
- 算子融合在工程实现中有哪些主要难点?
- 项目中涉及的访存优化方案具体是如何设计的?
- 在多设备或多任务场景下,如何解决负载均衡问题?
快手 AI Infra 校招 (2)
- H100 相较于 A100 在架构层面有哪些关键改进?
- 阐述 CUDA 中 Warp 的概念及其在执行模型中的作用。
- 数据并行(DP)与张量并行-序列并行(TP-SP)中,计算与通信重叠的原理是什么?具体是哪些通信操作与哪些计算操作进行重叠?
- 深入阐述 FlashAttention 的核心原理及其关键优化点。
- 使用流水线并行(PP)和不使用 PP 时,显存峰值是否相同?为什么?
- CUDA_DEVICE_MAX_CONNECTIONS 这一环境变量的具体含义是什么?
- CUDA 中 launch bound 的含义是什么?H2D 和 D2H 数据传输是否可以重叠执行?
- 实现 LRU 缓存。
- 编写 Online Softmax 以及 FlashAttention 的伪代码。
快手 AI Infra 校招 (3)
快手 AI Infra 校招 一面
- 如何利用 Profiling 工具定位性能瓶颈?(关注带宽利用率、流水线空泡、指令级耗时等指标)
- 矩阵乘法(Matmul)的分块策略有哪些?如何选择合适的分块大小?
- 深入介绍项目,面试官会针对细节追问。
- 计算 n! 中尾随零的个数。
- 给定股票价格数组,求买卖一次所能获得的最大利润。
快手 AI Infra 一面
- 是否了解 Prefill-Decode(PD)分离?AF 分离的目的是什么?既然已有 PD 分离,为何还需要 AF 分离?
- FlashAttention V2 相比 V1 做了哪些改进?具体优化思路是什么?是否了解最新的 V4 版本?
- 大模型中一层 Transformer 包含几个线性层?张量并行(TP)时如何切分?这样切分的原因是什么?有哪些思路可以优化中间的 AllReduce 操作?
- Ray 的底层实现机制是什么?有哪些关键特性?在实际研究中是如何使用 Ray 的?
- 列举并阐述 CUDA GEMM 的常见优化方法。
- 详细介绍项目背景、技术方案和实现细节。
- LeetCode 单词接龙。
旷视科技(2 条)
旷视科技 AI Infra 实习 一面
- 介绍 vLLM 推理框架的核心机制与特点。
- 阐述项目的技术背景与主要工作。
- 项目中对 CUDA 算子进行了哪些优化?具体优化手段是什么?
- 求链表的倒数第 K 个节点。
旷视科技 AI Infra 校招
- LLaMA 的模型文件(.bin)进行了哪些预处理?
- 模型是拆分为多个 .bin 文件还是只有一个?
- 所有层是如何完成初始化的?
- CPU 上的数据如何拷贝到 GPU?
- 模型的 forward 调用流程是怎样的?
- 详细介绍算子优化的整体思路与实施过程。
- 内存管理方案是如何设计的?
- 显存池采用了什么数据结构?
- 围绕相关论文进行深入讨论。
- 三数之和。
理想汽车(3 条)
理想汽车 云 AI Infra 实习 一面
- Batch Normalization 的原理与作用是什么?
- 梯度消失和梯度爆炸的成因及解决思路有哪些?
- 底层算子层面的优化方法有哪些?
- 介绍项目,分别说明在训练优化和推理优化方面所做的工作。
- 给定数组 nums 和目标值 target,找到和等于目标值的两个数。
- 目标检测领域有哪些主流方法?
- LSS 方法有哪些后续论文改进?在部署层面,LSS 与 BEVFormer 的算力对比如何?
- 基于 Diffusion 的 BEV 方法与 BEVFormer 有什么区别?(BEV 技术演进:第一代 LSS -> 第二代 BEVFormer -> 第三代 Diffusion-based)
- 部门工作方向:训练加速与优化、推理优化、模型前瞻性探索(算力探索)。
- 介绍在校项目、科研经历及实习所做的工作。
- 如果现在负责推理优化工作,会如何展开?有哪些相关经验?
理想汽车 AI Infra 校招 一面
- PyTorch DDP 的原理与实现机制是什么?
- 梳理 CV 领域的发展脉络(从 AlexNet 开始,包括架构和激活函数等方面的演进)。
- 梳理 NLP 领域的发展路径(RNN -> LSTM -> Transformer)。
- 对比 RNN 与 Transformer 各自的优缺点,重点说明 Transformer 的并行性优势。
- 模型训练中有哪些并行方式?(数据并行、张量并行、流水线并行等)
- Transformer 与 CV 的结合体现在哪里?(如 ViT 的设计思路)
- 模型轻量化部署有哪些方法?(量化、剪枝、压缩等)
- TensorRT 的优势与不足分别是什么?缺少算子时如何通过 Plugin 自定义算子来解决?
- Batch Normalization 的作用是什么?为什么能加快模型收敛?
- 求从左上角到右下角的最短路径(简单动态规划题)。
理想汽车 AI Infra 一面
- 投机解码(Speculative Decoding)的原理是什么?大模型与小模型如何选择搭配?是否进行过微调?
- CUDA 算子做了哪些层面的优化?
- 项目中 Dense 模型与 MoE 模型在推理实现上有哪些差异?Expert Parallelism(EP)是如何实现的?
- 在实验室主要从事什么方向的研究工作?
- 现场出题(基础难度)。
联想(1 条)
联想 AI Infra 实习 一面
- DeepSeek R1 采用了什么注意力优化方案?
- 介绍 Transformer 的整体结构。
- 当前主流大模型架构相比早期有哪些变化?
- GRPO 有哪些改进方法?是否了解 GSPO?
- 有哪些常见的 KV Cache 优化方法?
- 介绍项目(背景、亮点、负责内容、遇到的问题与解决方案、技术选型原因、训练数据量、GPU 数量与训练时长、团队组成)。
- 你认为实习项目中某个技术点是否有更好的实现方式?该方案的优缺点分别是什么?
- 手写实现 Multi-Head Attention,并说明 Masked 矩阵应在哪一步引入。
蚂蚁(4 条)
蚂蚁 AI Infra 实习 三面
- 除 W4A16 外,对 INT8、FP8 等业界常见量化方案了解多少?FP8 的两种常见格式分别是什么?在训练和推理中的适用性有何差异?
- KV Cache 的大小如何计算?(涉及 batch size、序列长度、head 数、head dim、层数、数据类型等因素)
- 大模型推理中为什么需要 KV Cache?其本质作用是什么?
- 如何理解 Attention 机制?为什么 Attention 相关的量化比权重量化更难实现?
- 介绍量化推理 Runtime 项目:基于哪个开源 Runtime 做了修改?W4A16 量化的具体实现细节是什么?精度损失有多少?使用了什么数据集进行评测?
- 介绍实习中的核心工作:融合链路的完善与高性能库接入、整网长跑中稳定性问题的定位与修复、轻量级 Timing 工具的设计目的及其在瓶颈定位中的作用。
蚂蚁 AI Infra 实习 一面 (1)
- 如何判断一个算子是否需要优化?具体的判断依据和分析路径是什么?(热点分析、瓶颈类型判定:算力瓶颈 / 访存瓶颈 / 调度开销)
- 面对一个尚未量化的模型,应如何系统地推进量化工作?(模型结构分析、部署目标确定、量化粒度选择、校准方式选择、精度与性能的迭代验证)
- AWQ 等量化方式在增加了反量化步骤后,为什么整体推理仍然可以实现加速?
- 静态图和动态图各有什么特点?为什么通常需要将动态图转为静态图后再进行融合优化?转换本身的开销如何处理?
- vLLM 在推理调度和 KV Cache 管理方面的核心设计思路是什么?
- 实习中遇到过哪些有难度的问题?(如 OOM、长轮次推理中的显存异常增长与随机崩溃,排查链路与修复方案)
- 实习中开发的 Timing 插件底层实现是什么?为什么不直接使用 Nsight / NCU 等 Profiling 工具?
- 不同模型在本地部署和量化时是否存在显著差异?
- 图优化的选取策略和开发流程是怎样的?
- 复制带随机指针的链表。
蚂蚁 AI Infra 实习 一面 (2)
- W8A8、W4A16 分别代表什么?为什么权重量化到 4-bit 时,激活值在大多数场景下仍需保持较高精度?
- 均匀量化与非均匀量化各有什么特点?非均匀量化在计算复杂度、scale/zero point 存储开销及硬件加速适配方面有哪些代价?
- 如何分析推理链路的性能瓶颈?最有效的优化手段是什么?如果优化后仍与目标性能存在差距,差距主要来源于哪些方面?
- 如何判断一组算子是否适合进行融合?判断标准有哪些?(算子链长度、出现频次、依赖关系、中间节点输出是否被其他分支引用)
- 性能 Profiling 时重点关注哪些指标?(总执行时间拆分、Warp Divergence、多流场景下的流水线效率)
- 介绍单算子优化的实践:如何将手写实现替换为高性能库实现?如何进行单测和整网测试?
- 描述多轮推理过程中的稳定性问题定位与修复经历(如随机崩溃和 OOM 的根因分析)。
- 在静态图中如何筛选出适合融合的算子组合?
- 实现一个 Histogram 算子:输入为一组取值范围 0-9 的整数,输出每个桶的计数。讨论朴素实现(原子操作)的性能问题,以及通过 Shared Memory 局部直方图归约的优化方案。
蚂蚁 AI Infra 校招 一面
- MLA(Multi-head Latent Attention)相比 MHA 的优势体现在哪些方面?
- 权重吸收(Weight Absorption)过程中可能遇到哪些问题?
- KV Cache 的离线预计算方案是什么?对于低频使用的 KV Cache,如何进行卸载与加载?
- 除上述方法外,还有哪些 KV Cache 优化的技巧?
美团(4 条)
美团 北斗 AI Infra 校招
- 阐述 Transformer 的整体架构,与传统 RNN(循环神经网络)相比具备哪些优势
- Transformer 中参数主要分布在哪些模块?参数量最大的部分是什么?计算量最大的部分是什么,原因是什么
- 说明 GPU 中 CUDA Core 与 Tensor Core 的区别,列举常用 GPU 型号及其显存容量与显存带宽
- 介绍大模型量化的基本原理,并描述量化算子的实现方式
- 详细说明 Prefill-Decode 分离(PD 分离)的设计思路
- 详细说明 Paged Attention 的工作机制
- LeetCode 25:K 个一组翻转链表
- 编写 CUDA 算子:实现前缀和的基础版本,并阐述可行的优化方法
- 编写 CUDA 算子:实现 GEMM 的基础版本,并阐述可行的优化方法
美团 AI Infra 实习
- Zero-Bubble 流水线调度的原理是什么?
- 阐述 DeepEP 的设计思想与核心机制。
- 强化学习(RL)中有哪些异步调度方案?各自的优缺点是什么?
- RL 异步调度在算法层面需要做哪些适配与改进?
- 详细介绍项目背景、技术方案与个人贡献。
- 合并 K 个升序链表。
美团 AI Infra 校招 一面
- HashMap 引入红黑树的目的是什么?
- 既然红黑树的查询效率优于链表,为什么不从一开始就使用红黑树?
- 使用二叉排序树或 AVL 树替代红黑树是否可行?各有什么优劣?
- 线程池的核心参数有哪些?
- 如果一段代码大量使用了 synchronized 导致效率低下,如何进行优化?
- synchronized 与基于 AQS 的锁有哪些区别?二者的性能差异体现在哪里?
- 线上系统出现频繁 Full GC 时,如何排查并解决?
- CMS 和 G1 收集器分别适用于什么场景?是否了解 ZGC?
- 如何理解最左前缀匹配原则?
- 对表的 a、b、c 三个字段建立联合索引,查询条件为
a > 1 AND c = 1时,索引的使用情况是怎样的? - 线上出现慢查询时,如何定位和排查?
- 介绍实习期间的性能优化工作细节,以及如何实现算子元信息记录逻辑不侵入业务代码。
- 删除排序链表中的重复节点 II。
- 以下 Java 代码的运行结果是什么?如何解决其中的问题?
Integer a = 567; Integer b = 567; System.out.println(a == b);的输出是什么?如何修改使结果符合预期?- 介绍你所了解的 Java 并发编程知识。
- Java 中常用的锁有哪些?各自的区别是什么?
- 线程池的工作原理是什么?
- 描述从按下电脑开机按钮到打开浏览器进入面试链接,计算机底层依次经历了哪些过程?(硬件加电自检、引导扇区、操作系统启动、进程/线程创建、显示渲染、网络请求全链路)
- 视频会议底层为什么使用 UDP 而非 TCP?
- 从应用层面介绍 MySQL 的核心知识点。
- 如何判断一条 SQL 语句是否走了索引?EXPLAIN 输出中通常关注哪些字段?
- 描述你实际使用过的一张数据库表的字段设计和索引情况。
- SELECT、FROM、WHERE、GROUP BY、HAVING 等关键字的执行顺序是怎样的?
- 在行有序、列有序的二维矩阵中查找某个目标值。
美团 AI Infra 一面
- 针对简历中涉及的全部项目进行深入提问,重点考察项目细节与技术实现
- Decoder-only 架构与 Encoder-only 架构各自的优势与不足
- 概述 LLaMA 模型的主要设计特点
- CUDA 编程模型的基本概念与层次结构
- CUDA 内存模型包含哪些层级,各自的特点是什么
- 使用共享内存时如何应对 bank conflict,有哪些规避策略
- 使用寄存器时可能遇到哪些问题(如寄存器溢出),应如何处理
- GPU 多线程与 CPU 多线程在调度机制上有何本质差异
- 阐述 Flash Attention 的核心原理
- 阐述 Paged Attention 的设计思路与工作机制
米哈游(1 条)
米哈游 AI Infra 实习 二面
- 概述大模型的主要结构特征
- 注意力机制在大模型中的工作原理及其作用
- 大模型训练中常见的优化算法有哪些,各自有何优缺点
- 训练过程中出现梯度消失或梯度爆炸时应如何处理
- 在模型设计中如何平衡模型复杂度与性能表现
- 面对大模型训练与推理所需的大规模计算资源,有哪些可行的解决方案
- 评估大模型性能时常用的指标有哪些
- 针对大模型进行性能和效率优化的具体方法
- 请结合实际经验描述一个使用或开发大模型的案例
- Reward Bench 上的 Reward Model 分为哪几类
- Reward Model 的训练流程与训练目标是什么
- DPO 训练的损失函数与训练目标,DPO 相较于 RLHF 的改进点
- 如何理解大模型安全,涉及哪些方面的内容
摩尔线程(1 条)
摩尔线程 AI Infra 实习 二面
- 描述 INT8 量化与 W4A16 量化的具体流程及各自适用场景
- 场景题:若数据分布极度不均匀(最小值为 -10000,其余数值集中在 [-1, 1] 区间),应选择何种量化方案
- 手写一个 CUDA 算子(纯文本环境,无代码高亮与补全)
沐曦(2 条)
沐曦 AI Infra 实习
- 围绕 GEMM 优化项目展开提问
- Tiling 分块大小的选取策略
- 如何规避 bank conflict
- 编写 CUDA 算子:计算矩阵每一行的 reduce sum
沐曦 AI Infra 实习 一面
- CUDA 编程中并行性与并发性的区别
- C++ 面向对象编程的三大特性(封装、继承、多态)
std::map与std::unordered_map的底层实现原理对比new、malloc以及智能指针的使用场景与区别new与malloc的底层实现原理- C++ 中 lambda 表达式的语法与使用方式
- 手写 Transformer 结构
- 两数之和
- 哈希相关算法题
南湖研究院(1 条)
南湖研究院 AI Infra 一面
- Python 垃圾回收机制的实现原理
- Python 垃圾回收中如何处理循环引用(标记-清除算法)
- 函数内联在何种情况下会导致性能下降
inline关键字对作用域的影响- 除
inline外,还有哪些机制会触发内联(如模板函数) - 完美转发的概念与实现
- 右值引用的含义与应用场景
- FasterTransformer 框架的核心特性
- 常见 AI 推理/训练框架概述
- 线程同步的常用机制
- CUDA Stream 的使用要求(如设备端操作重叠)
- CUDA 算子性能优化的常用方法
- Git 多人协作的工作流程
- 实现智能指针
- 求数组中前 K 大的元素
拼多多(1 条)
拼多多 AI Infra
- Transformer 相较于 MLP 的核心优势
- 分别说明 MHA、GQA 和 MLA 的设计思路与差异
- 算法研究与 Infra 工程各自的工作重点有何不同
- PagedAttention 的设计原理与工作方式
- Triton 与 CUDA 在算子开发中的主要区别
- 模型训练过程中如何优化访存效率
- 是否具备算子开发与优化经验,请举例说明
- 针对 KL 散度算子做了哪些具体优化
- 手写 Multi-Head Attention(MHA)实现
- C++ 编程题
荣耀(2 条)
荣耀 AI Infra 校招 二面
- LLM 在 NPU 上进行推理时的主要性能瓶颈
- Prefill 阶段与 Decoding 阶段各自的 Matmul 优化策略
- 分块计算中如何保证数据在缓存中的连续性
- 昇腾 NPU 架构对 Transformer 类模型的适配性如何
- 量化后的大模型(如 INT8/INT4)在运行时的内存占用约为多少
荣耀 AI Infra 一面
- 模型训练优化与调优方法
- 底层性能优化(包括算法层面与硬件层面)
- 家庭与个人情况
- 职业倾向:软件方向还是硬件方向
- 个人性格特点
- 读博的原因及博士期间的收获
- 研究成果与项目的实际产出
- 目前投递了哪些公司,已获得哪些 offer
三星(3 条)
三星 AI Infra 一面 (1)
- 英文介绍个人背景及项目经历
- 选择一个项目进行详细阐述
- 项目中高并发设计的目的与实现方式
static关键字的作用与使用场景- C++ 函数重载的规则与实现
- 设计模式:口述单例模式的实现方式
- 构造函数能否声明为虚函数,原因是什么
- TCP 三次握手与四次挥手的流程
- DFS 与 BFS 的性质、所用数据结构及典型应用场景
- 在有序二进制字符串 "000...0111...1" 中查找第一个 1 的位置
- 判断一个字符串是否为回文串
- Linux 基本操作
三星 AI Infra 一面 (2)
- GEMM 的常见优化方法
- AI 框架前端中算子注册的机制
- 为什么通过添加宏定义即可完成算子注册
- 模板函数的编译过程
- STL 迭代器在遍历中删除元素的正确方式
- 常用的 STL 基本容器有哪些
- 有向无环图(DAG)的实现方式
- 拓扑排序的原理与实现
- 二叉树的中序遍历
- 满二叉树的定义与性质
- 单例模式的实现方式
三星 AI Infra 一面 (3)
- 常用 STL 容器的使用与区别
- BFS 与 DFS 的原理及适用场景
- 编译器中 IR(中间表示)的转换流程
- 算子融合的常见策略
- Attention 算子的实现方式
- Softmax 的计算公式与数值稳定性处理
- 卷积算子的优化方法
- 拓扑排序的原理与实现
商汤(1 条)
商汤 AI Infra 面试
- 详细描述 GEMM 优化的实现过程
- 单个线程计算 C 矩阵 8x8 个元素的原因
- 寄存器是否会发生溢出,如何应对
- 项目中是否有自己的创新点
#pragma unroll的作用与使用场景- 单个 tile 内执行了多少次计算
- 与 cuTLASS 相比,自实现版本的性能对比如何
- 是否做过卷积算子优化
- 是否了解 PPL(商汤高性能计算库)
- Tensor Core 的工作原理与使用方式
- 是否有低比特位 GEMM 的开发经验
上海AI实验室(1 条)
上海AI实验室 AI Infra 实习 二面
- 算子融合(Op Fusion)有哪些常见方式
- MindSpore 框架的主要特点
- MindSpore 前端与后端的架构设计
- 是否了解 TVM,简述其核心功能
- 针对一个 GPU Kernel 进行性能优化的思路与方法
- 判断字符串中除前两个数字外,后续数字是否均由前两个数字相加组成
识渊科技(1 条)
识渊科技 AI Infra 实习 一面
- 描述一个 CUDA 算子的完整优化过程
- 常见的图像处理算子有哪些
- 如何保障系统的高性能运行
- KNN 算法的完整流程
- 训练数据集存在质量问题时的处理策略
数坤科技(1 条)
数坤科技 AI Infra 实习 一面
- Transformer 的整体架构,KV-Cache 在推理加速中的具体体现
- 常见的并行策略有哪些(数据并行、模型并行、流水线并行等)
- 并行计算中矩阵切分需要注意哪些问题,矩阵切分的数学原理
- 通信时延的主要影响因素及缓解方法
- 在缺少相关经验的情况下如何设计智能体(强化学习方向)
- 在全零方阵中绘制一个内切圆(用 1 填充)
遂原科技(1 条)
遂原科技 AI Infra 实习 一面
- 项目经历深入提问
- 量化策略的选择依据:为何选用 INT8 量化,A100 与 H100 对不同量化精度的支持情况
- 量化对象是模型权重还是 KV-Cache,scale 参数如何确定
- 量化后是否进行过精度损失的评测
- Triton 算子的实现逻辑,包括分块等策略
- 对比所用的官方 baseline 选择及数据类型
- 性能提升数据的来源,动态分块策略与算子配置
- 是否考虑过使用 CUDA 替代 Triton 进行算子开发,选择 Triton 的原因
- 是否做过 profiling,内存吞吐等性能指标表现如何,后续有何优化思路
- Attention 模块在整个系统端到端延迟中所占比例
- Decode 阶段属于 compute bound 还是 memory bound,KV-Cache 量化提升的是哪方面性能
- A100 的理论显存带宽上限
燧原科技(1 条)
燧原科技 AI Infra 社招 一面
- MLIR 的表示方式与优化流程(燧原软件栈基于 MLIR + LLVM)
- XLA 在动态性方面的不足及应对方案(如手写算子)
- TVM 自动代码生成的现状与局限性,NPU 手写算子与自动生成的性能对比
太初(3 条)
太初 AI Infra 实习 一面 (1)
- Transformer 的整体结构
- BERT 与 GPT 的架构差异
- 数据并行的原理与实现方式
- FasterTransformer 框架的核心特性
- 常见优化器有哪些(如 SGD、Adam 等),各自的特点
- 随机森林算法的原理
- GBDT 的工作机制
- 线上服务推理场景下如何提升吞吐量
- 链表表示的两数相加
太初 AI Infra 实习 一面 (2)
- 介绍简历中涉及的项目经验
- 手写 softmax 算子实现,并在此基础上进行并行化优化
太初 AI Infra 一面
- C++ 中的内存管理机制有哪些
- 阐述共享内存的概念及其使用场景
- 智能指针的实现原理是什么
- 智能指针是否能够管理一段连续的内存空间
- C++ 中多态的实现方式有哪些
- 虚函数的底层实现机制是什么
- 在构造函数中调用虚函数会产生什么行为
- 介绍 GPU 的硬件架构
- Reduce 操作有哪些常见的优化策略
- GEMM 运算的优化方法有哪些
腾讯(7 条)
腾讯 AI Infra
- 介绍 FP4 量化的基本原理
- 量化场景下矩阵乘法的维度如何变化
- 硬件层面如何执行量化操作
- 实现量化推理对硬件有哪些具体要求
- FlashAttention 的作用与核心优化点
- FlashAttention 中注意力矩阵的维度推导过程
- FlashAttention 中 K 矩阵是否包含 Q 对应的那个维度
- 多头注意力与多 batch 场景下如何实现并行计算
- GPU 架构相关问题
- 如何分析系统性能瓶颈
腾讯 AI Infra 实习
- C++ 中指针与引用的区别
- C++ 虚函数的实现机制
- C++ 函数调用时的栈帧压栈过程
- 如何将函数作用域内的局部变量返回到外部使用
- C# 中事件机制的概念与用法
- 设计并实现一个事件系统的整体思路
- 事件系统中注册的事件如何与 GameObject 的生命周期绑定
- UI 优化中合批处理的实现方式
腾讯 AI Infra 实习 一二面
- 介绍项目经验,包括技术难点与亮点
- 阐述 MPI 的基本概念与使用方式
- 多线程编程的基本原理是什么
- 常见的锁机制有哪些
- 操作系统中死锁的产生条件与解决方法
- 比较 UDP 与 TCP 协议的异同
- TCP 通过哪些机制保证可靠传输
- 给定一个无序数组和一个有序数组,将无序数组中的元素插入有序数组并保持有序,分析时间复杂度
- 口述算法:大数据场景下的经典处理问题
- 对 CPU 和 GPU 架构分别了解到什么程度
- 是否有编写 CUDA kernel 的经验
- C++ 中 POD 类型的定义与特性是什么
- C++ 中除优先队列外,还有哪些 STL 容器可用于实现堆结构
- 解释以下概念:shuffle、Hyper-Q、SM、slot
- NVIDIA Nsight 工具的用途与使用方法
- SOL (Speed of Light) 指标的含义
- 多面体模型 (Polyhedral Model) 的基本原理
- TVM 编译框架的核心思想
- Array of Struct 与 Struct of Array 的区别及适用场景
- Halide 编程语言的设计理念
- Warp 级别 reduce 操作的实现方式
- 滑动窗口中位数问题(要求使用大根堆与小根堆实现)
腾讯 AI Infra 实习 一面 (1)
- 介绍项目经验及相关技术细节
- 阐述 chunked prefill 的设计动机及其解决的核心问题
- 在大规模集群中(节点内有 NVLink,节点间部分机器有 RDMA),如何设计分布式推理方案
- 比较 reduce-scatter 与 all-to-all 两种集合通信操作
- 有哪些方法可以降低 launch kernel 的开销
- CUDA 编程中 bank conflict 的产生原因及解决方案
- K 个一组翻转链表
腾讯 AI Infra 实习 一面 (2)
- MoE 架构为何能在参数量极大的情况下控制训练和推理成本,其真正的技术难点在哪里
- MoE 中的负载均衡通常采用哪些方法,为何部分模型 loss 表现正常但 expert 已经退化
- GQA、MQA 与标准 MHA 的核心区别是什么,线上推理场景中为何更关注 GQA
- RoPE 位置编码的工作原理是什么,长上下文外推时为何容易出现失真
- FlashAttention 的加速原理是什么,其优化的核心瓶颈是算力还是访存
腾讯 AI Infra 校招 一二面1
- 比较 TensorRT-LLM、AGI 与 vLLM 的源码实现差异
- continuous batching 的设计动机是什么
- 介绍 fastllm.cpp 的源码结构与实现思路
- Python 中计算密集型任务应使用多进程还是多线程
- C++ 中继承的底层实现机制
- YOLO 模型推理加速的常见方法
- 最大子数组和
- 介绍 vLLM 与 PagedAttention 的核心原理
- 使用 Triton 实现 PagedAttention 的思路
- CUDA 内存模型的层次结构与特点
- C++ 编译期运行的实现方式(constexpr 等)
- 计算一个整数的二进制表示中 1 的个数
腾讯 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 项目及其带来的收益
- 快慢指针找链表中点 + 反转链表
- 介绍简历项目中个人负责的部分及分工情况
- 团队协作中遇到分歧时如何处理
- 将字符串中的大写字母转为小写,并按字典序排序(不使用库函数)
网易(1 条)
网易 AI Infra 校招
- 详细描述简历中 AI 相关项目的主要模块与核心技术贡献
- 设计高吞吐、低延迟的模型推理服务时,架构层面与工程层面需要重点考虑哪些问题
- 阐述程序内存中栈、堆与静态/全局存储区的特点及区别
new/delete与malloc/free的主要差异是什么,C++ 中为何推荐使用前者- 深拷贝与浅拷贝的概念,以及何种场景下必须使用深拷贝
std::unique_ptr、std::shared_ptr和std::weak_ptr的设计意图、使用场景及区别- 虚函数表 (vtable) 如何实现运行时多态,虚函数与纯虚函数在语义和用法上有何不同
- 内存对齐的概念与编译器对结构体的对齐规则,计算给定结构体的
sizeof大小 - C++11 右值引用与移动语义的概念,以及如何用于实现高效的数据转移
- SIMT 编程模型的基本概念,thread、block、grid 的层次关系
- CUDA 内核中线程局部变量的存储位置及其与寄存器分配的关系
- 如何利用共享内存减少对全局内存的重复访问(以矩阵乘法分块为例)
- Warp shuffle 指令的概念及其在 warp 内数据交换与规约操作中的优势
- 向量化加载/存储指令(如 float4、int4)实现合并访存的原理与性能收益
- 共享内存 bank conflict 的产生原因及示例
- 通过数据填充 (padding) 或内存布局调整来避免 bank conflict 的方法
- CPU 缓存的工作原理,包括时间局部性、空间局部性及常见的缓存替换策略
- 在大量整数的数据流中,实时找出出现频率最高的前 K 个元素(哈希表 + 最小堆),并分析时间复杂度
蔚来(6 条)
蔚来 AI Infra 实习
- 共享内存 Bank Conflict 的产生原因与解决方案
- 同一 Warp 内不同线程的访存约束条件
- 共享内存中的广播机制 (Broadcast)
- 四种类型转换(reinterpret_cast、static_cast、dynamic_cast、const_cast)的区别与适用场景
- 父类指针转子类指针的安全性问题及内存布局约束
- 01 背包问题与完全背包问题的实现与对比
蔚来 AI Infra 实习 二面
- 围绕实习内容进行深入探讨,重点考察 CUDA 相关工作
- 讨论实习项目的改进方向与优化思路
- 介绍实习中另一项工作的完整前后流程
- 部门业务介绍(训练框架方向)
- 岛屿数量问题,完成后修改题目条件重新实现
蔚来 AI Infra 实习 一二三面
- 阐述对 TensorRT 的理解
- 比较 TensorRT 与 OpenVINO 的异同
- 介绍 TVM 的核心概念
- 图优化与算子调度方法有哪些
- C++ 面向对象的三大特性及其具体体现
- 阐述 C++ 继承机制
- 虚函数的实现原理与使用场景
- vector、map、unordered_map 的底层实现
- Linux 下多进程间通信的方式有哪些
- 多线程之间如何进行资源共享
- 反转链表
- 介绍 TensorRT 相关项目经验
- TensorRT 模型转换过程中遇到的问题
- 项目中是否涉及算子开发
- 介绍实习中量化工作的具体实现方法
- C++ 多继承的特点与注意事项
- C++ 智能指针的种类与使用经验
- static 与 const 关键字的区别
- C++ 异步编程的实现方式及使用经验
- 如何使用 Python 切片操作反转列表
- Python 装饰器的原理与用法
- 用 C++ 实现 NMS + IoU
- 对 C++ 的掌握程度,是否使用过新标准的特性
- 展开阐述 TVM 的架构与核心功能
- C++ 基础知识考察
蔚来 AI Infra 实习 一面 (1)
- 介绍实习内容并深入讨论细节
- 介绍项目经验并深入探讨技术要点
- C++ 多线程与多进程的区别及相关知识
- Attention 机制解决了什么问题,目前还存在哪些不足
- GPU 与 CPU 的核心区别
- 用 Python 实现矩阵旋转
蔚来 AI Infra 实习 一面 (2)
- 手写 CUDA kernel:reduce_sum 实现
- 手写 CUDA kernel:conv2d 实现
- 手写实习中涉及的一个自定义 kernel
- C++ 实现循环缓冲区
- C++ 实现单链表的冒泡排序
- 介绍实习中 CUDA 优化的整体工作
- 大模型推理相关内容讨论(vLLM、模型量化等)
蔚来 AI Infra 实习 HR面
- C++11/14/17/20 各版本新特性(较为全面地覆盖)
- CUDA 编程相关问题
- TensorRT 相关问题
- TVM 相关问题
- LeetCode 3 道 Medium + 1 道 Hard
文远知行(2 条)
文远知行 AI Infra 二面
- 数学相关编程题(2 道,非 LeetCode 原题)
文远知行 AI Infra 校招 一面
- PD 分离机制的原理,以及如何设计两个队列的调度策略
- vLLM 的显存优化手段有哪些(PagedAttention、continuous batching、内存复用等)
- Chunked Prefill 的核心思想与应用场景
- 虚拟内存的概念与作用
- 进程与线程的区别,操作系统如何进行调度
- TCP/IP 协议栈各层的作用与职责
- 网络通信中如何通过 IP 地址找到目标主机
- Kubernetes 的基本架构(Pod、Container 等核心概念)
- DFS 相关问题,要求从暴力解法优化至更优时间复杂度(二分优化思路)
虾皮(1 条)
虾皮 AI Infra 实习 (2)
- vLLM 的核心原理与设计思想
- 介绍 vLLM、模型量化以及 KV Cache 的优化技巧
- 如何提升模型的多轮对话能力
- "packing" 形式与"多轮对话"形式的区别是什么
- RAG 应用中如何进行效果评估,具体使用了哪些指标
- 面向 RAG 场景的生成模型如何进行训练
- CoT (Chain-of-Thought) 训练数据的构造方法
- 编辑距离(LeetCode 72)
小厂(5 条)
小厂 AI Infra 实习 (1)
- 描述 vLLM 中 scheduler 的调度流程
- vLLM 中请求被抢占后的后续处理机制
- 投机采样推理中草稿模型与主模型的交互流程,比较 vLLM 与 SGLang 的实现差异
- 阐述 GPTQ 量化与 SmoothQuant 的原理
- 介绍 DeepSeek V3 中 EPLB 的推理机制
- MLA 在 prefill 与 decode 阶段的计算复杂度差异,以及矩阵吸收优化的原理
- DeepSeek V3.2 相较前代有哪些创新点
- SGLang 中多模态场景下开启 TP 时,ViT 的 image embedding 在多个进程间如何高效复用
小厂 AI Infra 实习 (2)
- 预训练与 SFT 阶段在损失函数设计和数据集构建方面有何差异?
- Transformer 架构中,Megatron 的张量并行(TP)如何对参数矩阵进行切分?MLP 中第一个线性层和第二个线性层分别采用行切分还是列切分?各自对应的通信原语是什么?
- 简述 DeepSeek 论文中令你印象深刻的技术要点(如 FP8 训练方案)。
- 介绍预训练中的流水线并行方案,说明 1F1B 调度策略与 DualPipe 的设计原理。
- 详细阐述大模型强化学习(RL)的完整流程,涉及哪些模型角色?PPO 与 GRPO 的核心区别是什么?
- 在 RL 训练中,Rollout 阶段的耗时占比约为多少?Policy 模型的 MFU 大致为多少?请给出 MFU 的计算公式以及 6Nd 公式的含义。
- RL 中的 Rollout 阶段有哪些常见优化手段(如 Rollout 量化、异步 Rollout 等)?
- 在 RL 训练流程中,如何将预训练权重同步至推理引擎?
- 介绍 vLLM 或 SGLang 中 Continuous Batching 的工作机制。
小厂 AI Infra 实习 (4)
- 项目中使用了 TensorRT 进行量化,采用的是 PTQ 方案吗?为何选择 TensorRT 进行量化?项目对推理速度有何具体要求?
- 描述使用 CUDA 加速图像预处理的具体实现方法,采用了哪些优化策略?
- 请举例说明分析和优化 CUDA 算子的实际案例(如向量化读取未产生加速的原因分析)。
- 为何选用 RK3588 芯片?描述环境搭建及模型部署的完整流程。
- 阐述 GPU 的内存层级结构,包括 L1 Cache、共享内存、L2 Cache 的特点与作用。
- 共享内存的优化方式有哪些?什么是 Bank Conflict?
- 是否了解 ARM 平台相关的性能优化方法?
- 简述 ByteTrack 算法的匹配流程。
- 使用 CUDA 实现 100 万个浮点数的求和操作,描述实现思路。
小厂 AI Infra 实习 一面
- 计算机内存的分级体系是怎样的?
- GPU 的显存层级结构及其特点。
- 影响 GPU 计算性能的硬件因素有哪些?
- C++ 中静态变量的作用域与生命周期。
- 堆与栈在内存管理方面的主要区别。
- 递归的优缺点分析。
- 深度优先搜索与广度优先搜索在求解方程组场景中的差异。
- 图算法相关知识了解程度。
- 手写 CUDA Kernel 实现指定功能。
- CUDA 开发相关项目经历介绍。
小厂 AI Infra 一面
- 设计一个分布式推理框架,阐述整体架构与关键模块。
- C++ 中右值引用的典型应用场景有哪些?
- 阐述 C++ 模板编程的核心概念与使用方式。
- C++ 反射机制的原理与实现方式。
- 工厂设计模式的结构与应用场景。
- static 变量的初始化时机与规则。
- C++ 中内存泄漏的常见原因及对应的解决方案。
- 有符号字符与无符号字符类型的取值范围分别是什么?
- 链接两个库中存在同名函数时,最终的调用结果是什么?
- 算子优化的常见方法与思路。
小光子(1 条)
小光子 AI Infra 实习 一面
- Linux 内核虚拟地址空间的布局与机制。
- 零拷贝技术的原理及应用场景。
- Socket 编程的完整流程(从创建到通信)。
- CUDA 算子的常用优化方法有哪些?
- 在校期间的科研方向及主要成果介绍。
小马智行(1 条)
小马智行 AI Infra 实习
- 什么是 CUDA Graph?为何使用 CUDA Graph 会占用更多显存?推理过程中哪个阶段更适合使用 CUDA Graph?
- 阐述 NVIDIA GPU PTX 机器模型的核心概念。
- 描述 CUDA 代码的完整编译流程。
- 介绍 MLIR 框架的设计目标,为什么需要 MLIR?
- 说明跨 Block 的通信方式以及 Warp 级原语。列举常用的 Warp 原语并描述其功能。
- 实现归并排序算法。
小米(5 条)
小米 AI Infra 实习 一二面
- 千卡规模训练项目的技术方案与实施细节。
- 竞赛项目经历介绍。
- Python 中深拷贝与浅拷贝的区别。
- C++ 三种智能指针(unique_ptr、shared_ptr、weak_ptr)的特点与使用场景。
- 写时拷贝(Copy-on-Write)的实现原理。
- 零拷贝(Zero-Copy)的实现原理。
- 实现矩阵转置。
- 大模型分布式训练的完整流程及并行策略选择依据。
- 介绍常见的分布式并行策略。
- 张量并行(TP)为何存在按行和按列两种切分方式?各自对应的含义是什么?
- Megatron 中序列并行(SP)的设计原理与实现方式。
- Transformer 架构中包含哪些层和算子?
- Encoder 与 Decoder 的结构特点及差异。
- FlashAttention 的核心思想与实现机制。
- Online Softmax 的计算原理。
- CUDA 中 Block 是软件概念还是硬件概念?
- CUDA 常见的优化方法有哪些?
- 访存优化有哪些具体策略?
- 计算与访存如何实现重叠(Overlap)?
- L1 Cache 与 L2 Cache 的区别。
- 共享内存与 L1 Cache 的关系与差异。
- C++ 中三种智能指针的区别,shared_ptr 存在的设计动机是什么?
- AllReduce 操作的实现原理,有哪些常见的实现方式?
- Ring AllReduce 的通信量分析。
- Tree AllReduce 相较于 Ring AllReduce 有何优势?
- 合并两个有序链表。
小米 AI Infra 实习 一面 (1)
- CUDA 相关开发经历详细介绍。
- 实习期间从事的技术工作介绍。
- C++ 基础知识考察。
- CUDA 编程基础知识考察。
- 手写膨胀卷积(Dilated Convolution)的实现,并讨论优化方案。
小米 AI Infra 校招
- 在编辑器中手写实现 MGA(Multi-head Group Attention),要求包括 init、forward 及注意力层的完整代码。
- 若无法完整实现,描述从输入到输出的完整计算流程。
- 是否阅读过 vLLM 和 SGLang 的底层源码?对其架构有何理解?
- KV Cache 有哪些加载方式?
- PD 分离(Prefill-Decode 分离)机制的作用是什么?如何实现?
- 是否使用 vLLM 部署过模型?实测吞吐量为多少?
- 介绍 MTP(Multi-Token Prediction)机制的原理与作用。
小米 AI Infra 校招 一面
- 介绍 Fastllm.cpp 的核心技术细节。
- PagedAttention 的作用与设计原理。
- FlashAttention 的算法流程。
- 模型量化的基本原理与常见方案。
小米 AI Infra 一面
- 实现最长回文子串算法。
- YOLO 相关:模型剪枝方法、部署流程、部署加速所用技术。
- 专利内容介绍及相关技术发散讨论。
- 模型压缩相关技术介绍:知识蒸馏、量化等方法的原理与应用。
小鹏汽车(3 条)
小鹏汽车 AI Infra
- std::map 与 std::unordered_map 的底层实现原理及时间复杂度对比。
- 推理阶段常见的优化手段有哪些?
- 使用 CUDA 实现二维矩阵转置,并逐步进行性能优化。
小鹏汽车 AI Infra 实习
- CPU、GPU 与 NPU 在优化策略上的差异,以及各自适用的典型场景。
- 对自动驾驶领域技术栈的了解与认知。
- 使用 CUDA 实现在 uint8 数组中查找第 K 大的值。
- 求二叉树每层的最右侧节点。
小鹏汽车 AI Infra 一面
- C++ 中四种类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast)的区别与底层机制。
- 动态链接库的依赖顺序问题及其解决方式。
- 阅读给定代码,找出其中 4 处编译错误(考察 const 的作用域与约束)。
- 阅读给定的 CUDA Kernel 代码,分析其实现的功能。
- 计算平面上两个任意朝向矩形(不平行于坐标轴)的重叠面积。
易控智驾(1 条)
易控智驾 AI Infra 二面
- NPU 的计算执行流程。
- CUDA 常用优化策略。
- 自动驾驶场景下的高性能计算需求与实现方式。
- 调度器的设计思路与关键考量。
- 团队协作方式与经验。
- 遇到技术难题时的分析与解决思路。
英伟达(2 条)
英伟达 AI Infra
- 介绍在 GPU 或并行计算领域的项目经验。
- 优化 CUDA Kernel 时通常从哪些方面着手?
- 描述一次在资源受限的嵌入式环境中定位并解决性能瓶颈的经历。
- 给定时间字符串(如 "3:45"),计算时针与分针之间的最小夹角。
- 若需支持毫秒级精度,算法应如何调整?
- 设计多线程程序,使三个线程按顺序循环打印递增数字(线程 A 打印 1,线程 B 打印 2,线程 C 打印 3,线程 A 打印 4,依此类推)。
- 若某个线程异常退出,如何保证整个系统不会陷入死锁?
英伟达 AI Infra 校招 (2)
- SIMT(Single Instruction, Multiple Threads)的含义与工作原理。
- Occupancy 受哪些因素影响?如何进行调控?
- Bank Conflict 的粒度是多少?
- GEMM 分块大小的选择受哪些因素制约?
- 使用 float4 读写全局内存为何能提升性能?
- 一个 Block 是否可能被调度到不同的 SM 上执行?
- 主流 GPU 型号的 Cache 容量分别是多少?
- Warp Divergence 对性能的具体影响。
- NVIDIA GPU 中指令级并行(ILP)的实现方式。
- 实现 CUDA 矩阵转置。
- 实现向量外积运算。
元戎启行(2 条)
元戎启行 AI Infra 校招 一面 (1)
- 是否定义过自定义的 MLIR Dialect?
- 项目中是否参考了 torch-mlir 的设计?
- 是否考虑过动态图的处理问题?
- 转换为 TOSA 和 Tensor Dialect 之后,继续 Lower 到哪些 Dialect?
- One-shot Bufferization 与基于 Dialect 的 Bufferization 有何区别?
- 是否了解 LLVM 中 isa 和 dyn_cast 的用法与原理?
- 给定一个计算图,计算运行该计算图所需的最小内存。
- 静态图与动态图的区别是什么?
- MLIR 中如何处理 In-place 操作?
- 是否有 CUDA Kernel 开发经验?
- 实现拓扑排序算法。
元戎启行 AI Infra 校招 一面 (2)
- 实现四维张量的 Concat 操作,分别描述在每个维度上进行拼接的处理方式。
- 使用 CUDA 编写四维张量的 Concat Kernel,针对不同维度分别实现。
- 实现 LRU(Least Recently Used)缓存。
原粒半导体(1 条)
原粒半导体 AI Infra 一面
- CUDA 核函数有哪些常见的优化方法?
- Reduce 操作中计算顺序的不同是否会影响数值精度?
- 如何验证和确定计算精度?
- 常见的非线性算子有哪些?
- pytest 的常用命令与功能。
- 项目经历介绍与技术细节讨论。
智谱(1 条)
智谱 AI Infra 实习 一面
- 请阐述 per-tensor、per-channel、per-group 三种量化粒度的区别,哪种粒度最细?
- minmax 校准与 percentile 校准的核心差异是什么?
- 除 minmax 和 percentile 外,还有哪些常见的校准算法?请简述 KL 散度校准和 MSE 校准的基本原理。
- 请说明 SmoothQuant 的量化粒度及其工作原理,并与 AWQ、GPTQ 的作用流程进行对比。
- NV FP4 的量化原理是什么?缩放因子在哪个维度上计算?存储格式如何设计?
- 在实际部署中,常见的量化目标格式有哪些?请对比 FP8 与 NV FP4 的适用场景。
- 请介绍你的实习项目经历。
- 请分别实现 minmax 校准和 percentile 校准算法。
智源研究院(2 条)
智源研究院 AI Infra 二面
- 请描述 CUDA 的计算模型,包括 block 和 grid 的配置方式及其对算子性能的影响。
- 同一 block 内不同 warp 之间如何进行数据通信?
- 请说明 CUDA reduce 操作的实现思路。
- 在 CUDA 中实现 softmax 时,warp 级处理与 block 级处理有何区别?
- 静态图与动态图的概念分别是什么?动态 shape 场景下如何处理?
- 推理框架中计算图、运行图和内存管理分别承担什么职责?如何设计一个推理框架的整体架构?
- 常见的图优化技术有哪些?
- 请对比 FlashAttention v1 与 v2 的核心改进点。
智源研究院 AI Infra 一面
- 请介绍卷积算子的实现方式及常见优化手段。
- 端侧大模型部署面临哪些挑战?有哪些主流的解决方案?
- 在计算机专业课程中,哪些知识对 AI Infra 方向最为相关?
- 树形动态规划问题。
中科类脑(1 条)
中科类脑 AI Infra 实习 一面
- AI 推理框架中常用的通信协议有哪些?
- 多路复用技术有哪些?在推理框架中如何应用?
- HTTP/2.0 相较于 HTTP/1.1 有哪些核心改进?
- 视频会议场景通常采用什么通信协议?
- Linux 内存管理机制包括哪些核心内容?
- Docker 的 namespace 隔离机制是如何工作的?
- Docker 容器间通信的方式有哪些?
- Docker 的底层实现原理是什么?
- Linux 环境下替换文本内容有哪些常用方法?
- vi/vim 编辑器中常用的命令有哪些?
- 进程间通信(IPC)的方式有哪些?
- 如何对协程数量进行限制?
- 开闭原则在实际编码中如何体现?
- 并发编程有哪些常见的实现方式?
- CUDA Core 与 Tensor Core 的区别是什么?
- 华为达芬奇架构的设计特点有哪些?
- reduce 算子有哪些常见的优化策略?
- 请介绍你的实习项目经历。
- AI 框架的开发通常涉及哪些核心模块?
中科曙光(1 条)
中科曙光 AI Infra 二面 (2)
- PyTorch 中有哪些常用的性能分析工具和方法?
- DDP 在多机多卡场景下如何进行优化?
- 分布式训练中 batch size 的设置需要注意哪些问题?
- PyTorch 的图优化机制是如何工作的?
- PyTorch 2.0 引入了哪些关键新特性?
- pytest 框架的常用参数有哪些?
- PyTorch 中如何基于 YAML 配置文件实现算子注册?
- 跨平台环境下,系统级算子的测试策略应当如何设计?
- 请介绍你参与过的核心项目及其技术方案。
中兴(1 条)
中兴 AI Infra 二面
- 请逐一介绍你参与的主要项目,并阐述核心技术方案。
- 分布式训练中,数据并行、模型并行和流水线并行分别是什么?各自适用于哪些场景?
- DeepSpeed 框架的核心功能及其优化策略有哪些?
- 给定一个模型的参数量,如何估算其训练过程中优化器状态、梯度和模型参数各自的显存占用?
- 若需在 16 张 GPU 上训练一个 200B 参数的模型,如何设计合理的分布式训练方案?
- 混合精度训练的原理和实现方式是什么?
- 大模型推理加速有哪些常用技术?
- KV Cache 的优化方法有哪些?
- 算子融合的原理及其对性能的影响是什么?
- Python 基础知识考察(数据结构、GIL、装饰器等)。
- Linux 常用命令考察。
- PyTorch 相关知识考察。
卓驭(5 条)
大疆车载 AI Infra 校招 二面
- 简要阐述项目中遇到的核心难点及解决方案
- 对个人职业发展的规划与思考
- 高性能计算有多种落地方向,选择车载领域的原因是什么?
- 选择大疆的考量因素
大疆车载 AI Infra 校招 一面
- 介绍简历中的项目内容
- 围绕项目涉及的知识点进行发散提问
- 回顾已完成的项目,哪些环节存在改进空间?
- 对大疆车载业务的了解程度
卓驭 AI Infra 实习
- 大模型推理分为哪几个阶段?各阶段的特点是什么?
- 算子与 tensor 之间是什么关系?
- 计算图通常使用什么方式构建?
- 吞吐量的定义是什么?在推理场景中如何衡量?
- 如何区分 memory-bound 和 compute-bound?
- 在模型和算子已经确定的前提下,影响推理速度的因素有哪些?
- prompt 长度是否会影响推理速度?decode 阶段呢?上下文长度的影响如何?
- 权重文件如何导入到自行搭建的模型中?
- prefill 阶段有没有加速 KV Cache 生成的方法?
- prefill 阶段中各 token 之间是否存在依赖关系?能否并行处理?
- 稀疏化 KV Cache 是否需要修改模型训练流程,还是纯粹的工程优化?
- 进一步提升大模型推理性能,有哪些可用的技术手段?
- 如何使用 Nsight 工具辅助性能优化?重点关注哪些指标?
- 是否关注过计算架构或芯片架构方面的内容?
- 请介绍你的毕业论文研究方向。
- 请介绍项目中的关键组件和模块设计。
卓驭 AI Infra 校招 二面
- 实习过程中对你影响最大的人是谁?从中获得了哪些启发?
- 请描述你最有成就感的一次工作经历。
- 你对第一份正式工作最核心的期望是什么?
- 你对自动驾驶领域的高性能计算需求有哪些了解?例如时延、吞吐与功耗之间的权衡关系。
卓驭 AI Infra 校招 一面
- 从 profiling 到最终落地,算子优化的完整流程是什么?如何判断算子属于 memory-bound 还是 compute-bound?
- 常用的 profiling 工具有哪些?Nsight Systems 是否支持指令级流水线分析?
- Warp 利用率偏低时如何进行归因分析?负载不均衡问题如何解决?
- 昇腾 NPU 与 NVIDIA GPU 在架构设计上有哪些差异?内存层级如何设计?
- 多进程与多线程在性能方面有哪些区别?
- 模型输出结果与预期不符时如何排查?误差累积问题如何处理?
- KV Cache、算子融合、量化等模型级优化手段的原理分别是什么?
- 请深入介绍你的项目经历。
字节跳动(13 条)
字节跳动 抖音 AI Infra
- 过拟合的常见解决方案有哪些?L1 正则与 L2 正则有何区别?L2 正则的导数形式是什么?
- Dropout 在训练阶段与推理阶段的行为有何不同?
- 常见的优化器有哪些?请详细介绍其原理。
- 特征筛选有哪些常用方法?
- 常见的机器学习模型有哪些?请对比树模型和线性模型的特点。
- 如何设计方案识别抖音平台上的刷赞行为?
- 请介绍你的项目经历。
- 使用非递归方式实现二叉树的中序遍历。
字节跳动 抖音电商 AI Infra
- SFT 阶段使用的模型、数据来源、数据处理方式和训练框架分别是什么?
- 请详细介绍 PPO 的训练流程,包括数据准备、奖励模型训练、各模型的损失函数设计以及所用的计算资源。
- DPO 的训练流程是什么?PPO 与 DPO 有何区别?是否做过对比实验?
- 如何评估微调后模型的性能提升?
- PPO 效果优于 DPO 的原因可能是什么?如何理解多轮 DPO 带来的性能提升?
- GRPO 的原理是什么?
- 为什么有了 SFT 之后还需要 RLHF?
- CLIP 的训练原理是什么?
- 请介绍几种常见的深度学习优化器。
- Multi-Head Attention 的原理是什么?
- LoRA 的原理是什么?秩 r 的大小对模型训练有什么影响?
- ViT 的训练原理是什么?
- Swin Transformer 的核心设计思想是什么?
- Qwen3 中快思考与慢思考的实现原理是什么?
- 请介绍项目中的创新点及其代码实现细节,包括消融实验的设计方案。
- 编程题考察。
字节跳动 豆包 AI Infra 实习 二面
- Decoder-only 架构为什么成为当前大模型的主流选择?
- Qwen2 的模型结构是怎样的?相较于 Qwen1 做了哪些改进?
- PPO 与 DPO 的核心思想分别是什么?
- 为什么在 SFT 之后仍然需要 RLHF 阶段?
- 目前有哪些常见的模型训练与推理优化方法?
- 请介绍你的实习项目及论文研究内容。
- 合并 K 个升序链表(LeetCode 23)。
字节跳动 AI Infra (1)
- 请阐述 KV Cache 的工作原理及常见优化策略。
- PagedAttention 的核心思想是什么?它如何提升显存利用率?
- FlashAttention 的实现原理是什么?相比标准 Attention 有哪些优势?
- vLLM 框架的核心设计理念是什么?
- 从系统层面出发,有哪些综合性的推理加速策略?
字节跳动 AI Infra (2)
- vLLM 中 PagedAttention 的实现机制及其设计动机是什么?
- KV Cache 的原理是什么?有哪些针对性的优化方法?
- FlashAttention 的核心技术点有哪些?
- 大模型推理中,系统资源调度与并发处理需要关注哪些要点?
- 如何综合运用多种技术手段实现推理加速?
字节跳动 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)。
字节跳动 AI Infra 实习 一面 (1)
- 是否有 kernel 级别的优化经验?例如使用 CUTE DSL 或手写 CUDA 实现算子融合,请具体介绍。
- 进行 kernel fusion 时,通常倾向于采用哪种实现方式?
- 是否遇到过 fusion 后性能反而下降的情况?原因是什么?
- Hopper 架构中 warp specialization 的机制是什么?底层如何实现?
- 如果去掉 warp specialization,仅保留 tiling 和 shared memory 优化,性能损失主要体现在哪些方面?
- 在 MoE 模型(如 RL 场景中)的推理优化方面是否有实践经验?
- 如何判断 MoE 模型确实学到了专家分工,而非仅仅将 dense 模型拆分?
- 在 RL + MoE 训练中,是否遇到过 reward 导致 routing 退化的情况(即所有请求集中到少数 expert)?如何处理?
- 请介绍你的项目经历。
- 是否尝试过使用 Agent 生成 CUDA kernel?具体方案是什么?
字节跳动 AI Infra 实习 一面 (4)
- 请阐述 DeepSpeed 框架的核心设计理念和主要功能。
- 选择 ZeRO Stage 3 的原因是什么?请推导其显存节省的计算公式。
- 除 DeepSpeed 外,还使用过哪些分布式训练加速框架?它们之间有何区别?
- BLIP 与 BLIP-2 的主要区别是什么?当前主流的多模态模型采用什么架构?
- Q-Former 的设计原理和作用是什么?
- 内容理解任务的技术路线是什么?如果要训练一个 chart-to-story 模型,数据应如何构造?
- 请介绍你参与的核心项目。
- 实现整数平方根函数(LeetCode 69),并讨论可能的优化方法。
字节跳动 AI Infra 校招 (1)
- 大模型推理加速的常见方法有哪些?
- 模型压缩与量化技术有哪些?量化的主要优势体现在什么方面?
- 权重量化、激活值量化和 KV Cache 量化分别带来哪些收益?
- KV Cache 的工作原理是什么?PagedAttention 为什么能提升效果?
- Prefix Cache 的机制是什么?适用于哪些场景?
- 构建一个 AI Agent 应用,大致需要包含哪些核心模块?
- 请深入介绍你的项目经历。
- 一个环上有 10 个节点(编号 0-9),从节点 0 出发,每步可沿顺时针或逆时针移动一个节点,求经过 n 步后回到节点 0 的不同走法总数。
字节跳动 AI Infra 校招 一面
- 使用 CUDA 编写 GEMM,并阐述优化方法和性能评估指标。
- 请手写实现 MLA(Multi-head Latent Attention)。
- 两个有序数组求中位数(LeetCode 4)。
字节跳动 AI Infra 一面 (1)
- C++ 虚函数的实现机制是什么?虚函数表如何工作?
- C++ 中内存对齐的规则和意义是什么?
- 动态库与静态库的区别及各自的适用场景是什么?
- 请介绍你的项目经历。
- 编程题考察。
字节跳动 AI Infra 一面 (2)
- CUDA 编程的常见优化策略有哪些?
- 卷积操作有哪些优化方法?
- GPU 共享内存的工作原理及使用方式是什么?
- C 语言的 malloc 与 C++ 的 new 有哪些区别?
- C++ 中四种强制类型转换分别是什么?各自适用于什么场景?
- 深拷贝与浅拷贝的区别是什么?
- C++ 智能指针有哪些类型?其实现原理是什么?
- 如何预防和排查内存泄漏?
- Vim 编辑器的常用操作命令有哪些?
- GDB 调试工具的使用方法是什么?
- 是否有 AI 模型部署的实践经验?
- 请介绍你的项目经历。
- 求图的最短连通路径长度。
字节跳动 AML AI Infra 一二面
- 大模型推理的主要性能瓶颈有哪些?
- 大模型推理有哪些核心优化技术?
- PagedAttention 的工作原理是什么?
- Orca 迭代级请求调度的设计思路是什么?
- 请介绍你的项目经历(MPS、训练内存管理、调度策略、时分复用与空分复用等)。
- 实现链表反转。
- C++ 中数组下标越界会导致什么错误?
- 在 Linux 环境下如何进行程序调试和错误定位?
- 请介绍你的项目经历(MPS、GPU 利用率指标等)。
- 实现 LRU Cache。
综合(10 条)
AI Infra 面经 (1)
- 指针与引用的异同点有哪些?
- static 关键字的用途,分别修饰成员变量和成员函数时的行为差异,以及 static 全局变量与普通全局变量的区别
- 智能指针的种类与用法,shared_ptr 是否具备线程安全性?
- 右值引用的概念及应用场景
- std::move 与 std::forward 的作用及区别
- 拷贝构造函数的参数为何必须采用引用传递而非值传递?
- new 与 malloc 的区别,new 的底层实现机制
- C++ 内存模型概述
- 构造函数为何不能声明为虚函数?析构函数为何建议声明为虚函数?
- 多态的实现方式及底层原理,虚函数表的存储位置;模板多态与模板偏特化
- vector 的扩容策略是什么?为何通常采用 2 倍扩容?
- lambda 表达式的语法与捕获方式
- 锁的类型及使用场景
- 线程间共享内存时,条件变量与互斥锁各自适用于何种场景?二者有何区别?
- 死锁的四个必要条件及预防方法;lock_guard 与 unique_lock 的区别
- 如何实现线程安全的单例模式?
- 如何限制对象只能在堆上创建?
- C++ 程序的编译流程;动态库与静态库的区别
- C++ 如何调用 C 语言编写的函数?
- 进程与线程的区别
- 大端与小端存储的判断方法(至少两种)
- GPU 架构概述
- GPU 全局内存与共享内存(局部内存)的区别,如何有效利用共享内存?
- Cache 的工作原理及提升缓存命中率的方法
- 时间局部性与空间局部性的概念
- 计算密集型与访存密集型的区别
- 常用的性能优化思路有哪些?
- OpenCL 的执行流程
- 编写 OpenCL kernel 时为何应减少分支?掩码的作用是什么?
- OpenCL kernel 的主要参数包括哪些?
- 可分离卷积在 GPU 上为何性能不佳?为何属于访存密集型?
- 算子融合的概念,conv + BN 融合的公式推导及可融合的原因
- 推理框架中卷积算子的常见实现方式
- 产生 bank conflict 的原因及解决方法
- TVM 编译框架的基本概念
- Batch Normalization 的计算过程、作用,以及训练与推理阶段的差异
- Depthwise 卷积与 Pointwise 卷积的原理
- MobileNet v1/v2/v3 的演进路线,GhostNet 的设计思路,SE 模块的结构
- YOLO v1/v2/v3 与 SSD 的对比
- 全局池化通常用于网络的哪个位置?
- 模型蒸馏的原理与流程
- 量化技术分类,INT8 量化的具体实现:对称/非对称量化的优缺点,量化感知训练及推理细节
- Dropout 在训练与推理阶段的行为差异
- 反卷积与空洞卷积的原理
- GIoU 损失函数的定义与作用
- Softmax 函数的公式及其用于分类的原因
- NMS 的改进方案
- 实现卷积操作
- 实现计算图
- 实现 Pooling 操作
- 实现 NMS 算法
- 使用 OpenCL 实现矩阵乘法与向量求和
AI Infra 校招 (1)
- CUDA 编程中的软件层级模型(Grid、Block、Thread)是如何组织的?
- CUDA 的内存层级结构包含哪些类型(全局内存、共享内存、寄存器等)?各自的特点是什么?
- CPU 与 GPU 在架构设计上有哪些本质差异?GPU 为何更适合并行计算?
- 如何理解 SM(Streaming Multiprocessor)与 SP(Streaming Processor)的关系?
- CUDA Stream 的概念是什么?同步流与异步流有何区别?
- GPU 的 L1/L2 缓存各自承担什么角色?
- 使用共享内存时需要注意哪些事项(线程同步、bank conflict 等)?
- 针对一个 CUDA kernel 进行性能优化,可以从哪些维度入手?
- 实现矩阵乘法 kernel
- 实现 Softmax 归约
- 实现 NCHW 到 NHWC 的数据格式转换
- 给定长度为 n 的数组(元素范围 0~256),统计每个元素出现的频次并存入另一数组
- 将数组中奇数下标的元素移至左侧、偶数下标的元素移至右侧,要求原地操作
AI Infra 一面
- 请阐述 Roofline 模型的基本原理,如何利用该模型判断一个算子是否已达到计算瓶颈?
- 当训练或推理所使用的 GPU 卡数成倍扩展时,系统最可能在哪些环节出现瓶颈?请分析原因并给出相应的优化或缓解思路。
- GEMM 计算是否一定属于计算瓶颈型算子?若需要对其进行优化,整体思路是什么?
- 在性能调优过程中,如何定位瓶颈并进行检测?你通常使用哪些方法或工具?
- 请介绍你对 Flash Attention 的理解。
- 在 C++ 中,若数组越界写入导致其他数据结构被破坏,且现场保留了 coredump 文件,应如何排查该问题?
- 编程题:手写包含 GQA(Grouped Query Attention)的 Attention 模块实现。
AI Infra 综合面经题库 (1)
- Hopper 架构 TMA 的优势是什么?其调用方式如何?数据传输是否需要经过 L1 缓存?
- Flash Attention v2 中外层循环为何选择对 Q 进行遍历?Flash Decoding 的 combine kernel 耗时占比大约是多少?
- 如何分析 MLA decode 的计算访存比?该比值与序列长度、batch size 是否存在关联?
- Mooncake 中以 KV-Cache 为中心的 PD 分离方案的设计思路
- DiT 推理框架的设计与 LLM 推理框架有哪些异同?
- 大语言模型的知识蒸馏是否适合在预训练阶段进行?
- Diffusion Model 的训练与推理步骤分别是什么?当推理 num_inference_steps 设为 40 时,为何训练的 timesteps 仍需设置为 1000?
- 请介绍 dLLM(离散化大语言模型),它与自回归(AR)模型有何本质区别?
- torch.repeat 与 torch.expand 在功能和内存行为上有何差异?
- torchrun 的启动参数有哪些?在 Linux 环境下如何批量终止包含 torchrun 的进程?
- 实现支持 torch broadcast 语义的 4D tensor elementwise 乘法
- 给定 A: (1, 256), B: (256, 128), C: (128, 256),计算 (A * B) * C
- Embedding Sparse Feature Pooling:A 为 100 万个离散 ID(范围 0~999),B 为 100 万个 float,计算长度为 1000 的数组 C,其中 C[i] = sum of B[j] for all j where A[j] = i
- 实现 LoRA Adapter
- 实现内存池(需支持类似 new Foo[] / delete[] 的功能)
- C++ 中如何比较两个 float 是否相等?
- 实现 LRU 缓存
- 岛屿数量问题
- 二叉树的层序遍历
- 计算 Hamming Weight
- K-Coverage Intervals 问题
AI Infra 综合面经题库 (2)
- 请介绍 Flash Attention 的核心原理及实现思路
- CPU 按列遍历一个行优先存储的矩阵相比按行遍历,性能为何会显著下降?具体是哪个性能指标发生了劣化?
- GPU 矩阵转置操作中使用 Shared Memory 有何优势?
- Flow Matching 模型的预测目标是什么?如何理解以数据样本 x0 为条件的条件速度场(conditional velocity)?
- 如何计算 QwenImage 中的 time shift?
- Weight-Only 量化有哪些方案?实现 Weight-Only 量化 CUDA kernel 时如何优化访存?是否了解 Marlin kernel?
- Megatron 中序列并行(SP)的实现方式是什么?
- DeepSpeed ZeRO Stage 1 与 Stage 2 在通信量上有何差异?论文描述与代码实现之间是否存在差距?
- 多 GPU 通信场景下 NVSHMEM 与 NVLink 有什么区别?
- 实现 Multi-Head Attention(共 3 道变体)
- 实现 Flash Attention v1
- 编写 Flow Matching Model 采样过程的伪代码
- 快速排序
- 寻找两个有序数组的中位数
- 下一个排列
- 二叉树中的最大路径和
- Path Sum III
- 给定若干点的数轴坐标数组和固定数量的等长线段,求线段最少需要多长才能覆盖全部点
- 前 K 个高频字符串(词频相同时按字典序升序排列)
- 给定初始字符串 s,每次将字符串向右旋转一位并拼接到末尾(长度每次翻倍),求无限扩展后第 N 个位置的字符
- 两根手指置于 26 个小写字母组成的键盘上,求敲出给定字符串 s 所需的最少移动距离
AI Infra 综合面经题库 (3)
- CUDA Global Memory 与 Shared Memory 在访存时分别需要关注哪些问题?
- 已知训练所需的 Token 总量,如何估算模型完成训练的总耗时?
- Prefill 阶段与 Decode 阶段各有哪些主流优化技术?
- Two-batch overlap 的含义是什么?在哪些场景下 Two-batch overlap 反而会成为负优化?
- Megatron-LM 中的通信优化是如何实现的?
- 多机 PD 分离会引入 KV Cache 传输开销,为何仍有必要进行 PD 分离?
- Muon 优化器与 AdamW 在 Pretrain 和 Post-train 阶段为何不能混合使用?
- 如何看待跨 SM 的 PD 分离与 AF 分离方案?
- DeepSeek-V3 有哪些关键优化点?
- DeepSeek-DSA、NSA 与 MoBA 之间的区别是什么?
- NCCL 中包含哪些通信原语?执行一次 All-Reduce 参数更新需要几次通信?
- 在小数据量场景下使用 NVSHMEM,让每个 GPU 直接读取其他 GPU 的数据并在本地进行 Reduce,相比 Ring All-Reduce 有何优势?
- 训练超长序列时应如何设计并行策略?
- 将 Ampere 架构上的算子迁移适配到 Hopper 架构时,哪些方面需要进行升级改造?
AI Infra 综合面经题库 (4)
- 是否有过 kernel 级别的优化经验?例如使用 CuTe DSL 或手写 CUDA 实现算子融合,请介绍具体做法
- 在进行 kernel fusion 时,通常倾向于采用哪种方式实现?
- 是否遇到过算子融合后性能反而下降的情况?分析其原因
- 在编写 CUDA 程序时,是否关注过底层实现细节?例如 Hopper 架构中的 Warp Specialization 机制及其底层实现原理
- 在部署或训练大规模模型时,是否使用过底层调试工具?当千卡规模出现 NCCL Timeout 时,通常如何定位与解决?
- 是否针对 RL 场景下的 MoE 模型做过相关优化?
- 在推理服务上线前,做过哪些方面的性能优化工作?
- 是否尝试过利用 Agent 自动生成 CUDA kernel?具体是如何实现的?
AI Infra 综合面经题库 (5)
- 请解释 Python 全局解释器锁(GIL)的作用及其对多线程的影响
- Python 中不同进程之间有哪些 IPC(进程间通信)方式?
- All-Reduce 的通信开销如何计算?请给出具体推导过程
- tensor.view 与 tensor.contiguous 的区别与联系是什么?
- 张量并行中先按列切分与先按行切分有何区别?
- 实现数值的整数次幂运算
- 实现 Graph Fusion 算法
AI Infra 综合面经题库 (6)
- CUDA Graph 的作用与原理,kernel launch 的完整流程
- 如何确定合适的 blockSize 与 gridSize?
- 什么是 default stream?它存在哪些潜在问题?
- Shared Memory 的 bank conflict 产生原因及解决方法
- threadfence 的作用是什么?
- 如何调试 CUDA kernel?
- Unified Memory 与 Zero-Copy Memory 的区别
- CUDA 中排序算法如何实现?
- sin 函数在 GPU 的哪个硬件单元上执行?该单元还支持哪些运算?
- Volta 架构的特性,ITS(Independent Thread Scheduling)的概念
- 在 3090 上单个 block 可使用的 Shared Memory 最大容量是多少?
- PTX 与 SASS 的区别是什么?
- GPU 标称的 xx TFLOPS 性能指标是如何计算的?
- C++ 虚函数的实现机制,单继承、多继承、虚继承下的内存布局
- 四种类型转换(static_cast / dynamic_cast / const_cast / reinterpret_cast)的用法与区别
- 三种智能指针(unique_ptr / shared_ptr / weak_ptr)的适用场景
- 函数模板的声明与定义能否分离到不同文件?
- CRTP(Curiously Recurring Template Pattern)实现静态多态的原理
- vector 的扩容机制,resize 与 reserve 的区别
- 单例模式的实现方式
- Reduction 归约求和
- Softmax 实现
- 矩阵转置(Matrix Transpose)
- 平均池化(Avg Pooling)
- 计算两组 BBox 的 IoU
- NMS(非极大值抑制)
- Conv2D 卷积实现
- 双线性插值
- LayerNorm 实现
- 单例模式实现
AI Infra 综合面经题库 (7)
- 大模型训练与推理的主流加速方案有哪些?
- 多机多卡分布式训练的基本原理及常见框架
- 是否了解 DeepSpeed?请介绍其核心功能
- 如何从时间和资源两个维度提升训练效率?
- 训练过程中发现速度异常缓慢,应从哪些方面进行分析与排查?
- 多机多卡训练场景下的通信瓶颈及优化方法
- 梯度累加的工作原理是什么?
- 常见的模型量化方法与推理加速方案有哪些?
- 是否有过在 GPU 上对大模型进行训练或推理性能优化的实践经验?
- 训练过程中出现 loss 震荡,可能由哪些因素导致?
B站(1 条)
B站 AI Infra 实习 一面
- 进程、线程和协程三者的定义分别是什么?它们在资源占用与调度方式上有哪些关键差异?
- 在 CPU 调度中,以进程为单位和以线程为单位进行调度时,公平性方面会产生哪些不同的影响?
- 分布式训练中常用的集合通信操作 All-Reduce、All-Gather、All-to-All 分别完成了什么数据交换?各自适用于哪些并行策略?
- 如何利用 profiling 工具来判断一个 GPU 算子的性能瓶颈在于访存还是计算?有哪些通用的优化思路?
- 当确认算子的瓶颈类型后,有哪些针对性的调优手段?例如提升访存连续性、精简计算逻辑、调整 block 尺寸等方面应如何考虑?
- 围绕你参与的优化相关工作进行详细提问
- CUDA 编程题:对一个大规模数组执行求和归约,要求使用 Shared Memory 进行块内归约,并通过多级 kernel 完成全局汇总
MiniMax(4 条)
MiniMax AI Infra 实习 二面
- 请分享你在实习中参与的项目,着重描述你遇到的最大技术难题以及取得的优化成果
- DeepSpeed ZeRO 的三个阶段(Stage-1 / Stage-2 / Stage-3)各自对哪些状态进行了切分?它们在通信量和显存节省上有何递进关系?
- 训练大模型时,你使用过哪些并行方案?数据并行、张量并行和流水线并行的设计思想与适用条件分别是什么?
- 假设需要训练一个 70B 参数量级的模型,如何粗略计算单张 GPU 所需的显存量?
- LoRA 的核心思想是什么?为什么通过低秩矩阵分解可以大幅降低需要更新的参数数量?
- 在 LoRA 中,降维矩阵 A 和升维矩阵 B 的初始化方式为何不同?这样设计的目的是什么?
- 除了 ZeRO 系列之外,你还了解哪些用于大模型训练的优化技术?
- 实现一个滑动窗口求最大值的算法
MiniMax AI Infra 实习 一面 (1)
- 请介绍你的实习项目和研究工作
- SFT 和 RLHF 的训练目标在本质上有何不同?为什么大多数模型做完 SFT 之后还要再经过 RLHF 阶段?
- MoE 模型中路由模块是怎样决定将 token 分配给哪些专家的?什么原因会导致专家之间的负载出现严重不均?
- 当部分专家的利用率明显偏低时,可以通过哪些手段改进路由策略来提高利用率?
- 请介绍你比较熟悉的大模型架构,并从注意力计算、训练方法和推理效率等维度分析它们之间的主要差异
- PPO 在 RLHF 框架中优化的核心目标是什么?请写出其目标函数并对其中每一项进行解释
- MoE 架构在模型参数量不断增长的背景下,为何仍能维持相对较高的训练效率?
- 给定 K 个已排序的数组,求它们合并后的中位数
MiniMax AI Infra 实习 一面 (2)
- 对项目进行深入探讨
- MoE 架构是如何做到在模型参数规模不断增大时依然保持高效训练的?
- SFT 与 RLHF 在优化目标上存在哪些根本差异?完成 SFT 之后为什么通常还需要额外的 RLHF 训练?
- PPO 算法在 RLHF 流程中具体优化什么目标?请写出目标函数并解释各组成部分的含义
- 请简要介绍你最熟悉的大语言模型架构及其特点
- MoE 中路由模块的运行机制是怎样的?哪些因素会造成不同专家之间负载分配不均?
- 面对专家利用率不理想的情况,有哪些可行的路由优化方案?
- 编写一个求解滑动窗口内最大值的程序
MiniMax AI Infra 一面
- 什么是 RAG?它通过什么方式来改善模型的生成质量?标准 RAG 方案通常存在哪些不足?与传统的"先检索再生成"的流程相比有何本质差异?
- SFT 的主要工作流程是怎样的?训练数据集通常如何构建与筛选?
- 从数学视角出发,如何理解 Transformer 中 Attention 机制的核心含义?
- 你对 Agent 技术有了解吗?将 RAG 封装为 Agent 形态能够带来哪些好处?
- 如何系统性地评估一个 RAG 系统的实际表现?有哪些常用的评估指标或标准化测评框架可以参考?
- LoRA 的工作原理是什么?在推理阶段,LoRA 微调后的模型是否仍然需要加载额外的 Adapter 模块?
- PPO 和 DPO 在实现大模型对齐方面的核心区别在哪里?使用 DPO 训练时有哪些需要特别注意的问题?
- 是否接触或使用过 GRPO 算法?请简要说明
- 在多轮对话的 Agent 应用中,Attention 机制会暴露出哪些不足之处?
- SFT 之后的 Post-Training 阶段通常包括哪些方法(如 RLHF 等)?这些方法分别以什么为优化目标?
- 微调 Qwen 模型时,如何选择训练阶段的策略?Loss 函数的设计是基于哪些考虑?
- Prompt 自动推荐功能是如何实现优化的?是否尝试过通过 Prompt 压缩或基于 Embedding 的表征方法来提升效率?
- 工具调用的调度机制是如何设计的?系统是否支持异常情况下的 Fallback 降级处理?
- 项目中 Modular Agent 是通过什么方式完成多步规划(Multi-step Planning)的?
- Agent 的评估体系涵盖了哪些方面?规划质量和幻觉产生的频率分别是如何度量的?
- 设想某个 Agent 的推理流程需要依次调用 3 个外部工具,且面临高并发访问导致端到端延迟偏高,你会采取哪些工程手段来降低整体延迟?
- 使用 PyTorch 编写 SFT 训练中的 loss 计算逻辑(需注意标签的 shift right 对齐操作)
OPPO(2 条)
OPPO 云 AI Infra 实习 一面
- 简要介绍你参与过的相关项目
- 面对一个此前未接触过的大模型推理框架,你会通过什么方法快速理解并上手使用它?
- 在进行数据类型的精度转换时,如何确保数值计算的稳定性不受影响?
- Warp 与 Block 的划分方式和 SIMT 执行模型之间存在怎样的内在联系?
- 假设你作为技术负责人,需要优化一个部署在云端的 CV 模型推理服务,目标是提升单卡的吞吐量并降低响应延迟,你会如何展开优化?
OPPO AI Infra 实习 二面
- 对项目进行深入考察与追问
- 在什么情况下可以判定算子融合(Operator Fusion)是有收益的?哪些典型场景适合进行融合?
- CUDA Stream 的异步执行原理是什么?使用异步执行需要满足哪些前提条件(如避免内存访问冲突)?
- 如何确定一个 CUDA kernel 最优的线程数量配置?
- 在 CUDA 编程中,Thread、Warp、Block、SM、Grid 之间存在怎样的层级对应关系?
- 如果在某些特殊 Shape 下使用 Shared Memory 导致了计算结果出错,应该从哪些方面进行排查和诊断?
- 数据排布格式 NHWC 和 NCHW 各有什么特点?在模型训练和推理部署中应当如何做出选择?
- 在哪些情况下应该考虑放弃使用 Shared Memory?比如 Bank Conflict 特别严重或直接走 L2 Cache 反而更快的场景
Teleai(1 条)
Teleai AI Infra 实习 一面
- CLIP 模型的工作原理和推理时的执行流程是怎样的?
- 大模型推理场景中常见的算子优化方向有哪些(例如访存优化、并行化策略等)?
- DeepSeek-R1 与一般的基座大语言模型相比有什么不同之处?
- 你有没有实际编写过 CUDA 算子的经验?开发的算子在性能方面达到了什么水平?
- 如果需要对 vLLM 框架进行功能定制或二次开发,可以从哪些模块或层面入手?
- vLLM 和 SGLang 这两个推理框架有哪些差别?SGLang 相比 vLLM 的优势体现在哪里?SGLang 为什么在推理类大模型上表现更好?
- 大模型量化技术的基本原理是什么?你是否有过实际部署量化模型的经历?是否研究过 AutoAWQ 的实现代码?
- 华为昇腾平台上的 CANN 和 MindIE 框架分别包含哪些核心组件?
- 如何将 vLLM 适配到自研的模型架构上?
- V100 GPU 的显存大小是多少?将 DeepSeek 或 Qwen 的 32B 模型做 INT8 量化后是否可以在 V100 上运行?具体的部署方案是什么?
- 在高并发条件下,如何对推理服务进行压力测试以确定其能承受的最大并发量?测试过程中需要重点监控哪些指标(例如 batch size、响应延迟、吞吐量等)?
vivo(1 条)
vivo AI Infra 校招
- 后端的整体架构设计与关键实现细节
- HalideIR 的核心概念以及 Schedule 原语的运作机制是怎样的?
- 除 TVM 以外,还有哪些主流的深度学习编译框架(如 XLA、TensorRT 等)?它们之间有何异同?
- TVM 中图级别优化和算子级别优化分别是怎么实现的?目标硬件平台对优化过程提供了哪些支持?
- 自动调优(Tuning)方案的设计思路是什么?与纯手动优化相比,各自的优势和不足在哪里?