设想一座城市只有一家三甲医院:无论感冒发烧还是疑难重症,所有人都挤过去排队,交通瘫痪、医生崩溃。反过来,如果让每个社区诊所都配齐三甲级别的设备和专家,城市财政也扛不住。现实解法是“分级诊疗”——常见病在社区解决,复杂病情开转诊单送大医院。端-云协同推理架构,就是大模型世界的分级诊疗:手机、智能音箱等终端设备是“社区诊所”,负责快速处理轻量任务;云端 GPU 集群是“三甲医院”,负责攻坚重度计算。两者之间由一个“分诊台”(动态调度器)决定每个推理请求该去哪儿。 这篇文章会用这个贯穿始终的比喻,把端-云协同推理的核心动机、模型怎么切分、端和云各自做什么、调度器如何决策、通信如何优化,一层层讲清楚。你将看到,推理部署不是“非端即云”的二选一,而是一场精妙的资源合谋。

岗位关联

在真实业务中,AI 工程师不仅要把模型训练好,更要知道把模型“放在哪里跑”最省成本、最满足实时性。掌握端-云协同推理架构,是把大模型从实验室搬到千万台设备上的核心能力。

目录
  1. 可视化演示
  2. 架构动机:为什么不能只靠云端或只靠终端
  3. 模型分割:转诊线划在哪一层
  4. 端侧轻算:社区诊所的“常见病药箱”
  5. 云侧重算:三甲医院的“专家会诊”
  6. 动态调度:分诊台的实时决策
  7. 协同优化:让转诊单更薄、流程更顺
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示系统处理流水线、实时性能指标曲线及多方案对比分析,包含数据流转、吞吐延迟监控与方案评估。

本节配有交互动效(进入视口后自动加载,约 3KB)。

系统可视化 处理流程:输入→处理→模型→输出 性能监控:实时指标 P=L×T

架构动机:为什么不能只靠云端或只靠终端

在分级医疗体系里,如果所有感冒发烧都往三甲医院跑,医院就会瘫痪;可如果让每个社区诊所都配备全套高精尖设备,财政又撑不住。推理系统面对同样的两难:把所有请求都发到云端,模型虽强,但网络时延和带宽成本立刻爆表;把所有模型都塞进终端,手机内存、电池续航和散热又集体抗议。于是“端侧处理轻量任务、云侧处理重计算”的协同架构应运而生——它不要求任何一端万能,而是让两端各司其职。

从技术视角看,端-云协同的核心是把一个推理请求拆成多个阶段:终端先用轻量模型做初步判断,能搞定的直接在本地返回;搞不定的,把中间结果发给云端,让云端大模型接着算。这就像社区诊所先做基础检查,拿不准时再开转诊单送大医院。延迟是这里的第一优化目标,端到端总时延可拆解为四段:

当某个请求的延迟预算很紧,而网络又拥堵时,全部上云显然不行;反之,如果端侧算力太弱,硬在本地算也会超时。这正是“分级诊疗”的智慧:不追求某一条路绝对最优,而是通过协同把总时延压到最低。

Ttotal=Tedge+Tup+Tcloud+Tdown\displaystyle T_\text{total} = T_\text{edge} + T_\text{up} + T_\text{cloud} + T_\text{down}
公式把“一次推理花了多久”拆成了四段:端侧算多久、传上去多久、云端算多久、传回来多久。任何一个环节过长,整体体验都会受影响。
  1. T_edge(端侧计算时间)终端设备执行模型前几层所花的时间,对应社区诊所里问诊、量血压的耗时。
    Tedge=端侧前段计算量端侧算力\displaystyle T_\text{edge} = \frac{\text{端侧前段计算量}}{\text{端侧算力}}
  2. T_up(上行传输时间)把中间特征从设备传到云端所花的时间,对应转诊单送到三甲医院的路程时间。
    Tup=中间特征字节数上行带宽\displaystyle T_\text{up} = \frac{\text{中间特征字节数}}{\text{上行带宽}}
  3. T_cloud(云端计算时间)云上模型处理后半段的时间,对应三甲医院专家会诊的时间。
    Tcloud=云侧后段计算量云侧算力\displaystyle T_\text{cloud} = \frac{\text{云侧后段计算量}}{\text{云侧算力}}
  4. T_down(回传时间)云端把最终结果返回设备的时间,对应医嘱传回患者手中的时间。
    Tdown=结果字节数下行带宽\displaystyle T_\text{down} = \frac{\text{结果字节数}}{\text{下行带宽}}

