Extensive Reading

Author Info

Background

Insights

1. 核心思路:协同解码(Collaborative Decoding)

传统的推理要么全在云端(高延迟、隐私风险),要么全在端侧(质量差)。该论文采用混合推理模式:

  • 默认路径:使用端侧的小模型(SLM)进行主要的Token生成。
  • 路由机制:引入一个轻量级的路由器(Router)。对于每一个生成的Token,路由器会评估小模型的“信心”。
  • 按需介入:如果路由器认为小模型对当前Token的预测不可靠(信心低于阈值),则将该Token的生成请求路由到云端的大模型(LLM)。
  • 结果:利用大模型修正关键Token,从而提升整体生成质量,同时保持边缘设备的低延迟和低能耗优势。

Challenges

Approaches

2. 系统架构与实现方法

作者构建了一个完整的Client-Server系统,打通了端侧ONNX推理和云端服务。

A. 路由算法 (The Router)

论文主要采用了 CITER (Collaborative Inference with Token-level Routing) 框架。

  • 原理:基于MLP(多层感知机)的分类器。
  • 输入:小模型最后一层的隐藏状态(Hidden States)
  • 输出:一个置信度分数。
  • 决策:设定一个阈值 $\tau$。如果分数 $<\tau$,则判定为“不自信”,路由给LLM;否则由SLM继续生成。

B. 端侧实现 (Edge Side)

为了在移动设备上高效运行,作者采用了以下技术栈:

  • 推理引擎:使用 ONNX Runtime,支持跨平台(笔记本、手机)。
  • 模型修改(关键技术点)
    • 标准的ONNX模型通常只输出Logits。
    • 问题:路由器需要利用“隐藏状态”作为输入来做决策。
    • 解决方案:作者编写脚本修改了ONNX的计算图(Computation Graph),自动定位并注册最后一层的计算节点,将其作为额外的输出节点暴露出来。这样在推理时,不仅得到Token预测,还能拿到用于路由决策的特征向量。

C. 云端实现 (Cloud Side)

  • 服务引擎:使用 SGLang 部署大模型(如Qwen2.5-32B)。
  • 选择理由:SGLang 提供了灵活的KV-Cache管理和算子定义,适合处理这种非连续的、插拔式的推理请求。

D. 通信与状态管理

  • 自定义API:设计了包含上下文、当前Token索引、路由阈值以及SLM内部状态(如Hidden States)的API格式,用于端云交互。
  • KV-Cache挑战
    • 由于端侧和云端是两个独立的系统,当请求从端侧切到云端时,云端并没有之前的KV-Cache历史。
    • 当前局限:目前的实现中,每次路由到云端都需要重新进行Prefill(预填充),这在网络延迟较高或路由频繁时会显著增加 TBT (Time Between Tokens)

Evaluation

Thoughts

When Reading

目前实现中,每次路由到云端都需要重新进行预填充,这是人能想出来的操作?