跳到主内容
快讯直播
AI智模界
AI 词典

会话粘性:别让AI每轮都“重新认识你”

一句话定义:会话粘性(Session Affinity),也叫会话保持,指负载均衡器把同一通对话的请求,持续转发到同一个后端服务副本上。

为什么推理服务特别在意它

大模型多轮对话时,通常会把之前算过的上下文缓存(AI 词典:KV Cache">KV Cache,Key-Value Cache)留在显存里。下一轮只要接着算新内容,不用把前面几千字重新读一遍。KV Cache 可以理解为“对话的草稿纸”。

生活里打个比方:你固定去一家理发店找同一位理发师,他记得你的头型和偏好,你说“老样子”就行。如果每次换人,你都得从头描述一遍。会话粘性就是让系统认准那位“理发师”。

如果负载均衡(Load Balancing)只按轮询(Round Robin)把请求随便分,第1轮落到A机器,第2轮落到B机器,B机器手里没有草稿纸,只能把整段历史重新读一遍,再开始回答。这个动作叫预填充(Prefill)。结果是:第一个字出来得更慢、GPU算力被重复消耗,对话越长越明显。

怎么实现

常见做法是给每通会话一个会话ID(Session ID),网关按这个ID做哈希,例如一致性哈希(Consistent Hashing),让同一个ID稳定落到同一副本;或者维护一张“会话到副本”的映射表。客户端也可以通过Cookie或请求头带上这个ID。具体配置各家网关不同,以官方页面为准。

和相邻概念的区别

概念关注点和会话粘性的关系
负载均衡把请求分给多台机器默认追求均匀;粘性是在均衡和缓存命中之间做取舍
无状态服务状态外置,任何副本都能处理无状态服务不需要粘性;推理服务因KV Cache在显存,通常有状态
调度亲和性Pod和节点的绑定偏好属于部署层概念,不等于请求级会话粘性
KV Cache缓存的对话上下文会话粘性要保护的就是它

不做会付出什么代价

最直接的是重复预填充:同一段历史被算很多遍,延迟和成本都上去。用户体感就是“AI变卡了”或者“它怎么不记得我刚说的”。另一头,会话粘性也不是免费的:热门会话可能长期占住一台机器;扩缩容或故障恢复时,粘住的会话不好迁移,可能中断。一些系统会做分布式KV缓存,让缓存不再绑死在单机,从根上解耦,但工程复杂度更高。

对从业者的提醒:上多副本推理时,先确认网关有没有会话保持;监控缓存命中率和预填充占比;给副本重启留一个降级方案——缓存没了,至少能回退到“重新读一遍历史”,而不是直接报错。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。