知识库 / 基础设施
GitHub
← 基础设施

LAYER 01 / INFRASTRUCTURE

边缘设备与端侧推理约束

所属: 基础设施层。本页边界: 端侧模型为何必须同时受内存、功耗、带宽和时延约束。

#核心公式

Mpeak=Mweights+MKV+Mact+Mruntime≤Mdevice M_{\mathrm{peak}} =M_{\mathrm{weights}}+M_{\mathrm{KV}}+M_{\mathrm{act}}+M_{\mathrm{runtime}} \leq M_{\mathrm{device}}

核心约束是运行期峰值内存而非权重文件大小;模型能够加载不代表长上下文生成期间不会耗尽内存。

#符号说明

符号 含义 单位/条件
MpeakM_{\mathrm{peak}} 推理期间峰值内存占用 Byte
MweightsM_{\mathrm{weights}} 模型权重占用,近似 NbweightNb_{\mathrm{weight}} Byte
MKVM_{\mathrm{KV}} KV Cache 占用 Byte
MactM_{\mathrm{act}} 临时激活与中间张量占用 Byte
MruntimeM_{\mathrm{runtime}} 运行时、算子工作区与碎片开销 Byte
MdeviceM_{\mathrm{device}} 设备可安全使用的内存容量 Byte
N, bweightN,\ b_{\mathrm{weight}} 参数量、每参数存储字节数 个、Byte
E, P, t, TE,\ P,\ t,\ T 后文中的能耗、平均/瞬时功率、时间变量、请求持续时间 J、W、s、s
L, n, bwL,\ n,\ b_w 层数、上下文长度、每个权重的字节数 正整数、token、Byte
Tlocal, Tload, Tprefill, TdecodeT_{\mathrm{local}},\ T_{\mathrm{load}},\ T_{\mathrm{prefill}},\ T_{\mathrm{decode}} 本地总时延及加载、预填充、解码阶段时延 s
Erequest, P(t)E_{\mathrm{request}},\ P(t) 单请求能耗、时刻 tt 的瞬时功率 J、W
Tremote, Tnet, TcloudT_{\mathrm{remote}},\ T_{\mathrm{net}},\ T_{\mathrm{cloud}} 远端总时延、网络时延、云端计算时延 s

#技术要点

  • 端侧受内存容量、内存带宽、持续功耗和散热四项约束同时限制,约束强度远高于数据中心。
  • 量化、蒸馏、剪枝和稀疏化用于压缩模型,但压缩后的质量损失在长尾任务上不成比例。
  • 隐私保护与离线可用性是端侧部署的结构性优势,而非附加功能。
  • 端云协同是计算与数据传输的重新划分问题,涉及能力门控、隐私约束和故障切换。
  • 移动 SoC 的持续功耗预算通常在 3–5 W 量级,峰值可短时达到 10–15 W,但热设计功耗(TDP)决定可持续性能。
  • 端侧 NPU 的算子覆盖率决定量化模型能否实际加速;硬件不支持的低比特算子会回退到 CPU,抵消压缩收益。

#原理与演进

#完整内存账

  • 上式中的 bweightb_{\mathrm{weight}} 是每参数字节数;4 bit 权重理论约 0.5N0.5N 字节,但实际还需存储量化尺度(scale)、零点(zero-point)、分组元数据和运行时缓冲区。以 GPTQ 4-bit 分组量化为例,group size=128 时,每个权重额外增加约 0.03 字节的尺度开销,实际占用约为理论值的 6%–8%。
  • 推理内存包含 KV Cache、激活和输入输出缓冲。长上下文时 KV 可能成为限制主项,其字节量近似 2⋅L⋅n⋅dkv⋅bkv2 \cdot L \cdot n \cdot d_{\mathrm{kv}} \cdot b_{\mathrm{kv}},其中 dkvd_{\mathrm{kv}} 为 KV 头维度,bkvb_{\mathrm{kv}} 为 KV 存储位宽。具体公式见推理机制。
  • 端侧算力、内存带宽、持续功耗和散热同时约束运行。短时基准测试的峰值速度与长会话的可持续速度是两个不同指标,热节流会使后者显著低于前者。

#端侧技术的因果链

  1. 原始权重超出设备内存 → 量化与蒸馏缩小模型。
  2. 权重可驻留但生成速度不足 → 降低每 token 访存量、缩短有效上下文、控制并发会话数。
  3. 任务复杂度超出本地能力 → 端云分工;本地处理敏感输入或低复杂度请求,复杂请求路由至远端模型。

