夜雨聆风学习资料网

ARTICLE · 1128904

端侧AI不只拼算力:内存、存储和模型压缩才是手机的硬门槛

端侧AI不只拼算力:内存、存储和模型压缩才是手机的硬门槛

当手机和个人电脑开始运行越来越大的本地模型,消费者最容易看到的是芯片宣传页上的算力数字:每秒多少次运算、神经处理单元有多少核心、某一代处理器比上一代快了多少。但真正决定一个模型能不能在设备上稳定工作的问题,往往藏在规格表的另一边:内存能不能装下,数据能不能及时搬运,存储能不能承受频繁读取,模型压缩后是否还保留足够能力。

端侧AI的性能,最终由整条数据通路决定,而不是由一颗芯片单独决定。

先分清三个容易混淆的数字

讨论端侧模型,第一步不是比较跑分,而是把模型大小、运行内存和存储空间分开。模型文件保存在闪存里,加载到内存后才能被处理器访问;推理过程中还会生成激活值和上下文缓存,它们也要占用内存。一个模型文件能装进设备,不代表它能在设备上流畅运行。

如果把模型比作一本工具书,存储像是仓库,内存像是工作台,计算单元像是使用工具的人。仓库里有书不等于工作台足够大;工作台足够大,也不等于工具能在需要时及时拿到资料。端侧体验卡顿,可能来自任何一个环节。

对手机而言,内存还要和操作系统、前台应用、相机、图形界面以及后台服务共享。对个人电脑而言,系统可以借助更大的内存或显存,但共享内存架构仍然会受到带宽和访问延迟的约束。所谓“设备端运行”,从来不是把云端模型原封不动地搬到本地。

内存容量决定模型能否进场

大模型的参数需要以某种数值格式存储。使用更高精度的格式,模型通常更容易保持原有能力,但占用空间更大;使用更低比特的量化格式,可以显著减少权重体积,却会引入精度损失、部署适配和算子支持等问题。

模型加载只是第一笔内存开销。生成文本时,上下文越长,键值缓存越大;处理图片、声音或视频时,还会增加多模态编码器和中间特征。用户只看到一个聊天窗口,设备内部却要同时管理模型权重、缓存、激活值和系统任务。

这也是为什么“参数少一点”不一定意味着体验差,“参数大一点”也不一定意味着效果好。一个经过良好压缩、算子布局合理的模型,可能比一个更大但没有针对终端优化的模型更适合本地运行。终端部署追求的是能力、体积、速度和功耗之间的平衡,而不是单一维度的最大值。

能被下载的模型,不一定是能被运行的模型;能被运行的模型,也不一定是愿意长期运行的模型。

内存带宽决定数据搬得快不快

容量解决“能不能装下”,带宽解决“能不能及时供给”。神经网络推理会反复读取权重,并把中间结果传给不同的计算单元。如果计算单元很强,却经常等待数据,峰值算力就无法转化为用户能够感知的速度。

端侧设备通常采用CPU、GPU、NPU等异构计算单元。它们可能共享一部分内存,也可能拥有不同的缓存和访问路径。调度系统必须决定哪些算子放在什么单元上、何时搬运数据、如何减少重复拷贝,以及怎样在性能和能耗之间做取舍。

这解释了为什么同一模型在不同设备上的速度差异可能很大。芯片型号只是起点,内存频率、总线宽度、缓存设计、驱动和编译器都会影响最终结果。如果模型频繁在不同内存区域之间搬运,额外的复制时间和功耗可能抵消专用加速器带来的收益。

端侧AI的工程目标因此不是让某个单元永远满载,而是让数据在正确的时间到达正确的位置。一个看似不那么强的设备,如果软件栈减少了等待和拷贝,可能给出更稳定的交互体验。

存储不是仓库,而是启动速度的一部分

很多设备把模型放在闪存中,首次使用时加载到内存。模型越大,启动和切换时间越长;当系统需要同时管理多个模型时,存储读写还会影响应用的响应。对用户而言,这表现为功能打开得慢、第一次回答需要等待,或者模型切换时出现明显停顿。

存储速度并不能直接替代内存容量。把一部分模型放在更慢的存储里,确实可以减少常驻内存压力,但每次访问都要付出额外延迟,频繁换入换出还会增加能耗。如何把最常用的层、词表和缓存留在更快的位置,是运行时设计的重要工作。

