在大模型 AI Infra(人工智能基础设施)方向的面试中,面试官考察的并非传统的后端开发能力或纯粹的算法知识,而是一种独特且关键的能力:能否站在模型与硬件的交界处思考和解决问题。面试官希望看到候选人面对一个大模型训练或推理的性能瓶颈时,能够从模型计算的特性出发,分析出问题根源在于硬件的哪个环节,并提出针对性的优化方案。这意味着候选人需要同时理解上层的模型结构与下层的硬件原理。
基于这一核心逻辑,面试问题通常围绕以下几个关键模块展开。
一、模型计算特性与性能分析基础
这是进入AI Infra领域的“入场券”,几乎是所有面试的开场问题。面试官关心的不是“注意力机制的设计动机”,而是候选人能否将Transformer的每一步操作,转化为具体的计算量(FLOPs)和数据访问量。
一个典型的问题是:“请估算一次Transformer前向传播的计算量是多少?”一个合格的回答不应止于给出O(n²d)这样的复杂度,而应能拆解到每个具体操作,如QKV投影、QK^T矩阵乘法、Softmax、与V的乘积以及FFN层的计算量,并知道如何根据矩阵维度进行估算。
接下来,面试官会深入追问:“这些计算在具体的GPU(如A100)上理论上需要多久?”这便引出了AI Infra领域的核心分析工具——Roofline Model(屋顶线模型)。候选人需要理解,任何计算任务的耗时都受限于两个因素之一:算力(GPU每秒能执行多少次浮点运算)或带宽(GPU每秒能搬运多少数据)。判断瓶颈的关键指标是算术强度,即计算量与数据搬运量的比值。
面试官会通过具体场景检验这种分析能力,例如:“Llama-2-70B在A100上,当batch size为1时,生成一个token大概需要多长时间?” 这要求候选人了解A100的大致算力(如FP16下约312 TFLOPS)和显存带宽(约2TB/s),并结合模型参数,估算出计算量和访存量,从而判断瓶颈所在并给出时间数量级的估计。
一个关键的区分问题是:“Transformer中哪些操作是计算瓶颈(compute-bound),哪些是访存瓶颈(memory-bound)?”通常,大批量数据下的矩阵乘法是计算瓶颈,因为其计算量增长快于数据量。而逐个token生成时的矩阵向量乘法、Softmax、LayerNorm等操作,则是典型的访存瓶 irmão,因为计算量相对较小,大部分时间都花在了从显存读取权重上。清晰地解释这一区别,并阐述为何模型处理输入提示(prefill)和逐词生成(decode)两个阶段的性能特征截然不同,是这个模块过关的标志。