代价: 模型压缩对复杂推理、长尾知识和多语言能力有不成比例的损害;端云分工引入网络延迟、可用性依赖和版本一致性问题。

#1. 端侧内存容量的完整核算

对参数数 NN、每权重 bwb_w 字节、层数 LL、上下文长度 nn:

Mtotal≈Nbw+MKV(L,n)+Mact+Mruntime. M_{\mathrm{total}}\approx Nb_w+M_{\mathrm{KV}}(L,n)+M_{\mathrm{act}}+M_{\mathrm{runtime}}.
  • 量化权重缩小第一项,但长上下文或多会话可能使 KV 成为新的主项。KV Cache 随上下文长度和并发会话数线性增长,而权重占用是固定的。当 nn 超过某一阈值后,KV 占用可能超过权重。
  • 操作系统、应用进程和其他模型也占内存。移动操作系统的内存管理策略(如 iOS 的 jetsam、Android 的 low memory killer)会在内存压力下终止进程。“模型文件能下载”与“运行时能驻留”是两个不同问题。
  • 启动时的载入峰值可能大于稳定生成时的占用。加载阶段需要同时容纳压缩权重、解压缓冲区和运行时初始化数据,峰值内存可能是稳定状态的 1.5–2 倍。必须区分冷启动峰值与持续运行占用。

#2. 延迟与能耗的约束

Tlocal=Tload+Tprefill+Tdecode,Erequest=∫0TP(t) dt. T_{\mathrm{local}}=T_{\mathrm{load}}+T_{\mathrm{prefill}}+T_{\mathrm{decode}},\qquad E_{\mathrm{request}}=\int_0^T P(t)\,dt.
  • P(t)P(t) 是瞬时功率。相同 token/s 的两种方案若功率不同,电池消耗不同。能耗是功率对时间的积分,而非峰值功率的简单乘积。
  • 持续计算引发热限制,SoC 频率下降,导致 token/s 下降。短基准测试的峰值速度不等于长会话的稳定速度。移动设备的散热能力有限,持续功耗受 TDP 约束。
  • 本地推理无需网络往返,但若模型过小或生成过慢,端到端体验未必优于远程。首 token 延迟(TTFT)和每 token 延迟(TPOT)是端侧用户体验的两个关键指标。

#2.1 端侧硬件的算力与带宽特征

端侧推理的主要硬件平台包括移动 SoC(Apple A/M 系列、高通骁龙、联发科天玑)、边缘加速器(NVIDIA Jetson、Google Coral)和嵌入式 NPU。

平台 内存类型 带宽量级 NPU 算力 典型功耗
Apple M 系列 LPDDR5 100–200 GB/s 16 核 Neural Engine 5–15 W
高通骁龙 LPDDR5X 50–80 GB/s Hexagon NPU 3–8 W
Jetson Orin LPDDR5 100–200 GB/s 275 TOPS (INT8) 15–60 W
嵌入式 MCU SRAM/Flash 1–10 GB/s < 1 TOPS < 1 W

端侧 NPU 的算力以 INT8 或 INT4 TOPS 标称,但算子覆盖率决定实际可达性能。如果模型中的算子不被 NPU 原生支持(如特定的激活函数、非标准注意力变体),编译器会回退到 CPU 或 GPU,导致延迟增加和功耗上升。因此,量化模型的实际加速比取决于硬件-软件协同的算子映射,而非标称 TOPS。

#3. 降低端侧成本的四条路径

方法 主要减少 核心取舍
权重量化 权重字节与访存 离群值与低 bit 误差
KV 压缩/共享 长上下文缓存 注意力信息损失
蒸馏成小模型 参数数与计算 学生容量与长尾能力
任务分流 本地只处理合适任务 路由错误、网络依赖

#3.1 权重量化的方法差异

