公司岗位题库

快手 算法面经

29 道题 39 个标签 29 条出现记录

算法工程师相关题目

LLM 推理中做 KV Cache sparse 计算时,vLLM/Triton 实现为什么可能选择稀疏索引或稀疏块,而不是直接用 dense mask?

这题考的是稀疏注意力在推理引擎里的真实性能取舍。dense mask 在数学上能表达稀疏模式,但计算和访存仍接近 dense attention;而稀疏索引或稀疏块能让 kernel 只读取和计算被选中的 KV cache,从而节省显存带宽、减少无效 FLOPs,并更适合 vLLM 这类分页 KV 和 Triton 块级并行实现。

SmoothQuant 为什么要做 activation/weight 平滑?平滑参数如何设定,用激活分布判断模型是否适合时应关注 input channel 还是 output channel?

这道题考察对 SmoothQuant 的核心动机、等价变换和校准维度的理解。回答时要先说明 LLM 的激活 outlier 会让 INT8 activation 量化特别困难,而 SmoothQuant 通过按输入通道缩放,把一部分动态范围压力从 activation 平滑地迁移到 weight 上,从而让 W8A8 推理更稳定。关键点不是笼统地说做归一化,而是说明缩放不改变浮点计算语义、参数需要用校准集和逐层误差选择,并明确判断激活分布时主要看线性层的 input channel 维度。

AWQ 和 GPTQ 的量化原理有什么区别?在 LLM 推理部署中它们各自适合什么取舍?

这道题要求区分 AWQ 和 GPTQ 都是大模型后训练量化方法,但优化目标和工程取舍不同。GPTQ 更像基于二阶近似的逐块权重量化误差补偿,利用校准激活构造 Hessian 近似来最小化层输出重构误差;AWQ 则强调 activation-aware 的显著权重保护,通过观察激活通道重要性和缩放搜索减少关键通道误差。好的回答要能讲清原理差异、校准成本、精度与速度、kernel 适配、以及在 LLM 推理部署中的选择标准。

分布式 LLM 训练中 AllReduce、AllGather、ReduceScatter 和 AllToAll 分别解决什么通信问题,哪些并行场景会用到它们?

这道题考察分布式训练中 collective communication 的语义和并行策略映射。回答要先把 AllReduce、AllGather、ReduceScatter、AllToAll 的输入输出关系讲清,再说明它们分别解决梯度汇总、参数或激活拼接、归约后分片、个性化交换等问题。进一步要能联系数据并行、张量并行、ZeRO/FSDP、序列并行、专家并行和 MoE token dispatch,指出通信量、同步开销、拓扑和 overlap 对训练效率的影响。

大模型训练显存如何估算,参数、梯度、优化器状态、激活和临时缓存各占哪些部分?

大模型训练显存可以先拆成 model states、activations、temporary buffers、通信缓存和碎片/框架开销。model states 包括参数、梯度和优化器状态;以 Adam 混合精度训练为例,常见粗估是参数 bf16/fp16 2P、梯度 2P、Adam 一阶和二阶矩 fp32 8P、可选 fp32 master weights 4P,总计约 12P 到 16P bytes。除此之外,activation 随 batch、sequence length、hidden size 和层数增长,长上下文 attention 还可能带来平方项;临时缓存包括 attention workspace、GEMM workspace、logits、通信 bucket、all-gather buffer 和内存碎片。估算时要同时考虑并行策略、ZeRO 分片、activation checkpointing、精度和 micro-batch。

同题还出现在 1 个公司岗位

单机多卡和多机多卡训练的核心差异是什么,如何根据互联拓扑、通信开销和并行策略做选择?

这道题考察分布式训练的系统判断。单机多卡和多机多卡的差异不只是 GPU 数,而是互联拓扑、通信延迟、带宽、故障域、调度、存储和并行策略。好答案要能按显存瓶颈、计算/通信比、batch、模型规模和网络条件选择 DDP、FSDP/ZeRO、张量并行、流水线并行或组合方案。

同题还出现在 1 个公司岗位