先说结论:如果你特别看重高并发处理,或者需要模型能进行多轮聊天、按格式输出,可以选择SGLang。当请求量增多时,SGLang比vLLM的优势更明显,可能性能和并发要求高的场景下的更优。
SGLang是什么?
SGLang全称Structured Generation Language(结构化生成语言),是一个推理框架。主要解决大模型部署中的痛点,优化CPU和GPU,跑出更高的吞吐量。核心是尽量减少重复计算,让大家相对简单的用LLM。
SGLang主要做:一是完成复杂LLM程序,不光是简单的问答,像多轮对话、让模型规划任务、调用外部API,或者生成类似JSON格式的内容,它都可以做。二是前后端配合,用一个前端语言DSL简化编程,后端运行时系统更关注优化调度和多GPU协作。
SGLang的技术:
RadixAttention(基数注意力):SGLang用基数树(RadixTree)来管理KV缓存。它能让好几个请求共享前面已经算过的部分,特别是在多轮对话这种场景下,缓存命中率能提高3到5倍,延迟自然就降下来了。
结构化输出:SGLang用正则表达式