二、核心算子优化:以FlashAttention为例
FlashAttention是面试中绕不开的话题,但简单的“减少HBM(显存)访问”并不足以打动面试官。面试官希望听到更深层次的原理阐述。
首先要说明标准Attention的瓶颈所在。在处理长序列时,标准实现会生成一个巨大的中间结果矩阵(QK^T),这个矩阵需要被反复写入和读出高带宽显存(HBM)。由于Attention操作本身的算术强度不高,数据搬运成了性能的短板。
FlashAttention的核心思想是Tiling(分块)和Online Softmax。它将Q、K、V矩阵切分成小块,每次只加载一小块到速度极快的SRAM(GPU片上缓存)中进行局部计算。通过一个数学技巧,它可以在不生成完整QK^T矩阵的情况下,一块一块地增量计算出最终结果。这样,那个巨大的中间矩阵就始终停留在高速缓存里,避免了与慢速显存的反复交互。
一个能够区分“背诵”与“理解”的追问是:“FlashAttention在反向传播时需要重计算,其实际计算量(FLOPs)比标准版更高,为什么反而更快?” 最佳答案是,因为Attention是一个访存瓶颈操作,性能瓶颈不在于计算而在于数据搬运。FlashAttention用少量的额外计算,换取了HBM读写的大幅减少,在这笔“交易”中获得了巨大的性能收益。这再次体现了Roofline模型的分析思路。
此外,算子融合(Kernel Fusion)也是常考点。其原理在于,将多个独立的操作(如多个element-wise计算)合并成一个GPU核函数。这样做可以避免中间结果反复写入和读出主显存,让它们直接在寄存器或共享内存中流转,从而为访存瓶颈的操作带来显著提速。
三、推理系统优化:KV Cache的挑战与对策
这部分是推理方向岗位的重中之重。面试官通常会抛出一连串问题,首先是“KV Cache是什么,为什么需要它,以及它带来了什么问题?”
KV Cache是为了解决自回归生成中的重复计算问题。在生成每个新token时,模型需要关注前面所有的token。KV Cache将已经计算过的键(K)和值(V)缓存起来,避免了重复计算,是一种典型的空间换时间策略。然而,它带来的问题是巨大的显存占用。一个大模型在服务多个长序列请求时,KV Cache占用的显存甚至可能超过模型本身。
因此,如何优化KV Cache成为核心挑战。面试官期待听到多层面的解决方案:
1. 模型架构层面:通过GQA(分组查询注意力)和MQA(多查询注意力)来优化。MQA让所有查询头共享同一组K和V,GQA则是折中方案,让几组查询头共享K和V。这能将KV Cache的体积缩小数倍。
2. 数值层面:对KV Cache进行量化,如从FP16降到INT8或INT4,直接将显存占用减半或减少到四分之一。
3. 系统层面:PagedAttention技术,这是vLLM框架的核心。传统方法为每个请求预分配一块连续的大显存,造成了浪费和碎片化。PagedAttention借鉴了操作系统虚拟内存的分页思想,将KV Cache拆分成非连续的物理块(Block),按需动态分配,通过一个“页表”来管理逻辑到物理的映射,极大地提高了显存利用率和系统吞吐。能够将此技术与操作系统知识类比,会是很好的加分项。
同时,面试官也关心对推理过程不同阶段的理解,即prefill(处理输入提示)和decode(逐词生成)的区别。Prefill阶段处理大块输入,是计算瓶颈;decode阶段一次只生成一个token,是访存瓶颈。理解这种差异对于设计高效的调度策略至关重要,例如连续批处理(Continuous Batching),它允许请求动态加入和退出批次,避免资源闲置,从而提升系统整体吞吐。
四、分布式训练与并行策略
当模型大到单张卡无法容纳时,就需要多卡并行。面试官会考察对不同并行策略的理解、优缺点和适用场景。
* 数据并行(Data Parallelism):最简单,每张卡都有完整的模型副本,处理不同数据,最后通过All-Reduce通信同步梯度。缺点是模型必须能装入单卡显存。ZeRO(零冗余优化器)是数据并行的重要优化,它通过将模型参数、梯度和优化器状态也进行切分,极大降低了单卡显存压力。
* 张量并行(Tensor Parallelism):将模型单层的权重矩阵切分到不同卡上。它解决了单层过大的问题,但每层计算都需要通信,对卡间带宽要求极高,适合NVLink等高速互联场景。
* 流水线并行(Pipeline Parallelism):将模型的不同层放到不同卡上,数据像流水线一样流过。通信量小,但存在“流水线气泡”导致的GPU空闲。

在实际应用中,单一策略往往不够,面试官最关心的是“如何组合使用这些并行策略?” 一个经典的方案是:在拥有高速互联的节点内部使用张量并行,在节点之间使用通信量较小的流水线并行,再在此基础上叠加数据并行来扩大训练批次。能够解释清楚这种组合背后的逻辑——即根据不同互联条件的带宽和延迟特性选择最合适的并行方式——是回答这个问题的关键。
五、模型量化
量化是提升模型效率的常用手段。面试官会考察对其原理的深刻理解,而非停留在“把FP16变INT8模型就变小变快了”的表面。
量化主要从两个维度带来收益。一是减少显存占用,让有限的硬件能容纳更大的模型或服务更多并发。二是减少访存量,这对于访存瓶颈的decode阶段尤其重要。权重数据量减少,意味着从显存搬运到计算单元的时间缩短,从而直接提升速度。量化的核心收益往往在访存端,而非计算端本身。
对于GPTQ、AWQ等具体量化方法,面试官并不要求手推公式,而是想了解其核心思想的差异。例如,GPTQ是基于Hessian信息逐层优化,而AWQ则发现不同权重通道的重要性不同,通过缩放变换来保护重要通道的精度。理解这些方法的共同目标——在有限的比特预算下,将精度优先分配给对模型输出影响最大的权重——比记住具体细节更重要。
六、开放式系统设计
这类问题通常作为压轴出现,旨在考察候选人综合运用知识解决实际问题的能力。例如:“请设计一个支持多用户并发、低延迟、高吞-的老模型推理服务系统。”
一个好的回答框架应从定义约束和目标(延迟、吞吐、模型、硬件)开始,然后沿着请求的生命周期展开设计。在调度层可以引入连续批处理;在内存管理层可以应用PagedAttention;在计算优化层可以集成FlashAttention和量化。此外,提及投机解码(Speculative Decoding)——用一个小模型快速生成草稿,再由大模型一次性验证——这种用额外计算换取延迟降低的策略,会是一个亮点。
准备AI Infra方向的面试,不应孤立地记忆技术名词。更有效的方式是建立一个以Roofline模型为核心的思维框架,用它去分析和理解各种优化技术背后的共通逻辑。同时,阅读核心技术的原始论文,并尽可能亲手实践,感受不同优化策略带来的真实性能变化,这些都将使你的回答更具深度和说服力。