Amazon SageMaker 上线前缀感知路由:长上下文 LLM 推理的延迟优化路径

行业分析Amazon SageMaker 上线前缀感知路…openstarry.com

为什么需要前缀感知路由

在大多数 LLM 应用里,一次请求的提示词通常由两部分组成:开头一段固定的指令、背景资料或对话历史(可能长达数千 token),以及末尾随用户输入变化的少量 token。vLLM、TensorRT-LLM 等推理框架都支持前缀缓存:第一次算完的开头部分会被存下来,下一次遇到相同开头可以直接复用计算结果,跳过重复工作。

问题出在多实例部署时。请求会被负载均衡随机分到不同实例,原本可以复用的一段前缀被分散到多台机器上,每台机器都因为命中不足而反复重算同一段长前缀。前缀缓存功能存在,但路由层把请求打得太散,缓存始终暖不起来。

前缀感知路由正是为了解决这个问题。它会查看请求的开头内容,把相同前缀的请求持续送到同一台实例上,使该实例的 KV 缓存能稳定累积并被复用。

这项能力对用户意味着什么

从测试结果看,长上下文场景下启用前缀感知路由后的收益非常明显:

短上下文场景(例如可变长度的对话)虽然也能享受到 13%–37% 的 TTFT 改善和约 2% 的吞吐量提升,但因为共享前缀较短,单位请求节省的计算量较小。结论是:共享前缀越长、单条前缀被重复请求的频率越高,收益越大。

适用场景与选择标准

前缀感知路由发挥作用的前提是:多个请求之间存在稳定且较长的共享前缀。典型的适用模式包括:

如果请求之间没有稳定前缀、或者使用非 LLM 模型、又或者请求可互换且无差别,使用默认的随机路由即可。如果不同请求的处理时间差异较大、希望每台实例负载尽量均衡,则 LEASTOUTSTANDINGREQUESTS 更合适。

判断要不要启用,可以问自己三个问题:

  1. 请求是否有稳定的长前缀?
  2. 推理框架的前缀缓存是否已经开启?
  3. 是否部署在至少两台实例上?

三项都满足,前缀感知路由才有意义。任何一项不满足,建议保持默认策略。

如何用起来

启用方式是在创建或更新端点配置时指定路由策略,不需要修改模型容器或推理框架代码。配置项主要有两个:

一段命令行示例:

aws sagemaker create-endpoint-config \
  --endpoint-config-name example-llm-config \
  --production-variants '[{
    "VariantName": "AllTraffic",
    "ModelName": "example-llm-model",
    "InitialInstanceCount": 3,
    "InstanceType": "ml.p5.48xlarge",
    "RoutingConfig": {
      "RoutingStrategy": "PREFIX_AWARE",
      "PrefixAwareRoutingConfig": {
        "PrefixLength": 4096,
        "ConcurrencyThreshold": 10
      }
    }
  }]'

接着像往常一样创建端点即可。调用方式没有变化,原生 InvokeEndpoint、InvokeEndpointWithResponseStream 以及 OpenAI 兼容的 Chat Completion 接口都可以照常使用。

该策略也支持推理组件端点和动态加载的 LoRA 适配器:在推理组件场景中行为与单模型端点一致;在 LoRA 场景下,会在已加载该适配器的实例集合内基于前缀做选择。

如果需要按租户隔离缓存,可以在原生 API 请求头加上 X-Amzn-SageMaker-Prefix-Aware-Id(最多 64 个 ASCII 字符),或是在 OpenAI 兼容 API 的请求体中加 prompt_cache_key 字段,相同前缀但不同 ID 的请求会被路由到不同实例,避免租户之间共享缓存上下文。

落地建议与成本考量

启用前后的成本结构值得提前算清楚。前缀感知路由本身不增加实例数量,只是让已有实例的缓存命中率提升,从而在同等硬件上承接更多请求或降低响应延迟。换句话说,节省的并非直接的算力费用,而是延迟下降带来的用户体验改善和单实例吞吐提升后潜在的实例数缩减可能。

落地过程中有几点值得提前注意:

路由策略可以按生产变体分别设置,也可以在不重新部署模型的前提下,通过更新端点配置来切换 RANDOM、LEASTOUTSTANDINGREQUESTS、PREFIX_AWARE 三种策略。先在灰度环境验证收益,再切到生产,是比较稳妥的做法。

总体来看,前缀感知路由是一项门槛不高、收益清晰的能力:只要你跑的是 LLM 长上下文工作负载,推理框架已经支持前缀缓存,并且部署了多实例,把它打开几乎是一件没有理由不做的事情。

以 AI 之力,筑未来之境

现在注册,立即免费获赠 200 次大模型调用权益

免费注册 →