端侧量化不是单一技术,不同方法在压缩率、精度和硬件适配上有明确差异:

  • GPTQ:逐层量化,使用二阶信息(Hessian 近似)最小化量化误差。4-bit 权重在多数任务上精度损失较小,但量化过程需要校准数据,且对激活的量化支持有限。
  • AWQ:激活感知量化,识别对激活值影响大的权重通道,对其施加更高的量化保护。在 4-bit 下比 GPTQ 有更好的长尾任务精度。
  • GGUF/llama.cpp:为 CPU 和边缘设备设计的格式,支持 2–8 bit 的混合精度量化。Q4_K_M 等混合方案对关键层保留更高精度,在端侧部署中广泛使用。
  • NF4/FP4:4-bit 浮点格式,动态范围优于 INT4,适合权重分布不均匀的场景。QLoRA 在微调中使用 NF4 作为基础量化格式。

量化到 2-bit 或更低时,精度下降加速。离群值(outlier)是低比特量化的主要障碍:少数权重通道的绝对值远大于其他通道,统一缩放因子会导致这些通道溢出或其余通道精度不足。混合精度量化和分组量化是缓解离群值的主要手段。

#3.2 KV Cache 压缩技术

  • GQA/MQA:在架构层面减少 KV 头数。MQA 将所有查询头共享一组 KV,GQA 将查询头分组共享 KV。这是训练时的架构选择,推理时直接减少 KV Cache 大小。
  • KV 量化:将 KV Cache 从 FP16 量化为 INT8 或 INT4。KV 量化的精度损失通常小于权重量化,因为 KV 值的分布相对均匀,且注意力对 KV 精度的敏感度低于权重。
  • 上下文裁剪:滑动窗口注意力、StreamingLLM 等方法丢弃远距 KV,仅保留最近窗口和注意力汇聚点(attention sink)。代价是远距信息丢失。
  • KV 驱逐:H2O、SnapKV 等方法根据注意力权重动态驱逐低重要性 KV 对。在相同内存预算下比固定窗口保留更多有效信息。

#3.3 蒸馏的容量边界

知识蒸馏将大模型(教师)的能力迁移到小模型(学生)。端侧蒸馏面临根本性容量约束:学生的参数容量决定了它能拟合的函数复杂度上限。对于需要多步推理、长尾知识或多语言能力的任务,小模型的表现下降不成比例。

蒸馏的有效场景是任务特化:将通用大模型蒸馏为特定任务(如意图分类、实体抽取、摘要)的小模型,在限定任务分布上保持接近教师的性能。通用能力蒸馏则受学生容量限制。

#4. 端云协同的判别框架

设网络往返与传输耗时为 TnetT_{\mathrm{net}},远端计算耗时为 TcloudT_{\mathrm{cloud}}:

Tremote=Tnet+Tcloud. T_{\mathrm{remote}}=T_{\mathrm{net}}+T_{\mathrm{cloud}}.
  • 若满足下式且本地质量满足任务要求,可本地完成。
Tlocal<Tremote T_{\mathrm{local}}<T_{\mathrm{remote}}
  • 若复杂任务本地质量不足,不能仅因速度快就选本地,需要能力门控(capability gating)。
  • 敏感内容外传受用户权限与数据合规约束;离线场景要求本地保持最低可用能力。
  • 模型拆到端和云之间时,传输中间表征可能比传原始文本更大或更敏感,不能假定拆分必然降低传输成本。

#4.1 端云分工的决策变量

端云分工的决策涉及多维约束:

route(x)=arg⁡min⁡r∈{local,cloud}Cr(x)s.t.Qr(x)≥Qmin⁡,Pr(x)≤Pmax⁡,Tr(x)≤Tmax⁡ \text{route}(x)=\arg\min_{r\in\{\mathrm{local},\mathrm{cloud}\}} C_r(x) \quad \text{s.t.}\quad Q_r(x)\geq Q_{\min},\quad P_r(x)\leq P_{\max},\quad T_r(x)\leq T_{\max}

其中 CrC_r 是综合成本(能耗、网络流量、金钱),QrQ_r 是任务质量,PrP_r 是隐私约束,TrT_r 是时延约束。任何一维不满足,该路由不可行。这一框架说明端云分工不是简单的“本地快就用本地”,而是受质量、隐私、时延和成本的多重约束。

#4.2 网络依赖与故障切换

端云协同引入网络可用性依赖。在网络不可用或高延迟时,系统需要降级到本地模型。这要求本地模型保持最低可用能力,即使这意味着在主路径上本地模型的推理成本高于必要水平。版本一致性是另一个问题:端侧模型和云端模型的版本可能不同步,导致同一请求在两种路径下产生不一致的输出。

#5. 演进中转移的瓶颈