端侧模型的实际体验也受到更新机制影响。模型需要修复缺陷、适配新系统和支持新功能,设备要为模型文件留下足够的空间。一个只在实验室里勉强运行的模型,如果没有考虑下载、更新、回滚和多版本共存,就很难变成普通用户每天都会使用的功能。

低比特量化改变了部署边界

模型压缩最常见的方式之一是量化,也就是用更少的比特表达权重或激活值。FP16、INT8、INT4等格式各有适用场景。比特数降低后,权重占用和内存带宽压力可以减少,部分设备也更容易利用专用整数运算单元。

但量化不是简单地把文件压缩后解压。不同层对精度的敏感程度不同,注意力、嵌入、输出层和多模态模块可能需要不同的处理策略。量化后的模型还要经过校准、评测和硬件适配,才能确认它在真实任务中没有出现明显退化。

优秀的量化方案会同时考虑模型结构、数据分布和目标设备。它不只关注平均分数,也要看长上下文、工具调用、图像理解、中文表达和异常输入等场景。对于终端产品来说,稳定和可预测往往比某个基准测试上的最高分更重要。

压缩的价值,不是把模型变小就结束,而是让模型在目标设备上保持可用。

NPU并不是一颗独立的魔法芯片

用户常把NPU理解成“专门负责AI的处理器”,但它通常需要和CPU、GPU、内存、驱动以及编译器一起工作。模型中的某些算子可能得到NPU加速,另一些算子仍然要交给CPU或GPU处理。如果算子之间频繁切换,调度开销就会变得明显。

端侧部署因此高度依赖软件栈。模型格式转换、算子融合、内存布局、线程调度和功耗策略都会影响结果。厂商为同一类硬件提供的工具链不同,模型开发者也需要针对每个平台进行测试。所谓“一次训练、到处运行”,在终端上往往要经过多轮转换和验证。

更现实的做法,是为每个目标设备定义性能预算。这个预算包括首次响应时间、持续生成速度、峰值内存、平均功耗、温度和后台共存能力。只有把这些指标放在一起,产品团队才能判断一个模型是否真正适合上线。

为什么端侧AI会走向混合部署

端侧和云端不是二选一。设备本地适合处理隐私敏感、需要低延迟或网络不稳定的任务;云端适合处理复杂推理、长文本和需要更大模型的任务。真正成熟的产品,会根据任务类型、设备状态和用户授权,在本地与云端之间选择路径。

混合部署对内存管理提出了新要求。本地模型不能因为短时间任务就占满全部资源,也要能在设备发热、低电量或用户打开相机时降低负载。云端回传内容也需要经过权限和隐私处理,不能为了体验而默认上传所有上下文。

这意味着端侧AI的竞争不只发生在芯片和模型公司之间,还发生在操作系统、编译器、应用框架和数据治理系统之间。谁能把模型、硬件和用户授权组织成一个可解释的流程,谁才更可能把“本地智能”做成长期功能。

端侧产品真正应该比较什么

第一是稳定性。模型连续运行一段时间后是否降频,后台切换是否丢失上下文,低电量时是否能优雅降级,这些问题比短时峰值速度更接近真实体验。

第二是响应链路。除了首个字出现的时间,还要看模型加载、上下文准备、算子调度和输出渲染分别花费多少。用户感受到的是一条完整链路,而不是某个芯片单元的理论吞吐。

第三是隐私边界。哪些内容留在本地,哪些内容可以上传,用户是否知道当前使用的是本地模型还是云端模型,都应该被清楚地说明。端侧AI如果只强调“更快”,却不说明数据去了哪里,产品信任就会留下空白。

第四是可升级性。模型会变,系统会变,硬件不会每天更换。一个优秀的端侧架构需要允许模型替换、量化版本共存和能力逐步下放,而不是每次更新都要求用户换设备。

写在最后:内存墙之后还有系统墙

端侧AI的发展正在把注意力从单一算力指标拉回整机工程。内存容量决定模型能否进场,内存带宽决定数据能否及时供给,存储决定加载和切换是否顺畅,量化决定能力与体积如何平衡,软件栈决定这些硬件资源能否真正协同。

未来的本地模型可能更小、更快、更节能,也可能通过混合部署获得更大能力。但无论模型名字怎么变化,终端厂商都绕不开几个朴素问题:模型占多少内存?长上下文会吃掉多少缓存?设备发热后还能维持多久?系统如何在多个任务之间调度?用户能否清楚地知道数据走了哪条路径?

当算力不再是唯一瓶颈,端侧AI的胜负手就从芯片宣传页移动到了整机数据通路。


关注公众号,获取更多精彩内容!

相关学习资料