模型分割:转诊线划在哪一层

社区诊所不可能复制三甲医院的所有设备,但它可以承担“初步检查 + 信息整理”的角色,把最重要的信息浓缩进一张转诊单。模型分割就是为神经网络划分这条“社区与三甲”的接力线。我们把网络按层切成前后两段:前段在端侧执行,后段在云端执行,两段的交接点叫“切分点”,切分点输出的中间特征张量就是那张“转诊单”。

为什么切分点很重要?因为如果转诊单太厚(特征数据量巨大),光传输就够受的;如果转诊单太薄(只传了个粗略结果),云端又没法做精细判断。切分点的选择是一个典型的优化问题:我们要找第 k 层,使得端侧计算、特征传输、云端计算三段时间之和最小:

实际操作中,工程师会扫描几层候选位置,对比中间特征量的大小,选一个“转诊单最薄”的位置。这背后不是玄学,而是把每一次转诊的路费(通信成本)都算得明明白白。

k∗=arg⁡min⁡k(Ckvedge+∥hk∥B+Ck′vcloud)\displaystyle k^* = \arg\min_k \left( \frac{C_k}{v_\text{edge}} + \frac{\left\| \mathbf{h}_k \right\|}{B} + \frac{C'_k}{v_\text{cloud}} \right)
这个公式是说:切在第 k 层时,整体耗时 = 前 k 层在端上跑多久 + 第 k 层输出张量传多久 + 剩余层在云上跑多久,我们取总耗时最小的那个 k。
  1. C_k 与 v_edge(端侧耗时)C_k 是前 k 层的计算量,除以端侧算力 v_edge,得到本地执行时间。
    tedge=Ckvedge\displaystyle t_\text{edge} = \frac{C_k}{v_\text{edge}}
  2. h_k(中间特征)第 k 层的输出张量,通常是一个高维向量,这就是要传给云端的“转诊单”。
    hk∈Rd1×d2×⋯\displaystyle \mathbf{h}_k \in \mathbb{R}^{d_1 \times d_2 \times \cdots}
  3. B 与传输时间B 是可用带宽,特征张量越大,传输越慢,所以分母越大越吃亏。
    ttrans=∥hk∥B\displaystyle t_\text{trans} = \frac{\left\| \mathbf{h}_k \right\|}{B}
  4. arg min_k(挑最小的)把每个候选 k 的总耗时都算一遍,选出耗时最小的那个切分点。
    k∗=arg⁡min⁡k  (总耗时)\displaystyle k^* = \arg\min_k \; (\text{总耗时})

端侧轻算:社区诊所的“常见病药箱”

社区诊所的价值在于“就近、快速”。它未必能做大手术,但能迅速处理 90% 的常见病。端侧轻算就是对标这个定位:在手机、摄像头、智能音箱上部署一个轻量小模型,专门处理高频、低复杂度的推理任务。比如手机的语音助手唤醒词检测——你喊一声“小爱同学”,不把音频传上云端,本地模型几百毫秒内就能判断是否唤醒。

为了让模型塞得进终端,最常用的手段是量化。量化就像把一本厚重的《医学手册》压缩成口袋版的《社区医疗速查手册》:把原来用 32 位浮点数(FP32)表示的权重,近似成 8 位整数(INT8),体积直接缩到四分之一。量化的映射关系是:

端侧轻算的另一大优势是隐私保护——很多数据根本不出设备。社区诊所把病历留在本社区,患者不必把全部病史都交给大医院,这在医疗、金融等敏感领域尤其重要。

\displaystyle \hat{x} = x_\min + \frac{q}{2^b - 1} \times (x_\max - x_\min)
这个公式给出“把一个浮点数 x 用 b 比特整数 q 近似后,再还原成浮点数”的完整过程。b 越小,手册越薄,但也越粗。
  1. b 与 q(比特数与整数码)b 是量化位数,q 是量化后的整数取值。比如 8bit 量化,q 只能取 0 到 255 的整数。
    q∈{0,1,…,2b−1}\displaystyle q \in \{0, 1, \ldots, 2^b - 1\}
  2. x_min 与 x_max(数值范围)原始浮点数在整个张量里的最小值和最大值,这决定了量化刻度的粗细。
    \displaystyle \text{刻度} = \frac{x_\max - x_\min}{2^b - 1}
  3. 还原公式用整数 q 乘上刻度,再加回偏移量 x_min,得到近似原始值的 \hat{x}。
    \displaystyle \hat{x} = x_\min + q \times \text{刻度}

云侧重算:三甲医院的“专家会诊”

社区诊所解决不了疑难杂症时,转诊单就会送到三甲医院。云端大模型就是那家三甲医院:参数更多、算力更强、见识过更多“病例”。它专门处理端侧模型搞不定的复杂请求,比如长难句理解、高精度图像检测、多模态融合等。云端还承担“精度兜底”的职责——当端侧判断置信度低时,交给云端重新裁决。

三甲医院的高效运转靠的是排班和批量处理。ICU 不会空着等一个人,而是把手术按批次排满。云端推理也一样,会把多个请求拼成一个批次(batch)同时计算,利用 GPU 并行能力把单位成本摊薄。设一批处理 B 个请求,总耗时为 T_batch,那么平均到每个请求:

当然,批处理不是万能的。如果一次只来一个请求,强行凑批反而增加等待时间。所以云端服务通常配备排队系统:请求多了自然成批,请求少时优先响应。这正是三甲医院的“叫号系统”——人少时随到随看,人多时统一调度效率更高。

Tˉ单请求=T批B\displaystyle \bar{T}_\text{单请求} = \frac{T_\text{批}}{B}
这个公式揭示了“规模效应”:一批处理 16 个请求的耗时并不是单个请求的 16 倍,可能只有 4 倍,于是平均每个请求的耗时大大下降。
  1. T_batch(一批的总时间)GPU 并行计算一整批请求的耗时,包含模型加载、矩阵运算、结果整理。
    T批=T加载+T计算+T导出\displaystyle T_\text{批} = T_\text{加载} + T_\text{计算} + T_\text{导出}
  2. B(批次大小)一个批次里塞了多少个请求。B 越大,并行效率越高,显存占用也越大。
    B=批大小\displaystyle B = \text{批大小}
  3. 平均分摊总耗时除以 B,得到每个请求的平均耗时;由于并行,T_batch 的增长远慢于 B 的线性增长。
    Tˉ单请求≪T单请求串行\displaystyle \bar{T}_\text{单请求} \ll T_\text{单请求串行}

动态调度:分诊台的实时决策

一个优秀的分诊台,不会机械地执行“感冒一律留下、胸痛一律转院”,而是要结合当下的拥堵情况、患者状态和医院负荷做判断。端-云协同推理中的“分诊台”就是动态调度器,它实时观察三个关键信号:端侧当前负载、网络带宽与延迟、请求自带的时延预算。

调度决策的核心逻辑可以形式化为一个简单却有效的规则:如果这个请求的延迟预算足够覆盖端侧计算时间,就在端侧完成;如果端侧已经拥挤或网络状况良好而预算又跟不上,就转给云端。写成决策式:

这是一个典型的在线决策问题,不同厂商会用类似控制理论的机制实现:设置低水位/高水位阈值,定期探测网络质量,用滑动窗口统计端侧推理时延。分诊台不需要未卜先知,只需要“随时观察、随时调整”。也许规则并不惊艳,但它让整套系统在真实世界的抖动中依然稳健。

decision={端侧执行,Tbudget≥Tedge+T排队云端执行,Tbudget<Tedge+T排队\displaystyle \text{decision} = \begin{cases} \text{端侧执行}, & T_\text{budget} \ge T_\text{edge} + T_\text{排队} \\ \text{云端执行}, & T_\text{budget} < T_\text{edge} + T_\text{排队} \end{cases}
可以把它理解为:分诊台先估算“在社区诊所排到队并看完病需要 15 分钟”,如果患者只有 10 分钟预算,那就直接叫救护车(转云端);如果预算够 20 分钟,就留下来在社区看。
  1. T_budget(延迟预算)每个请求允许的最大端到端响应时间。实时语音交互可能只有 200ms,离线批处理可以有 10 秒。
    Tbudget=服务等级协议(SLO)约定的时延上限\displaystyle T_\text{budget} = \text{服务等级协议(SLO)约定的时延上限}
  2. T_edge + T_排队(端侧估算耗时)不仅算计算时间,还要算排队等待时间,类似诊所的挂号人数。
    T端侧可用=Tedge+T排队\displaystyle T_\text{端侧可用} = T_\text{edge} + T_\text{排队}
  3. 动态切换当网络变差时,原本“上云”的请求可能改为“端侧降级处理”;当端侧负载升高时,又会反向上云。
    策略=f(网络,负载,预算)\displaystyle \text{策略} = f(\text{网络}, \text{负载}, \text{预算})

协同优化:让转诊单更薄、流程更顺

分级诊疗体系要高效运转,光有分工还不够,转诊环节必须顺畅。如果每张转诊单都要复印整本病历,医院之间的协作就会变成灾难。端-云协同的工程优化,核心就在“中间特征怎么传”和“等待时间怎么藏”两个问题上。

第一,特征压缩。中间特征张量往往是一个巨大的多维矩阵,把它从 FP32 量化到 INT8,通信字节数立刻降到四分之一。传输字节数由以下公式估算:

第二,流水线重叠。传统处理方式是“端侧算完→传过去→云端算→传回来”,空等浪费大量时间。聪明的做法是流水线化:端侧传输第 i 个请求的特征时,云端正在算第 i-1 个请求,端侧则同时处理第 i+1 个请求的浅层。这样就把“传输等待”隐藏在计算背后,整体吞吐量大幅提升。就像医院的手术室一台接一台地运转,两台手术之间的空档被压缩到最小。

M通信=b×d8\displaystyle M_\text{通信} = \frac{b \times d}{8}
b 是每个特征值占用的比特数,d 是特征总维度。从 32bit 降到 8bit,带宽成本直接降到原来的四分之一。
  1. d(特征维度)中间特征向量有多少个数值。比如某个卷积层输出 512×7×7 = 25088 个数值。
    d=25088\displaystyle d = 25088
  2. b(比特数)每个数值用多少比特表示。FP32 用 32bit,INT8 用 8bit。
    MFP32=32×d8=4d 字节,MINT8=8×d8=d 字节\displaystyle M_\text{FP32} = \frac{32 \times d}{8} = 4d \text{ 字节}, \quad M_\text{INT8} = \frac{8 \times d}{8} = d \text{ 字节}
  3. 压缩的含义同样的网络传输通道,原来传 1 批数据的时间,现在可以传 4 批。
    带宽节省=(1−832)×100%=75%\displaystyle \text{带宽节省} = \left(1 - \frac{8}{32}\right) \times 100\% = 75\%

AI 应用场景

智能语音助手的端云协同

阶段:模型部署与推理

解决的问题:过去智能音箱把每一段语音都上传云端解析,遇到弱网环境响应延迟高达数秒,且用户隐私数据大面积暴露。现在端侧先运行唤醒词检测小模型,确认用户确实在喊“助手”后才激活;本地轻量模型还能完成“关灯”“设闹钟”等高频短指令,只有复杂对话才转云端大模型理解。

具体案例:某智能音箱厂商在端侧部署了一个 15MB 的唤醒模型加意图分类模型,云端部署 7B 级大模型。实测显示,常用指令的 70% 在端侧 300ms 内完成,网络负载下降 60%,用户满意度明显提升。

工业质检产线的轻重分工

阶段:推理系统架构设计

解决的问题:产线摄像头每秒钟产生几十帧图像,如果把全部图像上传云端检测,带宽和算力成本不可承受。端侧部署轻量缺陷检测模型做初筛,将明显无缺陷的图像直接滤除,只把“疑似缺陷”的图像裁切出感兴趣区域(ROI)上传云端大模型精检。

具体案例:某手机屏幕质检产线,端侧模型先判断“是否有划痕/亮点”,置信度超过 0.9 直接通过;置信度低的中低风险样本上传云端 10B 级视觉大模型复查。最终云端只处理约 15% 的样本,检测精度反而从 92% 提升到 98.5%。

车路协同的端云配合

阶段:实时推理与调度

解决的问题:车辆端需在毫秒级完成前方障碍物识别,任何上云延迟都可能导致事故;但路径规划、高精地图增量更新又需要云端全局计算。通过端-云协同,车辆端完成感知和紧急制动判断,云端统筹全局路况并下发决策建议。

具体案例:某智能路口方案在车载端部署激光雷达点云识别模型,云端部署全局交通流预测模型。路口设备每 100ms 向云端上传压缩后的障碍物特征而非原始点云,带宽占用从 40Mbps 降到 8Mbps。

Python 演示

python57 行
"""端-云协同推理演示:按层切分 + 按延迟预算动态路由"""import numpy as np  class SplitNet:    """一个可切分的 4 层 MLP,第 split_point 层之后交给云端"""     def __init__(self, dims=(8, 16, 16, 8, 4), split_point=2):        self.dims = dims        self.split_point = split_point        self.weights = []        for i in range(len(dims) - 1):            bound = np.sqrt(6.0 / (dims[i] + dims[i + 1]))            self.weights.append(                np.random.uniform(-bound, bound, (dims[i], dims[i + 1]))            )     def forward(self, x, start, end, quantize_bits=None):        """从 start 层执行到 end 层;若指定 quantize_bits,在切分点量化特征"""        for layer_idx in range(start, end):            x = np.tanh(x @ self.weights[layer_idx])            if quantize_bits and layer_idx == self.split_point - 1:                scale = 2 ** (quantize_bits - 1)                x = np.round(x * scale).clip(-scale, scale - 1)                x = x / scale        return x  def route_request(budget_ms, edge_ms, network_ms):    """调度: 端侧耗时+网络耗时不超过预算则留在端侧,否则上云"""    if edge_ms + network_ms <= budget_ms:        return "edge"    return "cloud"  def main():    np.random.seed(0)    model = SplitNet(dims=(8, 16, 16, 8, 4), split_point=2)    budgets = [15.0, 40.0, 22.0, 50.0, 18.0, 45.0]    edge_ms, network_ms = 8.0, 20.0     for request_id, budget in enumerate(budgets):        x = np.random.randn(8)        loc = route_request(budget, edge_ms, network_ms)        if loc == "edge":            out = model.forward(x, start=0, end=model.split_point)            print(f"request {request_id}: edge 端侧完成 -> {out.shape}")        else:            h = model.forward(x, start=0, end=model.split_point,                              quantize_bits=4)            out = model.forward(h, start=model.split_point,                                end=len(model.weights))            print(f"request {request_id}: cloud 上云完成 -> {out.shape}")  if __name__ == "__main__":    main()
目的:用 numpy 手工实现一个 4 层神经网络,演示“按层切分”和“按延迟预算路由”两个核心机制。
  1. bound = np.sqrt(6.0 / (dims[i] + dims[i + 1]))使用 Xavier 方式初始化权重,让每层输入输出的方差保持稳定。
  2. def forward(self, x, start, end, quantize_bits=None)支持从任意层区间执行,这是“模型分割”的关键设计。
  3. if quantize_bits and layer_idx == self.split_point - 1到达切分点时,把中间特征量化为低比特,模拟“转诊单变薄”。
  4. x = np.round(x * scale).clip(-scale, scale - 1)用 scale 缩放并取整,再把数值限制在合法整数范围。
  5. route_request(budget_ms, edge_ms, network_ms)模拟分诊台决策:端侧耗时 + 网络耗时不超过预算就留本地,否则上云。
  6. model.forward(x, start=0, end=model.split_point)端侧只跑前两层,体现“轻量层在端侧执行”。
  7. model.forward(h, start=model.split_point, end=len(model.weights))云端从切分点继续跑剩余层,体现“重计算在云端完成”。

常见误区

误区同事讨论时说“端云协同很简单,手机里放一个小模型,云上放一个大模型,哪个近用哪个”。这听起来像两个独立的模型各自为政,互不关联。

正解端云协同的核心是“模型分割”——同一个模型按层切开,端侧跑前半段,云侧跑后半段,中间特征接力传递。端侧和云侧是接力关系,不是复制关系。正如社区诊所和三甲医院不是两套平行医院,而是同一医疗体系的不同环节,前者的检查结果为后者所用。

为何常见:因为大家习惯了“模型推理”是一个不可分割的黑盒,把部署简单理解为“复制一份到不同设备”,忽略了层与层之间的中间表示可以传递。

误区“既然切分能协同,那我把网络每 2 层切一次,端云交替跑,岂不资源利用最大化?”

正解每多一个切分点,就多一次通信 + 数据序列化 + 同步等待。层间特征数据量通常远远大于最终结果,反复搬运只会让系统更慢。实践中一般只选 1-2 个关键切分点,就像转诊次数越多,路上浪费的时间越多,重症患者经不起折腾。

为何常见:人们容易把“灵活性”等同于“更多选择”,忽略了每一次切分都伴随通信代价,属于典型的“只见收益不见成本”。

误区“网络再快也有延迟,所以端侧推理永远更符合实时性;云端模型大,所以永远更准。”于是有人不加测试就定死了路由规则。

正解端侧设备算力差异巨大,低端手机跑一个稍大的模型可能要 1 秒,而上云借助 5G 边缘节点可能只需 80ms;云端大模型虽然强,但传输中间特征时如果压缩过度,精度损失也可能反超端侧小模型。正确姿势是“实测 + 动态调度”,而不是拍脑袋一刀切。

为何常见:因为“距离近”和“模型大”是两个最容易被感知的表象,人们容易用直观感受替代工程测量。

误区“我们公司专线带宽 100M,网络质量很稳定,切分点和调度规则上线时调好就不用动了。”

正解真实网络是波动的:早晚高峰、机房故障、用户移动轨迹都会改变带宽和时延。固定规则在模型上线初可能表现良好,一旦网络劣化,大量请求涌入云端导致超时雪崩。成熟的系统会周期性探测网络质量,根据延迟预算动态切换端云路径,就像分诊台要随时关注马路堵不堵。

为何常见:开发环境里的网络太稳定,工程师没有经历过“移动网络过隧道”这类极端场景,容易把测试环境的体验当作生产环境的事实。

面试题

Q1. 端云协同推理的主要目标是什么?

单选题 · easy

  • A.加速单机模型推理
  • B.均衡端云资源与延迟← 正确答案
  • C.简化模型压缩流程
  • D.统一训练与推理路径

答案:B。端-云协同推理的核心是让端侧和云端各展所长——轻量任务留在端侧、重计算上云,从而同时优化延迟、带宽和计算成本。A 只关注单机,C 是模型压缩并非协同,D 是训练流程,均不符合架构目标。

Q2. 模型分割中的“切分点”指的是什么?

单选题 · mid

  • A.网络权重保存的位置
  • B.推理失败后重试的节点
  • C.层与层之间的接缝位置← 正确答案
  • D.训练数据的切分边界

答案:C。切分点指从第 k 层和第 k+1 层之间把网络“剪开”,前段留在端侧、后段放到云端,中间特征张量作为转诊单接力。A、B、D 分别混淆了存储、容错和数据处理,均非架构概念。

Q3. 选择切分点时,主要希望最小化什么?

单选题 · mid

  • A.中间特征的总维度← 正确答案
  • B.网络参数量总和
  • C.训练集样本数量
  • D.服务器部署台数

答案:A。中间特征张量越大,上传云端越耗时,切分点通常选在特征较为收敛(通道数少、空间分辨率低)的位置。参数量、样本数、服务器数量与切分点优化目标无关。

Q4. 端侧执行适合承担哪些类型的推理任务?

多选题 · mid

  • A.高频简单分类任务← 正确答案
  • B.实时性要求高的任务← 正确答案
  • C.医疗级高精诊断任务
  • D.需要保护隐私的本地任务← 正确答案

答案:ABD。端侧轻算的优势是低延迟、高隐私、低带宽。高频简单分类(如唤醒词)和实时响应(如紧急刹车)适合端侧;隐私敏感数据也应尽量不出设备。医疗级高精诊断往往依赖大模型与专业设备,属于云端重算场景。

Q5. 分诊台般的动态调度器需要关注哪些实时信号?

多选题 · mid

  • A.当前网络带宽大小← 正确答案
  • B.端侧设备的负载状态← 正确答案
  • C.请求的延迟预算等级← 正确答案
  • D.训练数据集的规模

答案:ABC。调度决策依据的是运行时状态:带宽决定传输成本,端侧负载决定本地排队时长,延迟预算决定是否值得等待。训练集规模是离线开发期因素,与运行时分诊无关。

Q6. 云侧重计算的主要场景是哪种?

单选题 · easy

  • A.高精度长尾复杂推理← 正确答案
  • B.设备端唤醒词检测
  • C.本地缓存特征更新
  • D.模型权重定期保存

答案:A。云端拥有大规模参数与强算力,适合处理“端侧搞不定”的长尾疑难请求,保证精度兜底。唤醒词检测是端侧典型任务,缓存和权重保存均为辅助操作,并非推理场景。

Q7. 中间特征从 FP32 压缩到 INT8 后,通信量变化如何?

单选题 · hard

  • A.变为原来的二分之一
  • B.变为原来的四分之一← 正确答案
  • C.变为原来的八分之一
  • D.保持不变

答案:B。通信字节数 = 特征数 × 比特数 / 8。FP32 每特征 32bit,INT8 每特征 8bit,压缩比为 8/32 = 1/4。类似的还有 INT4(1/8)和 FP16(1/2),但 INT8 平衡了精度与压缩比。

Q8. 流水线重叠可以带来哪些收益?

多选题 · hard

  • A.端侧与云端计算并行进行← 正确答案
  • B.隐藏网络传输等待时间← 正确答案
  • C.提升整体系统吞吐量← 正确答案
  • D.减少中间特征的维度

答案:ABC。流水线让设备 i+1 的上行传输与设备 i 的云端计算重叠,等待被“藏”起来,吞吐量随之提升。但它不会改变特征本身的维度,D 是特征压缩而非流水线的作用。

Q9. 端云协同中出现“网络突然后续拥塞”,调度器最合理的反应是?

单选题 · easy

  • A.将所有请求强制上云
  • B.将请求切换回端侧降级处理← 正确答案
  • C.等待网络自动恢复
  • D.关闭所有推理服务

答案:B。调度器应当动态调整策略:网络变差时,把原来计划上云的请求改为端侧轻模型处理,虽然精度可能略降,但确保服务可用。强制上云会加剧拥塞,等待和关闭都不合理。

Q10. 延迟预算管理的作用是什么?

单选题 · mid

  • A.限制每个请求的最长等待时间← 正确答案
  • B.增加云端模型的参数量
  • C.压缩原始输入图像尺寸
  • D.减少端侧模型的层数

答案:A。延迟预算为每个请求设定“必须在多少毫秒内返回”的服务承诺。调度器据此判断留在端侧或转云,超出预算即触发超时兜底。它不改变模型结构,也不处理输入尺寸。