面灵AI→

大疆 9.23 算法类笔试记录:大模型训练与端侧推理场景题

轮次
笔试
时间
2026-09
来源
牛客网

《面试题目》

  1. 单选题、多选题、判断题(覆盖大模型训练相关知识)。
  2. 问答题。
  3. 场景题:设计一个手机端自然语言回答助手,如果多模态大模型生成 token 的速度慢,请从 KV Cache、权重压缩等方面给出解决方案。

《参考解析》

端侧推理慢怎么优化:先分清是「算得慢」还是「搬得慢」:答题要有一个可落地的分析框架。先用 profiler 把一次前向拆成 prefill(处理输入,算力密集)和 decode(逐 token 生成,显存/内存带宽密集)两段——端侧 decode 阶段的瓶颈几乎总是权重与 KV Cache 的读带宽,所以优化的主线是「少读字节 + 少读次数」。围绕这条主线分四层给方案:模型层、缓存层、解码层、系统层。

KV Cache 侧的优化:① 量化 KV——把 KV 从 FP16 降到 INT8/INT4(per-channel 或分组量化,配 outlier 处理),显存和带宽直接减半到四分之一,是端侧收益最大的一步,代价是要注意注意力分数精度的退化,需要做校准与回归评测;② 降低 KV 头数——用 MQA / GQA 让多个 query 头共享 KV 头,KV 体积按头数比例缩小;③ 分页与复用——借 PagedAttention 的思路按块管理 KV,避免预分配大块内存造成的浪费,同时支持前缀复用(system prompt、多模态图像 token 的前缀在多轮里只算一次并缓存,配合前缀缓存命中);④ 压缩序列长度——滑动窗口注意力、StreamingLLM 式的「保留 attention sink + 近期窗口」、或对早前 token 的 KV 做驱逐/合并(H2O、SnapKV 一类),把长对话的 KV 增长从线性压成常数级;⑤ 多模态侧的省算——图像 token 往往是长上下文的主要来源,可以先做视觉 token 压缩(resampler / Q-Former 类投影、token merge、按需分辨率),从源头减少 KV 条目。

权重压缩与解码侧优化:权重压缩有三条主流路线:量化(GPTQ / AWQ 的 4bit 权重量化、配合 INT8/INT4 的算子与反量化融合,端侧收益最直接)、剪枝与稀疏(结构化剪枝更容易被 NPU 加速)、蒸馏(用大模型蒸馏一个更小的端侧模型,配合投机解码时还能当 draft 模型)。解码侧最有效的是投机解码——用一个小 draft 模型或 n-gram/Medusa 头一次猜多个 token,大模型一次前向并行验证,端侧算力有余而带宽吃紧时收益明显;再加上连续批处理(多请求合并,把权重读取摊薄)、提前退出(early exit)、以及算子融合与 KV/权重的内存布局优化(减少反量化次数、提高 cache 命中)。系统层则是异构调度:NPU/GPU 跑矩阵乘、CPU 兜底不支持的算子、把 embedding 与采样这类小算子留在 CPU 并避免频繁跨设备拷贝;同时把模型常驻内存、避免每次冷启动加载。最后收尾要点出验收指标:首 token 延迟(TTFT)与每 token 延迟(TPOT)分开看、内存峰值、以及质量回归(困惑度/业务评测集不能掉),因为所有这些优化都是拿精度换速度,必须量化代价。

这套笔试卷面给的备考提示:投的是 Agent 岗,但卷子考的是大模型训练知识(单选、多选、判断里大量是训练侧概念),这说明笔试通常按「大模型算法」通用池出题,不跟着投递岗位走。准备时不要只按 JD 复习 Agent 编排与工具调用,至少要把这几块基础过一遍:Transformer 与注意力(含 MQA/GQA、位置编码)、训练流程(预训练 / SFT / RLHF 与 DPO 的目标差异、数据配比与采样温度)、显存与并行(KV Cache 计算、ZeRO 与张量并行的切分对象)、量化与推理优化(PTQ/QAT、KV 量化、投机解码)、以及多模态基础(视觉编码器、投影层、图文对齐)。判断题和选择题里出现绝对化措辞(「一定」「完全等价」)时基本可以先怀疑;问答题与场景题按「先定位瓶颈 → 分层给方案 → 说明代价与验收指标」的结构写,即使细节记不全,框架分也能拿到大半。