1. 从"设备即环境"这个说法说起:端侧模型到底在赌什么
第一次看到"设备即环境"这个提法,我的反应是:又来了一个造概念的。但把这句话放在端侧模型(On-Device Model)的语境里琢磨了几分钟,我发现它其实精准地描述了一个正在发生的范式转移——模型不再是一个需要你主动去"访问"的远程服务,而是像操作系统、像传感器、像电池一样,成为设备本身的组成部分。
这个判断背后有一个非常硬的逻辑:当模型成为环境,交互的延迟、隐私边界、离线可用性、成本结构全部被重写。
我拿自己手头的事情举个例子。去年我帮一个做工业巡检的团队搭过一套基于视觉的缺陷识别流程,最初方案是把巡检终端拍到的图片传到云端推理,再把结果推回来。听起来很合理对吧?实际跑下来问题一大堆:工厂车间网络信号不稳定,图片上传经常超时;单张高清图上传加推理往返动辄三四秒,巡检员等得不耐烦直接跳过;更麻烦的是,有些客户明确要求产线画面不能出本地。后来我们把模型量化后塞进终端设备本地跑,推理时间压到400毫秒以内,离线也能用,客户那边的合规部门直接放行。
这就是端侧模型的核心价值:它不是"云端的缩小版",而是一种完全不同的产品形态。云端模型拼的是参数规模、推理能力上限;端侧模型拼的是在有限算力、有限内存、有限功耗下,把"够用"的智能塞进用户手边那台设备里。
标题里提到"北大系公司",结合关键词里的"Boxer"和"Agent",我判断这大概率是一家从北大实验室走出来、主打端侧Agent运行时的团队。Boxer这个名字本身就很有意思——拳击手,暗示的是在资源受限的擂台上打出组合拳的能力。而Agent这个词放在端侧语境下,含义比云端Agent更具体:它需要在没有稳定网络、没有充足算力、没有无限上下文窗口的条件下,依然能完成"感知-决策-执行"的闭环。
为什么现在是端侧模型的窗口期?三个条件同时成熟了:
- 模型小型化技术到位:量化(INT8/INT4)、蒸馏、剪枝、MoE稀疏激活这些手段,已经把7B级别的模型压到可以在手机NPU上跑出可用速度。
- 端侧算力上来了:高通骁龙8 Gen系列、苹果A17 Pro、联发科天玑9300,NPU算力普遍到了30-45 TOPS,跑量化后的小模型绰绰有余。
- 用户对延迟和隐私的容忍度在下降:没人愿意为了一个"帮我总结这段文字"的功能等三秒,也没人愿意把自己孩子的照片传到不知道哪台服务器上。
所以"设备即环境"这句话,翻译成大白话就是:模型不再是你要去"用"的东西,而是你设备里一直在那儿、随时响应、不依赖网络、数据不出本机的基础能力层。这个判断如果成立,那端侧模型确实不是云端的补充,而是未来大多数日常AI交互的主战场。
2. Boxer这类端侧Agent运行时,到底在解决什么工程问题
2.1 端侧Agent和云端Agent的本质差异
很多人把Agent理解成"能调工具的LLM",这个理解在云端成立,搬到端侧就太粗糙了。端侧Agent面临的约束条件完全不同,我列个表对比一下:
| 维度 | 云端Agent | 端侧Agent |
|---|---|---|
| 网络依赖 | 必须在线 | 必须离线可用 |
| 推理延迟 | 1-5秒可接受 | 200-800毫秒为目标 |
| 内存预算 | 几十GB随便用 | 通常<2GB,紧张时<512MB |
| 功耗约束 | 基本不考虑 | 直接决定用户体验 |
| 隐私边界 | 数据出设备 | 数据不出设备 |
| 模型能力 | 可以用最大最强的 | 必须用压缩后"够用"的 |
| 上下文窗口 | 128K起步 | 通常4K-8K,极限32K |
| 工具调用 | 可以调任意API | 只能调本地能力或受限网络 |
这张表里最容易被低估的是功耗约束。我在一台安卓设备上做过测试,让一个1.5B的模型持续做意图分类,每秒钟推理一次,半小时后设备温度上升了7度,电量掉了12%。用户可能感觉不到延迟,但一定能感觉到手机发烫和掉电快。所以端侧Agent运行时的第一要务不是"能力多强",而是"在功耗预算内稳定运行"。
2.2 Boxer可能采用的技术路线推演
虽然我没有Boxer的详细技术文档,但基于端侧Agent运行时的通用工程实践,这类系统通常要在以下几个层面做设计:
第一层:模型调度与路由。不是所有请求都需要大模型。一个端侧Agent通常挂载多个不同规模的模型——一个几十MB的小分类器负责意图识别,一个1-3B的模型负责常规对话和工具调用,一个更大的模型(如果设备允许)负责复杂推理。Boxer这个名字暗示的"组合拳",很可能就是指这种多模型路由机制。我实测下来,用一个小模型做意图分类再路由到对应处理链路,比直接上大模型省60%以上的功耗。
第二层:工具调用的本地化。云端Agent调API是发HTTP请求,端侧Agent调工具是调本地能力——读通讯录、发短信、设闹钟、查本地文件、调摄像头。这要求运行时有一套标准化的本地能力接口。Android有Intent系统,iOS有App Intents,但跨平台的统一抽象一直是个难题。如果Boxer做的是跨设备方案,它大概率定义了一套自己的工具描述协议,类似OpenAI的Function Calling格式但针对端侧做了裁剪。
第三层:内存管理。这是端侧最要命的部分。一个3B模型INT4量化后大约1.8GB,加上KV Cache、运行时开销,很容易突破2GB。在手机上这已经是很重的负担了。常见的做法是:模型按需加载、用完即卸;KV Cache用滑动窗口或分页管理;多个模型共享底层内存池。我见过一个方案是把模型权重放在mmap文件里,靠操作系统的页面置换来管理,虽然第一次加载慢,但内存占用可控。
第四层:离线与在线的无缝切换。用户不应该感知到"现在断网了所以功能降级"。端侧Agent需要在网络可用时选择性调用云端增强能力,网络不可用时完全本地闭环。这个切换逻辑如果做得不好,会出现"明明有网但走了本地导致回答质量差"或者"明明没网却卡在等待云端响应"的糟糕体验。
2.3 为什么"端侧模型才是未来"这个判断值得认真对待
我一开始对这个判断是存疑的。云端模型能力增长这么快,端侧那点算力怎么可能追得上?但后来想明白了一件事:用户需要的不是最强模型,而是最合适的模型。
举个特别朴素的例子。你让手机助手帮你"把刚才拍的那张发票信息提取出来记到备忘录里"。这个任务需要GPT-4级别的能力吗?不需要。它需要的是:OCR识别发票字段(本地视觉模型)、结构化提取(小语言模型)、写入备忘录(本地工具调用)。整个链路端侧完全能搞定,而且比云端方案快得多、隐私好得多、还不花Token钱。
云端模型真正不可替代的场景是:开放式复杂推理、大规模知识问答、需要最新信息的查询、多模态深度理解。但这些场景在用户日常交互中的占比,说实话并不高。大部分日常需求是"短链路、明确意图、本地数据"的任务,这正是端侧模型的主场。
所以"端侧模型才是未来"这个判断,更准确的表述可能是:端侧模型会成为大多数日常AI交互的第一入口,云端模型退居为按需调用的增强层。这个结构一旦成立,整个AI应用的架构、商业模式、隐私范式都会跟着变。
3. 端侧Agent落地的几个硬骨头:我踩过的坑和看到的解法
3.1 模型量化后的"能力悬崖"比想象中陡
量化是端侧模型的必经之路,但量化不是免费的午餐。我做过一组对比测试,同一个1.8B模型,FP16、INT8、INT4三种精度下跑同一批意图分类任务:
| 精度 | 模型大小 | 推理延迟(中端手机) | 意图分类准确率 | 工具调用格式正确率 |
|---|---|---|---|---|
| FP16 | 3.6GB | 1200ms | 94.2% | 96.1% |
| INT8 | 1.8GB | 680ms | 93.8% | 95.4% |
| INT4 | 0.9GB | 420ms | 89.1% | 87.3% |
注意看INT4那一列:意图分类只掉了5个点,但工具调用格式正确率掉了近9个点。这意味着什么?模型"听懂"了用户要干什么,但"说不清楚"该调哪个工具、参数怎么填。在Agent场景下,格式错误比分类错误更致命——分类错了顶多答非所问,格式错了直接导致工具调用失败,整个链路断掉。
我后来摸索出的经验是:不要对整个模型统一量化。对格式敏感的输出层、工具调用相关的注意力头,保持INT8甚至FP16;对语义理解部分可以激进到INT4。这种混合精度方案能把模型压到1.2GB左右,同时工具调用正确率保持在94%以上。当然这需要推理框架支持分层精度配置,不是所有端侧推理引擎都做得到。
3.2 上下文窗口是端侧Agent的隐形天花板
云端Agent动辄128K上下文,端侧通常只有4K-8K。这个差距在简单对话里感知不明显,但在Agent场景下会要命。
Agent执行一个任务通常需要:系统提示词(500-1000 Token)+ 工具描述(每个工具100-200 Token,5个工具就是500-1000 Token)+ 对话历史 + 当前用户输入 + 中间推理步骤。你算算,4K窗口里,光系统提示和工具描述就吃掉一半,留给实际任务的空间非常紧张。
我见过一个团队的做法很聪明:把工具描述做成动态加载的。不是所有工具都常驻上下文,而是先用一个小分类器判断用户意图属于哪个领域,只加载该领域相关的3-5个工具描述。这样工具描述从1000 Token压到300 Token以内。代价是多了一次分类推理,但省下的上下文空间让多轮任务成功率提升了20%以上。
另一个技巧是对话历史的摘要压缩。不是简单截断,而是用一个极小的模型(几百MB级别)对历史对话做滚动摘要,把10轮对话压成2-3句话。这个摘要模型可以常驻内存,功耗极低。
3.3 工具调用的"幻觉参数"问题
端侧Agent调本地工具时,最常出的问题是参数幻觉。比如用户说"帮我设个明天早上7点的闹钟",模型输出了{"tool": "set_alarm", "time": "07:00", "date": "2024-01-15"},但今天是2024年1月14日,它把日期算错了。或者用户说"给张三发消息说我晚点到",模型输出了{"tool": "send_message", "contact": "张三", "content": "我晚点到"},但通讯录里有两个张三。
这类问题的根因是:小模型在结构化输出上的精度不够,而且缺乏对本地数据状态的感知。云端模型可以通过大规模RLHF把格式正确率刷到很高,端侧模型没这个条件。
我的解法是在运行时层做参数校验和补全,而不是指望模型一次输出正确。具体来说:
- 时间类参数:运行时用本地时间库做归一化和校验,模型只需要输出"明天早上7点"这样的自然语言,由运行时解析成标准时间。
- 联系人类参数:运行时先做模糊匹配,如果匹配到多个结果,返回给模型让它追问用户,而不是自己猜。
- 数值类参数:运行时做范围校验,超出合理范围就拒绝执行并提示。
这套机制的本质是:把模型从"精确输出者"降级为"意图表达者",精确性由确定性代码来保证。这比逼着小模型做精确结构化输出靠谱得多。
4. 端侧模型的商业逻辑:为什么大厂和创业公司都在押注
4.1 Token成本归零带来的产品形态变化
云端模型按Token计费,这个成本结构直接限制了产品设计。你不敢让Agent随便做多轮推理,不敢让它读长文档,不敢让它7x24小时待命。但端侧模型跑在用户自己的设备上,边际成本是零——用户已经为设备付过钱了,电费也是用户自己出。
这个变化带来的产品可能性是巨大的。我举几个例子:
- 常驻式Agent:一个一直在后台运行、持续感知环境、主动提供建议的Agent。云端方案下这是不可想象的,Token成本会爆炸。端侧方案下,它只是一个功耗优化问题。
- 无限上下文:通过本地RAG和滚动摘要,端侧Agent理论上可以访问用户设备上的所有历史数据,构建一个真正个性化的长期记忆。云端方案下,光是传输和存储这些数据就是天价。
- 隐私敏感场景:医疗、金融、法律这些领域,用户数据不能出设备。端侧模型是唯一可行的方案。
4.2 端侧模型和云端的协作模式
我不认为端侧会完全取代云端。更现实的架构是端云协同:
- 端侧负责:意图识别、简单问答、本地工具调用、隐私数据处理、离线兜底。
- 云端负责:复杂推理、知识密集任务、需要最新信息的查询、多模态深度理解。
- 切换逻辑:端侧Agent判断任务复杂度,简单任务本地闭环,复杂任务把"脱敏后的意图"发给云端,云端返回结果后由端侧整合输出。
这个架构的关键是切换要无感。用户不应该知道这次回答是本地生成的还是云端生成的。我实测下来,只要本地兜底响应足够快(<500ms),用户对偶尔的云端增强几乎没有感知。
4.3 惠普这类传统设备厂商为什么也在关注
热搜词里出现了"惠普"和"端侧模型"的关联,这其实反映了一个趋势:传统设备厂商正在把端侧AI作为差异化卖点。惠普的PC产品线如果预装一个本地运行的Agent,能离线做文档摘要、邮件起草、会议记录整理,这对商务用户是实打实的价值。而且数据不出设备,企业IT部门更容易放行。
我判断接下来一年会看到大量"AI PC""AI Phone"的营销,但真正能跑出体验差异的,不是硬件参数,而是端侧Agent运行时的成熟度。谁的运行时更省电、更稳定、工具生态更丰富,谁就能把"端侧AI"从PPT变成用户真正每天用的功能。
5. 如果你想自己动手验证端侧Agent,我的实操建议
5.1 从最小闭环开始,别一上来就搞大而全
我见过太多团队一上来就想做一个"全能端侧助手",结果三个月过去连一个稳定可用的工具调用都没跑通。正确的做法是先做一个最小闭环:
- 选一个具体场景(比如"本地文件搜索")。
- 选一个够小的模型(1B以下,INT4量化后<600MB)。
- 定义1-2个工具(search_file, open_file)。
- 跑通"用户输入→意图识别→工具调用→结果返回"的完整链路。
- 测量延迟、功耗、成功率。
这个闭环跑通后,再逐步加工具、加模型、加场景。我自己的经验是,第一个闭环通常需要2-3周,但后面的扩展会快得多,因为基础设施已经搭好了。
5.2 推理框架选型:别只看跑分
端侧推理框架的选择,跑分只是参考,真正重要的是:
- 内存占用是否可控:有些框架跑分高但内存峰值吓人,在手机上直接被系统杀掉。
- 是否支持混合精度:前面说过,统一量化会踩能力悬崖。
- 工具调用支持:是否原生支持结构化输出和Function Calling格式。
- 跨平台能力:如果要做多设备方案,跨平台支持是刚需。
我实测过的几个方案里,llama.cpp的端侧部署最灵活,但工具调用需要自己封装;MLC-LLM的编译优化做得好,但自定义程度低;ONNX Runtime Mobile在Windows端表现稳定,适合PC场景。具体选哪个,取决于你的目标设备和团队技术栈。
5.3 功耗优化的几个实用技巧
- 批处理推理:把多个小请求攒到一起推理,比逐个推理省电30%以上。
- 动态频率调整:设备空闲时降低推理频率,有交互时拉满。
- 模型热切换:不常用的模型及时卸载,别常驻内存。
- NPU优先:能用NPU就别用CPU,功耗差3-5倍。
注意:端侧Agent的功耗优化没有银弹,必须针对具体设备和具体场景做profile。我在一台设备上调好的参数,换一台设备可能完全不能用。所以从第一天起就要建立功耗测试的自动化流程。
6. 关于端侧模型未来的一些个人判断
我在这个方向投入了一年多时间,踩了不少坑,也看到了一些让我兴奋的进展。有几个判断我愿意拿出来分享:
第一,端侧模型的竞争焦点会从"模型本身"转向"运行时"。模型开源社区已经把1B-7B级别的模型做得足够好了,接下来拼的是谁能把这些模型在端侧跑得更稳、更省、工具生态更丰富。Boxer这类运行时的价值会越来越凸显。
第二,端侧Agent的杀手级应用可能不是"助手",而是"自动化"。我现在最看好的场景是:端侧Agent持续感知用户的操作习惯,自动完成重复性任务——自动整理下载文件夹、自动填写重复表单、自动归档邮件。这些任务不需要多强的推理能力,但需要低延迟、高可靠、隐私安全,正是端侧的主场。
第三,端云协同的协议标准化会成为一个关键基础设施。现在每家都在自己定义端侧Agent和云端服务的交互格式,这会导致生态碎片化。如果有一个类似MCP(Model Context Protocol)的端云协同标准出现,整个行业的推进速度会快很多。
第四,别低估传统设备厂商的推动力。惠普、联想、戴尔这些厂商有巨大的存量设备基数,它们一旦把端侧Agent作为标配预装,用户触达量是任何App都比不了的。这可能是端侧模型普及的最短路径。
最后说一个我自己的体会:端侧模型这个方向,最难的从来不是技术,而是在约束下做取舍。云端模型可以堆资源解决问题,端侧模型必须在算力、内存、功耗、延迟、能力之间找到那个微妙的平衡点。这个平衡点因设备而异、因场景而异、因用户而异。谁能把这个平衡做好,谁就能真正让"设备即环境"从口号变成现实。