专栏名称: GiantPandaCV
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
目录
相关文章推荐
今天看啥  ›  专栏  ›  GiantPandaCV

SGLang 后端原文解析

GiantPandaCV  · 公众号  · 3D  · 2024-11-21 20:32

主要观点总结

本文介绍了SGLang实现的后端/Runtime框架,包括LM Program的使用及面临的问题,SGLang在前后端做的改进,以及RadixAttention在KV Cache管理中的应用。文章还讨论了删除节点的方法,Request Scheduling后端请求调度,以及前端请求发送顺序的重要性。

关键观点总结

关键观点1: SGLang实现的后端/Runtime框架概述

文章介绍了SGLang在实现后端/Runtime框架时面临的挑战,包括语言模型的输出不稳定和KV Cache复用方法的改进。

关键观点2: LM Program的使用及问题

文章阐述了LM Program在推理端的主要面对的问题,包括语言模型的输出高度不稳定和现有的KV Cache复用方法需要改进。

关键观点3: SGLang在前后端的改进

针对上述问题,SGLang在前后端做了相应的改进。采用Compressed Finite State Machine解决语言模型的输出不稳定问题,基于RadixAttention优化后端Runtime来改进KV Cache的复用方法。

关键观点4: RadixAttention的应用

文章详细解释了RadixAttention在KV Cache管理中的应用,包括其基于树状结构的管理方式、LRU删除节点的方法、内存管理、request调度等。

关键观点5: 请求调度与前端部分

文章讨论了后端的请求调度,通过利用Radix Tree进行KV Cache reuse,提高cache hit rate,并介绍了前端部分的调度策略以及存在的问题。


文章预览

作者丨Chayenne Zhao 来源丨https://zhuanlan.zhihu.com/p/716543182 编辑丨GiantPandaCV 众所周知,麻辣系统博大精深。今天浅浅捋一捋 SGLang 实现的后端/ Runtime 框架,前端部分留作后文。 LM Program Using a program to schedule and control the generation processes of LLMs. 这个概念听上去很抽象,但是可以界定为 Program Controled LLM Generation,而 program 的类型非常多样。最典型的例子譬如 Tree of Thought Planning,需要用树状结构和状态机来控制模型的步进、回滚和剪枝。 对于 LM Program 而言,在推理端主要面对的问题: 语言模型的输出高度不稳定: 依据我的经验,类似 Vicuna-7b 这样的模型,在结尾多出一个  \n  都会极大的影响模型的输出。因此,我们需要有更加严格的 rule-strict generation,目前可以把这种 rule 简化为 format,譬如强制生成 Json 格式。 现有的 KV Cache 复用方法还有待改进 :仍旧用 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览