阶段 解决 随之出现的问题
云端统一推理 端设备算力不足 网络、隐私、离线不可用
小模型端侧运行 降低网络依赖 能力与长上下文不足
量化/蒸馏 降内存与功耗 质量和 kernel 适配
端云协同 任务按资源分配 路由、版本一致性与故障处理

评估维度: 权重与 KV 的峰值内存、冷启动时间、首 token 延迟、稳定 token/s、每请求能耗、目标任务正确率。任何一个指标都不足以代表端侧可用性。端侧部署的评估需要同时报告短时峰值性能和长时可持续性能。

#6. 端侧推理的动态瓶颈

端侧可用内存 MfreeM_{\mathrm{free}} 随其他应用变化,模型启动应满足下式,并保留系统运行余量。即使启动成功,随着输出长度增加,KV Cache 持续增长;长对话可能在运行中触及内存上限。移动操作系统的内存回收策略可能在后台终止进程,导致会话中断。

Mweights+MKV+Mruntime<Mfree M_{\mathrm{weights}}+M_{\mathrm{KV}}+M_{\mathrm{runtime}}<M_{\mathrm{free}}

对每生成一个 token,解码需要读取大量权重。若设备可持续带宽为 BmemB_{\mathrm{mem}},权重读取字节数约 MwM_w,在带宽受限近似下 ttoken≳Mw/Bmemt_{\mathrm{token}}\gtrsim M_w/B_{\mathrm{mem}},忽略缓存、并行和计算重叠。量化减少 MwM_w,但若反量化 kernel 慢或硬件不支持低 bit 算子,实际时延未必按位宽同比下降。这一判断可用Roofline 模型进一步分析。

#6.1 内存压力的运行时表现

端侧内存压力表现为三种形式:

  • 启动失败:峰值内存超过可用内存,进程被操作系统终止。
  • 运行中 OOM:KV Cache 随对话增长,在某一长度后触及上限。移动操作系统通常不给进程“内存不足”的警告,而是直接终止。
  • 交换到闪存:部分系统支持将不活跃内存页交换到闪存,但闪存写入寿命有限,且交换延迟远高于内存访问。对于频繁访问的 KV Cache,交换会严重降低生成速度。

#7. 持续性能与峰值性能的区分

端侧设备的功率和散热受限,前几秒 token/s 不代表长会话速度。若设备温度触发降频,计算峰值 PpeakP_{\mathrm{peak}} 变成更低的可持续 PsustP_{\mathrm{sust}};因此需要报告运行一段时间后的稳定速度,而非仅冷启动短测试。

端侧任务还受网络可用性、隐私要求和电池影响。端云选择可写为 min⁡{Clocal,Ccloud+Cnetwork}\min\{C_{\mathrm{local}},C_{\mathrm{cloud}}+C_{\mathrm{network}}\},同时满足质量、时延和权限约束;成本包含能耗、数据传输和服务不可用风险,而非仅金钱。

#7.1 热节流的物理机制

移动 SoC 的热设计功耗(TDP)通常在 3–5 W。当芯片温度达到阈值(通常 80–90°C),动态电压频率调整(DVFS)降低 CPU/GPU/NPU 频率,以减少发热。频率降低直接导致 token/s 下降。

热节流的时间尺度为数十秒到数分钟,取决于散热设计和环境温度。在高温环境或散热受限的设备(如无风扇手机)中,节流可能在 30 秒内发生。因此,端侧性能评估应报告稳态 token/s,而非峰值 token/s。

#8. 压缩与架构选择的判别

现象 第一候选 必须验证
权重本身放不下 权重量化/更小模型 质量下降与实际峰值内存
长对话时崩溃 KV 量化、上下文裁剪、GQA 远距信息丢失
冷启动慢 模型加载与存储布局优化 持续 decode 是否也慢
运行一段时间后降速 热设计、功率预算、负载控制 长时 token/s 与能耗
复杂任务质量不足 云端回退或专用工具 隐私与网络约束

技术路线:缩小权重 → 解决运行中 KV/激活占用 → 优化持续访存和散热 → 对超出本地能力的任务采用受控端云分工。

#原始资料

本页由仓库中的 Markdown 生成。具体技术结论请结合正文引用与实验条件理解。

输入关键词,探索整个知识库

↑ ↓ 选择 ↵ 打开36 篇笔记,一次搜索