1. 端侧智能的拐点:为什么今年大家都在聊端侧大模型
过去两年,大模型的主战场一直在云端。千亿参数、万卡集群、动辄上百万的推理成本,这些话题占据了绝大部分技术讨论的版面。但从2025年下半年开始,我明显感觉到风向在变——身边做移动端、做嵌入式、做IoT的同行,聊的不再是"怎么调API",而是"怎么把模型塞进设备里跑起来"。
端侧大模型,简单说就是把大模型的能力从云端服务器搬到手机、PC、车机、眼镜、机器人这些终端设备上。它解决的核心问题是三个:延迟、隐私、离线可用性。云端推理再快,网络往返也有几十到几百毫秒的延迟;用户的数据上传到云端,隐私合规风险始终存在;一旦断网,云端方案直接瘫痪。端侧部署把这些问题一次性解决——数据不出设备,响应在本地完成,没有网络也能用。
但"能跑起来"和"真正智能"之间,隔着一条巨大的鸿沟。一个7B模型在手机上跑出20 tokens/s,这只是工程上的及格线。真正的端侧智能,要求设备能理解文字、图像、语音、传感器信号等多种模态的输入,能自主规划任务、调用工具、在多轮交互中保持上下文连贯,甚至能在没有云端介入的情况下完成复杂的决策链条。这就是标题里提到的两个关键词——全模态交互和自主智能体。
CNCC2026上清华刘知远、姚远等专家要讨论的,正是这个核心命题:端侧大模型如何从"能跑"进化到"真正智能"。这个问题不只是学术界的课题,它直接关系到未来两三年内,每一台智能设备的形态和体验。做端侧AI的工程师、做产品定义的PM、做芯片和推理框架的底层开发者,都需要对这条技术路线有清晰的判断。
我在这篇文章里会从工程落地的角度,把端侧大模型走向端侧智能的完整路径拆开来讲——包括全模态交互的技术栈怎么搭、自主智能体的架构怎么设计、端侧推理的性能怎么优化、以及实际部署中会遇到哪些坑。内容会偏实操,但也会把背后的原理讲清楚,让不同背景的读者都能找到有用的部分。
2. 全模态交互:端侧设备如何同时"看懂、听懂、读懂"
2.1 全模态不是多模态的简单叠加
很多人把全模态交互理解成"文本+图像+语音"三个模型拼在一起,各跑各的。这种方案在云端可行,因为算力管够,但在端侧完全行不通。端侧的内存、算力、功耗都是硬约束,你不可能在手机上同时加载一个7B语言模型、一个ViT图像编码器、一个语音识别模型,再加一个语音合成模型——光内存就爆了。
全模态交互在端侧的正确做法是共享底层表示。具体来说,就是用统一的Transformer骨干网络处理不同模态的输入,通过模态特定的编码器把图像、语音、文本映射到同一个语义空间,然后由共享的解码器生成输出。这样做的核心优势是参数复用——底层注意力层和FFN层的参数被所有模态共享,只有模态编码器和输出头是独立的。
以目前主流的端侧全模态架构为例,一个典型的参数分配是这样的:
| 组件 | 参数量占比 | 说明 |
|---|---|---|
| 共享Transformer骨干 | 70-80% | 处理所有模态的语义理解 |
| 视觉编码器 | 8-12% | 图像/视频帧的特征提取 |
| 语音编码器 | 5-8% | 音频信号转语义token |
| 语音解码器 | 5-8% | 文本转语音波形 |
| 模态对齐层 | 2-5% | 跨模态投影和融合 |
这个分配比例背后的逻辑是:语义理解是通用能力,占大头;模态特定的编码解码是专用能力,占小头。实测下来,一个总参数量3B的全模态模型,在骁龙8 Gen 3上可以做到图像理解延迟200ms以内,语音对话首包延迟300ms以内,这个体验已经接近可用。
2.2 端侧全模态的三个技术难点
第一个难点是模态对齐。文本、图像、语音在原始数据层面差异巨大——文本是离散token,图像是连续像素,语音是时序波形。要让共享骨干网络能同时处理这三种输入,必须在编码阶段就把它们映射到相近的表示空间。常见的做法是对比学习预训练,让配对的图文、语音-文本在表示空间里靠近。但端侧模型参数量小,对比学习的效果会打折扣,需要在预训练阶段就用更大的教师模型做蒸馏。
第二个难点是计算调度。全模态意味着多种输入可能同时到达——用户一边说话一边指着屏幕上的图片。这时候模型需要决定先处理哪个模态、怎么融合、什么时候输出。端侧算力有限,不可能所有模态都全量计算。我的经验是采用动态模态路由:用一个轻量级的路由网络判断当前任务主要依赖哪个模态,只激活相关的编码器。比如纯语音对话时,视觉编码器直接跳过,省下30%左右的计算量。
第三个难点是内存管理。全模态模型的KV Cache会随着对话轮次增长,图像和语音的token也会占用大量内存。端侧设备的内存通常只有8-16GB,还要分给系统和其它应用。实际部署中,我一般会把KV Cache做量化压缩,从FP16压到INT8甚至INT4,同时设置滑动窗口,只保留最近N轮的上下文。图像token则采用池化策略,把576个token压缩到64-128个,牺牲少量细节换取内存空间。
2.3 实操:在端侧跑通一个全模态Demo
如果你想自己验证端侧全模态的可行性,我建议从以下步骤入手。硬件选一台8GB内存以上的安卓手机,或者一台带NPU的开发板(比如RK3588)。软件栈推荐用MNN或NCNN作为推理框架,这两个对端侧优化做得比较成熟。
第一步,先单独跑通文本模型。选一个1.5B-3B的模型,用INT4量化,确认在目标设备上能跑到15 tokens/s以上。如果这一步都跑不动,后面全模态就不用想了。
第二步,加入视觉编码器。用一个轻量级的ViT(比如MobileViT或EfficientViT),把图像编码成64-128个token,喂给语言模型。测试图像描述任务的延迟,目标是在500ms内完成一次"看图说话"。
第三步,加入语音模块。语音识别可以用Whisper Tiny或Paraformer的端侧版本,语音合成用VITS的轻量版。注意语音模块的采样率和帧率要和主模型对齐,否则会出现时序错乱。
第四步,做模态融合测试。让模型同时接收一张图片和一段语音指令,比如"描述一下这张图里的人在做什么",看模型能否正确关联视觉和语音信息。这一步最容易出问题,常见的是模态注意力权重分配不均,模型只关注文本忽略了图像。
注意:端侧全模态调试时,一定要用真实设备测功耗和发热。我见过太多在开发板上跑得好好的方案,一到手机上就因为温控降频变得卡顿。建议连续跑30分钟压力测试,观察帧率衰减情况。
3. 自主智能体:从"被动应答"到"主动规划"的关键跨越
3.1 端侧智能体和云端智能体的本质区别
云端智能体(比如各种Agent框架)的核心逻辑是"大模型+工具调用+记忆系统",依赖强大的云端模型做规划和推理。端侧智能体面临完全不同的约束:模型小、算力弱、内存少,但同时对延迟和隐私的要求更高。
这就决定了端侧智能体不能照搬云端架构。云端可以用GPT-4级别的模型做复杂规划,端侧只能用3B以下的模型,规划能力天然弱一截。我的实践体会是,端侧智能体必须走**"小模型+强约束+预定义技能"**的路线,而不是追求通用规划能力。
具体来说,端侧智能体的架构通常包含四个模块:
- 意图识别模块:判断用户当前想做什么,用一个小分类模型(几百M参数)就够
- 任务规划模块:把意图拆解成可执行的步骤,用规则引擎+小模型结合的方式
- 技能执行模块:调用预定义的工具函数,比如发消息、设闹钟、查天气
- 记忆管理模块:维护短期对话上下文和长期用户偏好
这个架构的关键在于,规划模块不追求完全自主,而是在预定义的技能空间内做组合。比如用户说"帮我安排明天上午的会议",端侧智能体不需要理解"安排会议"的所有语义,只需要识别出这是"日历操作"意图,然后调用预定义的日历技能,填入时间、参与者等参数。
3.2 端侧智能体的规划能力怎么练
小模型的规划能力是端侧智能体最大的瓶颈。一个3B模型,你让它做多步推理,它很容易跑偏。我的解决方案是分阶段训练+推理时约束。
训练阶段,先用云端大模型生成大量的任务规划数据,然后用这些数据微调端侧小模型。数据格式很关键,我一般用这种结构:
{ "user_input": "帮我找一下上周拍的那张有猫的照片,发给我妈", "plan": [ {"step": 1, "action": "search_photos", "params": {"keyword": "猫", "time_range": "last_week"}}, {"step": 2, "action": "select_photo", "params": {"index": 0}}, {"step": 3, "action": "send_message", "params": {"contact": "妈妈", "content": "photo"}} ] }微调的时候,损失函数只计算plan部分的token,user_input部分做mask。这样训练出来的模型,规划准确率能比通用小模型提升30%以上。
推理阶段,用约束解码限制输出空间。比如强制模型只能输出预定义的action名称,参数值从预定义的枚举里选。这样即使模型规划能力有限,也不会输出完全无效的动作。实测下来,加了约束解码之后,端侧智能体的任务完成率从不到50%提升到80%以上。
3.3 记忆系统:端侧智能体的"长期记忆"怎么做
端侧智能体要真正智能,必须有记忆。但端侧内存有限,不可能把所有历史对话都存下来。我的做法是分层记忆:
- 工作记忆:最近3-5轮对话,完整保留,存在内存里
- 短期记忆:最近1-2天的关键信息,压缩成摘要,存在本地数据库
- 长期记忆:用户偏好、常用联系人、习惯设置,结构化存储,随时可查
工作记忆直接拼接到模型输入里。短期记忆用一个小模型做摘要,每轮对话结束后更新。长期记忆用键值对存储,需要的时候通过检索注入。
这里有个坑:摘要模型本身也要消耗算力。如果每轮对话都做摘要,端侧设备扛不住。我的优化是异步摘要——对话过程中不做摘要,等设备空闲或者充电时再批量处理。这样对用户体验没有影响,但能省下大量实时算力。
实操心得:端侧记忆系统的存储格式建议用SQLite,不要用JSON文件。SQLite的读写效率高,支持索引,而且崩溃恢复能力强。我早期用JSON存记忆,设备意外重启后数据经常损坏,换成SQLite之后再没出过问题。
4. 端侧推理优化:让大模型在手机上跑得动、跑得快、跑得久
4.1 量化:端侧部署的第一道门槛
端侧部署绕不开量化。FP16的7B模型需要14GB内存,手机根本装不下。量化到INT4,内存降到3.5GB,这才有部署的可能。
但量化不是简单的精度截断。我试过直接对训练好的模型做PTQ(训练后量化),精度掉得很厉害,尤其是全模态模型,视觉和语音模块对量化特别敏感。后来改用QAT(量化感知训练),在训练阶段就模拟量化误差,精度恢复了很多。
具体参数选择上,我的经验是:
| 模块 | 推荐量化精度 | 理由 |
|---|---|---|
| 语言模型主体 | INT4 | 参数量大,对精度不敏感,省内存优先 |
| 视觉编码器 | INT8 | 图像特征对精度敏感,INT4会明显掉点 |
| 语音编码器 | INT8 | 音频信号动态范围大,需要更高精度 |
| 输出头 | FP16 | 参数量小,保持精度不影响性能 |
| KV Cache | INT8 | 平衡内存和精度,INT4会导致长对话崩坏 |
这个混合精度的方案,在保持95%以上原始精度的同时,把总内存占用控制在4GB以内,主流旗舰手机都能跑。
4.2 推理框架选型:MNN、NCNN、TFLite怎么选
端侧推理框架的选择直接影响部署效率和运行性能。我实际用过的几个框架,对比如下:
| 框架 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|
| MNN | 阿里出品,对Transformer优化好,支持动态shape | 文档偏少,社区活跃度一般 | 安卓/iOS通用部署 |
| NCNN | 腾讯出品,纯C++实现,无依赖,体积小 | 对新兴算子支持滞后 | 嵌入式设备、IoT |
| TFLite | 谷歌官方,生态完善,工具链成熟 | 对非TensorFlow模型转换麻烦 | 安卓为主,配合NPU |
| ONNX Runtime | 跨平台好,算子覆盖全 | 移动端优化不如专用框架 | 桌面端、边缘服务器 |
我的建议是:如果是安卓手机部署,优先用MNN,它对ARM CPU和GPU的优化最到位;如果是嵌入式Linux设备,用NCNN,编译简单,运行稳定;如果设备有专用NPU(比如高通Hexagon、联发科APU),用厂商提供的SDK,能发挥最大算力。
4.3 性能调优:从20 tokens/s到50 tokens/s的实操路径
端侧推理的性能优化是个系统工程。我在一个骁龙8 Gen 2设备上,把一个3B模型从20 tokens/s优化到50 tokens/s,主要做了以下几件事:
第一,算子融合。把LayerNorm、残差连接、激活函数这些相邻算子合并成一个,减少内存读写次数。这一步能提升15-20%的性能。
第二,KV Cache复用。多轮对话时,前面轮次的KV Cache不需要重新计算,直接复用。实现上要注意Cache的索引管理,避免越界。
第三,投机解码。用一个小模型(比如0.5B)做草稿,大模型做验证。小模型快速生成多个候选token,大模型一次验证。实测能提升1.5-2倍速度,但需要额外内存存放小模型。
第四,线程亲和性设置。把推理线程绑定到大核上,避免被小核调度拖慢。安卓上可以用taskset或者sched_setaffinity实现。
第五,内存池预分配。推理过程中频繁malloc/free会严重影响性能。提前分配好内存池,所有中间张量从池里取,用完归还。这一步能减少30%以上的延迟抖动。
注意:性能优化不要一次性全上,要逐项测试。我见过有人同时开了算子融合和投机解码,结果两个优化互相干扰,性能反而下降。建议每做一项优化,都用benchmark跑一遍,确认有正向收益再继续。
5. 端侧智能的落地场景与真实挑战
5.1 哪些场景已经能落地,哪些还在探索
端侧智能不是万能药,它有明确的适用边界。根据我的观察,目前已经能落地的场景包括:
离线语音助手。这是最成熟的场景。端侧全模态模型可以做到离线语音识别+语义理解+语音合成,延迟控制在500ms以内。车载场景尤其需要,因为隧道、地下车库经常没信号。
隐私敏感的文档处理。比如医疗记录、法律合同、个人日记,用户不愿意上传云端。端侧模型可以在本地完成摘要、问答、信息提取,数据全程不出设备。
实时视觉交互。比如AR眼镜、智能门锁、工业质检,需要毫秒级响应,云端往返延迟不可接受。端侧视觉模型可以在本地完成目标检测和识别。
还在探索中的场景包括:端侧自主智能体做复杂任务规划、端侧多设备协同、端侧持续学习。这些场景的技术难度更高,但潜力也更大。
5.2 真实部署中遇到的五个坑
坑一:模型转换丢算子。从PyTorch转到端侧框架时,经常遇到不支持的算子。我的做法是提前用torch.jit.trace导出计算图,检查所有算子是否在目标框架的支持列表里。不支持的算子要么用等价算子替换,要么自己写自定义实现。
坑二:不同设备的精度差异。同一个量化模型,在高通芯片上精度正常,在联发科芯片上可能掉点。原因是不同NPU对量化的舍入方式不同。解决方案是在多个设备上做精度校准,找出最鲁棒的量化参数。
坑三:温控降频。手机跑大模型,几分钟后就会发热降频。我的应对策略是动态调整推理精度——温度低时用INT8,温度高时切到INT4,牺牲少量精度换取稳定性。
坑四:内存碎片。长时间运行后,内存碎片会导致分配失败。解决方案是用固定大小的内存池,所有张量分配都从池里走,避免碎片化。
坑五:多任务冲突。端侧设备上不止跑一个模型,还有系统应用、其它AI功能。资源竞争会导致推理延迟飙升。我的做法是给推理线程设置优先级,同时监听系统负载,负载高时主动降级(比如跳过视觉编码)。
5.3 端侧智能体的评估指标
怎么判断一个端侧智能体是否"真正智能"?我一般看这几个指标:
| 指标 | 及格线 | 优秀线 | 测量方法 |
|---|---|---|---|
| 任务完成率 | 70% | 90% | 预定义任务集测试 |
| 首包延迟 | 500ms | 200ms | 从输入到第一个输出token |
| 多轮连贯性 | 3轮 | 10轮 | 人工评估上下文保持 |
| 离线可用性 | 核心功能可用 | 全部功能可用 | 断网测试 |
| 内存占用 | <4GB | <2GB | 峰值内存监控 |
| 连续运行稳定性 | 30分钟 | 2小时 | 压力测试无崩溃 |
这些指标里,我觉得任务完成率和多轮连贯性最能反映智能体的真实水平。很多Demo看起来炫酷,但一测任务完成率就露馅——稍微复杂一点的指令就执行不了。
6. 从工程视角看端侧智能的未来路径
6.1 模型架构的演进方向
端侧智能的下一步,模型架构会往两个方向走。一个是更极致的稀疏化,用MoE(混合专家)架构,每次推理只激活部分参数。端侧MoE的挑战在于专家路由的开销,但如果能把路由网络做得足够轻量,整体算力消耗可以降到Dense模型的1/3。
另一个方向是端云协同。端侧模型负责实时交互和隐私敏感任务,云端模型负责复杂规划和知识密集型任务。两者之间通过一个轻量级的协议通信,端侧决定什么时候需要求助云端。这个架构的关键是端侧要有"知道自己不知道"的能力,这需要模型具备良好的不确定性估计。
6.2 硬件层面的机会
端侧智能的爆发,离不开硬件的支持。目前旗舰手机的NPU算力已经到40-60 TOPS,跑3B模型绰绰有余。但内存带宽和功耗仍然是瓶颈。下一代端侧芯片,我期待看到三个改进:更大的片上内存(减少DDR访问)、更高效的稀疏计算单元、更精细的功耗管理。
对于开发者来说,现在入局端侧智能是个好时机。硬件能力已经跨过及格线,软件栈也在快速成熟。再晚一两年,等生态定型了,机会窗口就小了。
6.3 给不同背景读者的建议
如果你是算法工程师,建议从模型压缩和量化入手,这是端侧部署的核心技能。同时要了解端侧推理框架的算子支持情况,避免设计出无法部署的模型结构。
如果你是应用开发者,建议先跑通一个端侧文本模型,熟悉整个部署流程。然后逐步加入视觉和语音模块,理解全模态的工程挑战。智能体部分可以先从规则引擎做起,再慢慢引入模型规划。
如果你是产品经理,建议重点关注端侧智能能带来的体验差异——离线可用、零延迟、隐私安全。这些是云端方案无法替代的价值点。同时要管理好预期,端侧智能体的能力边界比云端窄,产品设计要在边界内做文章。
CNCC2026上刘知远、姚远等专家的讨论,大概率会围绕这些方向展开。端侧智能不是单一技术的突破,而是模型架构、推理优化、硬件能力、应用场景多个维度共同演进的结果。我在实际项目中体会最深的一点是:端侧智能的瓶颈往往不在模型本身,而在工程细节。一个在论文里精度很高的模型,部署到设备上可能因为内存碎片、温控降频、算子不支持等问题变得不可用。解决这些问题需要的不是算法创新,而是对端侧系统的深入理解和大量调试经验。
最后分享一个我在端侧部署中总结的小技巧:永远在真实设备上做最终验证。模拟器、开发板、工程机的结果都可能和量产设备有差异。我吃过好几次亏,在开发板上跑得好好的方案,到了手机上就因为DDR带宽不足变得卡顿。现在我养成的习惯是,任何优化方案都要在至少三款不同芯片的设备上验证,确认一致性后再上线。