1. 端侧大模型部署工程师到底在做什么
1.1 这个岗位的真实工作画像
先把这个岗位拆开来看。端侧大模型部署工程师,核心任务只有一句话: 把训练好的大模型塞进手机、车机、开发板、PC这些终端设备里,让它跑得动、跑得快、跑得稳。 听起来简单,做起来是另一回事。
我接触过不少从算法岗转过来的朋友,第一反应是“不就是量化一下导出ONNX吗”。真上手才发现,模型在服务器上跑得好好的,一到端侧就各种问题:内存爆了、算子不支持、精度掉了、发热降频、首token延迟高得离谱。这些问题的根源在于,端侧和云端是两个完全不同的战场。
云端部署,你有A100/H100,有几百GB显存,有成熟的推理框架和运维体系。端侧呢?一台手机可能只有8GB内存,NPU算力在几TOPS到几十TOPS之间,还要和相机、显示、通信模块抢带宽。你面对的是一个 资源极度受限、硬件高度碎片化、软件栈极不统一 的环境。
这个岗位的日常工作大致分几块:模型侧要做量化、剪枝、蒸馏、算子替换;工程侧要做推理引擎适配、内存管理、多线程调度、KV Cache优化;硬件侧要理解NPU/GPU/CPU的异构计算架构,知道什么算子该放在哪个单元上跑;业务侧还要和产品对齐延迟指标、功耗预算、精度容忍度。说白了,这是一个 横跨算法、编译、系统、硬件的交叉岗位 。
1.2 为什么这个岗位突然变得抢手
大模型从云端往端侧迁移,背后有几个推力。一是隐私和合规需求,用户数据不出设备是很多场景的硬要求。二是延迟,云端往返动辄几百毫秒,端侧可以做到几十毫秒甚至更低。三是成本,每次推理都调云端API,用户量一大账单很吓人。四是离线可用性,车机、工业设备、户外场景不一定有稳定网络。
但真正让这个岗位变稀缺的,是 人才供给的结构性错配 。传统移动端部署工程师熟悉的是CNN小模型、TFLite、NCNN那一套,对大模型的Transformer架构、KV Cache机制、注意力算子优化不熟。而算法工程师懂Transformer,但不懂端侧的内存布局、算子融合、硬件特性。两边都懂的人,市场上确实不多。
热搜词里出现的NPU、RK3588、ComfyUI调用Intel NPU、Ollama为什么不支持NPU,这些其实都指向同一个焦虑: 硬件厂商在推NPU,但软件生态还没跟上,中间这层适配和优化的工作,就是端侧部署工程师的价值所在。
2. 硬功夫拆解:从Transformer到NPU的完整技术栈
2.1 Transformer架构:你必须理解到能手写的程度
热搜里“transformer手写”“transformer代码”“transformer模型详解”出现频率很高,说明很多人意识到基础不牢。我的建议是: 不要只停留在看懂The Illustrated Transformer的层面,要能手写一个带KV Cache的Decoder推理流程。
为什么?因为端侧部署的很多优化,都建立在对计算图的精确理解上。比如KV Cache,如果你不理解自回归生成时每步只有最后一个token的Query是新的,而Key和Value需要缓存历史信息,你就无法理解为什么端侧推理的内存占用会随序列长度线性增长,也就无法做针对性的内存优化。
一个标准的Transformer Decoder层,推理时包含这些计算:LayerNorm、QKV投影、注意力打分、Softmax、注意力加权、输出投影、残差连接、FFN(两层线性加激活)。端侧部署时,每一块都有优化空间。LayerNorm可以融合进前一个算子,QKV投影可以合并成一个矩阵乘,Softmax在NPU上往往有专用指令,FFN的中间维度是参数量大头,量化时要特别小心。
我见过不少部署失败的案例,根源就是工程师对计算图的理解停留在“输入输出对得上”的层面,没有深入到算子级别。一旦精度出问题,就只会调量化参数,不知道问题出在哪个算子的数值范围上。
2.2 KV Cache:端侧内存的头号杀手
KV Cache是自回归生成的核心机制,也是端侧部署最头疼的问题之一。原理不复杂:生成第t个token时,需要用到前t-1个token的Key和Value。如果每步都重新计算,计算量是O(n²);缓存下来,每步只需要计算新token的QKV,然后和缓存的KV做注意力,计算量降到O(n)。
但代价是内存。以LLaMA-7B为例,假设batch size为1,序列长度2048,FP16精度,KV Cache的大小大约是:2(K和V)× 32(层数)× 32(头数)× 128(头维度)× 2048(序列长度)× 2字节 ≈ 1GB。这还只是7B模型,如果是13B、70B,或者序列更长,内存占用会迅速膨胀。
399




被折叠的 条评论
为什么被折叠?



