百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

贾扬清点赞:3K star量的SGLang上新,加速Llama 405B推理秒杀vLLM、TensorRT-LLM

qiyuwang 2024-11-24 20:51 9 浏览 0 评论

点击蓝字


关注我们

关注并星标

从此不迷路

计算机视觉研究院


公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式


计算机视觉研究院专栏

Column of Computer Vision Institute

用来运行 Llama 3 405B 优势明显。


最近,Meta 开源了最新的 405B 模型(Llama 3.1 405B),把开源模型的性能拉到了新高度。由于模型参数量很大,很多开发者都关心一个问题:怎么提高模型的推理速度?
时隔才两天,LMSYS Org 团队就出手了,推出了全新的 SGLang Runtime v0.2。这是一个用于 LLM 和 VLM 的通用服务引擎。在运行 Llama 3.1 405B 时,它的吞吐量和延迟表现都优于 vLLM 和 TensorRT-LLM。
在某些情况下(运行 Llama 系列模型),它的吞吐量甚至能达到 TensorRT-LLM 的 2.1 倍,vLLm 的 3.8 倍。
LMSYS Org 团队是一个由加州大学伯克利分校、加州大学圣地亚哥分校以及卡内基梅隆大学的学生与教职员工共同组建的公开性质的研究团体。他们开发的大模型评测平台 ——Chatbot Arena 已经成为检验大模型能力的重要平台,也被认为是一种相对公平的评测方式。
SGLang 是该团队开发的一个用于大型语言模型和视觉语言模型的快速服务框架,于今年 1 月份正式推出,在 GitHub 上已经收获了超过 3k 的 star 量。

这次的更新效果惊艳,知名 AI 研究者、Lepton AI 联合创始人兼 CEO 贾扬清评价说「我一直被我的博士母校加州大学伯克利分校惊艳,因为它不断交付最先进的人工智能和系统协同设计成果。去年我们看到了 SGLang 的使用,现在它变得更好了。迫不及待地想在产品中部署并尝试新的 SGLang!」
为什么 LMSYS Org 要开发并迭代 SGLang 呢?他们在博客中提到,「我们已经运行 Chatbot Arena 平台一年多,为数百万用户提供服务。我们深知高效服务对人工智能产品和研究的重要性。通过运营经验和深入研究,我们不断增强底层服务系统,从高级多模型服务框架 FastChat 到高效服务引擎 SGLang Runtime (SRT)。」
「这篇文章的重点是 SGLang Runtime,它是一个用于 LLM 和 VLM 的通用服务引擎。虽然 TensorRT-LLM、vLLM、MLC-LLM 和 Hugging Face TGI 等现有选项各有优点,但我们发现它们有时难以使用、难以定制或性能不佳。这促使我们开发了 SGLang v0.2,旨在创建一个不仅用户友好、易于修改,而且性能一流的服务引擎。」
与 TensorRT-LLM 和 vLLM 相比,SGLang Runtime 在处理从 Llama-8B 到 Llama-405B 的模型时,以及在 A100 和 H100 GPU 上使用 FP8 和 FP16 时,在在线和离线场景下都能持续提供卓越或有竞争力的性能。SGLang 的性能始终优于 vLLM,在 Llama-70B 上的吞吐量最高是前者的 3.8 倍。它还经常与 TensorRT-LLM 不相上下,甚至超过 TensorRT-LLM,在 Llama-405B 上的吞吐量最高是前者的 2.1 倍。更重要的是,SGLang 是完全开源的,由纯 Python 编写,核心调度器只用了不到 4K 行代码就实现了。
SGLang 是一个开源项目,采用 Apache 2.0 许可授权。它已被 LMSYS Chatbot Arena 用于支持部分模型、Databricks、几家初创公司和研究机构,产生了数万亿 token,实现了更快的迭代。
以下是几个框架的对比实验设置和结果。
基准设置
研究者对离线和在线用例进行基准测试:
离线:他们一次发送 2K 到 3K 个请求,测量输出吞吐量(token / 秒),即输出 token 数除以总持续时间。他们测试的合成数据集来自 ShareGPT 数据集。例如,I-512-O-1024 表示平均输入 512 个 token、平均输出 1024 个 token 的数据集。五个测试数据集分别为:
  • 数据集 1:I-243-O-770;
  • 数据集 2:I-295-O-770;
  • 数据集 3:I-243-O-386;
  • 数据集 4:I-295-O-386;
  • 数据集 5:I-221-O-201。
在线:他们以每秒 1 到 16 个请求 (RPS) 的速率发送请求,测量端到端延迟的中位数。他们使用合成数据集 I-292-O-579。
他们使用 vLLM 0.5.2(带默认参数)和 TensorRT-LLM(带推荐参数和调整后的批大小)。所有引擎都关闭了前缀缓存。目的是在没有任何附加功能(如推测解码或缓存)的情况下,对基本性能进行基准测试。他们使用与 OpenAI 兼容的 API 对 SGLang 和 vLLM 进行基准测试,并使用 Triton 接口对 TensorRT-LLM 进行基准测试。
Llama-8B 在一个 A100 上运行(bf16)
研究者从小型模型 Llama-8B 开始测试。下图显示了每个引擎在五个不同数据集的离线设置下所能达到的最大输出吞吐量。TensorRT-LLM 和 SGLang 都能达到每秒约 4000 个 token 的吞吐量,而 vLLM 则稍逊一筹。
下面的在线基准图显示了与离线情况类似的趋势。TensorRT-LLM 和 SGLang 的性能相当,可以保持 RPS > 10,而 vLLM 的延迟在请求率较高时显著增加。
Llama-70B 在 8 个 A100 上运行(bf16)
至于在 8 个 GPU 上进行张量并行的较大型 Llama-70B 模型,趋势与 8B 相似。在下面的离线基准测试中,TensorRT-LLM 和 SGLang 都能达到很高的吞吐量。
在下图的在线结果中,TensorRT-LLM 凭借高效的内核实现和运行时间,显示出较低的延迟。
Llama-70B 在 8 个 H100 上运行(fp8)
现在来测试 FP8 性能。vLLM 和 SGLang 都使用了 CUTLASS 的 FP8 内核。在离线设置中,SGLang 的批处理调度器非常高效,可以随着批处理规模的增大而继续扩展吞吐量,在这种情况下实现了最高吞吐量。其他系统则由于 OOM、缺少大量手动调整或存在其他开销而无法扩展吞吐量或批大小。在线情况下也是如此,SGLang 和 TensorRT 的中位延迟相似。
Llama-405B 在 8 个 H100 上运行(fp8)
最后,研究者在最大的 405B 模型上对各种方法的性能进行了基准测试。由于模型较大,大部分时间都花在了 GPU 内核上。不同框架之间的差距缩小了。TensorRT-LLM 性能不佳的原因可能是 405B 模型刚刚问世,而图中使用的版本尚未集成一些最新优化。在在线和离线情况下,SGLang 的性能都是最好的。
SGLang 概览
SGLang 是大型语言模型和视觉语言模型的服务框架。它基于并增强了多个开源 LLM 服务引擎(包括 LightLLM、vLLM 和 Guidance)的许多优秀设计。它利用了来自 FlashInfer 的高性能注意力 CUDA 内核,并集成了受 gpt-fast 启发的 torch.compile。
此外,研究者还引入了一些创新技术,如用于自动 KV 缓存重用的 RadixAttention 和用于快速约束解码的压缩状态机。SGLang 以其完全用 Python 实现的高效批处理调度器而闻名。为了进行公平比较,本博客测试了这些服务引擎在关闭特定场景或工作负载优化(如前缀缓存和推测解码)后的基本性能。SGLang 的提速是通过适当的工程设计实现的。SGLang 基于 Python 的高效批处理调度器具有良好的扩展性,通常可与使用 C++ 构建的闭源实现相媲美,甚至更胜一筹。
表 1 比较了 SGLang、TensorRT-LLM 和 vLLM 的各个方面。在性能方面,SGLang 和 TensorRT-LLM 都非常出色。在可用性和可定制性方面,SGLang 的轻量级和模块化内核使其易于定制,而 TensorRT-LLM 复杂的 C++ 技术栈和设置说明使其更难使用和修改。SGLang 的源代码完全开源,而 TensorRT-LLM 仅部分开源。相比之下,vLLM 的 CPU 调度开销较高。
研究者还表示,未来他们还将开发长上下文和 MoE 优化等新功能。
使用方法
你可以按照以下步骤轻松服务 Llama 模型:
1、使用 pip、源代码或 Docker 安装 SGLang:https://github.com/sgl-project/sglang/tree/main?tab=readme-ov-file#install
2、启动服务器:

# Llama 8Bpython -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-8B-Instruct

# Llama 405Bpython -m sglang.launch_server --model-path meta-llama/Meta-Llama-3.1-405B-Instruct-FP8 --tp 8
3、使用 OpenAI 兼容的 API 发送请求:

curl http://localhost:30000/v1/completions \ -H "Content-Type: application/json" \ -d '{ "model": "default", "prompt": "Say this is a test", "max_tokens": 7, "temperature": 0 }'
4、运行基准:
python3 -m sglang.bench_serving --backend sglang --num-prompts 1000
附录:详细的基准设置
重现基准的说明位于 sglang/benchmark/blog_v0_2。
对于所有基准测试,研究者都设置了 ignore_eos 或 min_length/end_id 以确保每个引擎输出相同数量的 token。他们曾尝试使用 vLLM 0.5.3.post1,但它在高负载情况下经常崩溃,与部分基准测试中的 vLLM 0.5.2 相比,vLLM 0.5.3.post1 性能似乎差不多甚至更差。因此,他们报告的是 vLLM 0.5.2 的结果。虽然他们知道不同的服务器配置会对服务性能产生重大影响,但他们主要使用每个引擎的默认参数来模拟普通用户的情况。
对于 8B 和 70B 模型,他们使用 meta-llama/Meta-Llama-3-8B-Instruct 和 meta-llama/Meta-Llama-3-70B-Instruct bf16 检查点,以及 neuralmagic/Meta-Llama-3-70B-Instruct-FP8 fp8 检查点。对于 405B 模型,他们在所有基准测试中都使用了虚拟权重。由于 TensorRT-LLM 最新图像 r24.06 不支持官方 meta-llama/Meta-Llama-3.1-405B-FP8 检查点中的 fbgemm_fp8 量化,他们在所有框架中都使用了每层 fp8 量化,并对除 lm_head 以外的所有层进行了量化。他们相信这样可以对所有引擎进行公平的比较。A100 和 H100 GPU 为 80GB SXM 版本。
参考链接:https://lmsys.org/blog/2024-07-25-sglang-llama3/

END



转载请联系本公众号获得授权


计算机视觉研究院学习群等你加入!


ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!


??





相关推荐

别再乱找了!这才是 Alist 本地安装挂载的正确打开方式

一、探秘Alist的神奇世界在这个数据爆炸的时代,我们的生活里充斥着各种各样的网盘服务,百度网盘、阿里云盘、腾讯微云等等,它们成了我们存储资料的得力助手。但随着网盘数量的增多,管理这些分散在不同平...

如何将数据从旧iPhone传输到新iPhone 16?这五个方法你必须知道!

前不久,苹果发布了备受期待的iPhone16系列,新机型搭载了更强大的芯片、更流畅的操作体验,还有备受热议的全新摄像系统。无论你是冲着A18仿生芯片,还是更丰富的动态岛功能,相信很多果粉早已跃跃欲试...

大数据传输的定义与大数据传输解决方案的选择

当我们需要处理大量的数据时,我们就要把数据从一个地方移动到另一个地方。这个过程就叫做大数据传输。它通常需要用到高速的网络连接、分散的存储系统和数据传输协议,以保证数据的快速、可靠和安全的移动。常用的大...

【工具】在线传输文件工具(在线文件互传)

前言在线传输文件工具主要是用于在不同的设备之间,如手机、电脑、平板等快速便捷地传送文件。告别使用USB传统传输文件的方式。...

如何使用 CAN-FD 在 LPC5500 上传输数据

目录1引言2CAN-FD3示例演示1引言...

轻松同步:将照片从三星手机传输到iPad的简便方法

概括想要在新iPad上查看三星照片吗?但是,如果您不知道如何将照片从三星手机传输到iPad,则无法在iPad上查看图片。为此,本文分享了7个有用的方法,以便您可以使用它们在不同操作系统之...

常见又地道的网络缩写:美剧中常说的SFW到底是个啥?

在这堂课中,让我们来学习更多在数字网络世界中常用的有趣网络用语。7shifts/unsplashhttp,https“http”和“https”是万维网(www)传输文件用的协议。“http”是hy...

每天学会一个计算机网络协议之FTP

开始行文之前提出一个问题,相信大家在看完本文后一定可以回答当我们在网站上填写注册信息的时候,需要我们上传照片,上传的过程发生了什么?下面引入我们的主角,FTP文件传输协议FTPFileTransf...

即用即走,这3款文件分享工具真香

打工人的日常,免不了「文件分享存储服务」的需求。我们一般会选择不同的网盘,但是大家也知道,网盘不是限速就是叫你充值。今天跟大家简单推荐3款文件分享工具,既可以免登录匿名使用,而且操作简单稳定性也不错。...

安卓手机里的文件和照片与Mac互传的办法

因为HandShake一段时间未更新,似乎目前不可操作。我一时间未找到更好的「传输」办法,经实践操作,向大家介绍一下「安卓手机」,包括「一加」、「索尼」,都可用此方法,来进行文件传输到Mac的...

软网推荐:同一个平台选择不同的传输方法

平时上网的时候,我们经常要分享一些文件给其他朋友,一般通过云服务平台来实现。今天笔者给大家介绍的Worksphere传输服务,它提供了两种不同的分享方式,方便我们根据实际需要进行选择。一个链接分享所有...

跨平台不限速的免费文件传输网站(跨平台不限速的免费文件传输网站是什么)

大家好,欢迎来到天天惠分享,不知道各位平时都是用什么方法来进行文件跨平台传输的呢?是百度网盘?微信还是QQ?亦或是有线传输。虽然这些方法都可以达到传输的目的,但都有各自的缺陷,使用起来一言难尽。比如百...

全网最全最详细的全平台文件传输方法,解决你文件传输问题(一)

前言想必现在大多数人文件传输的方法还是使用qq微信,但是qq微信的文件传输有时候真是,...

文件传输工具有哪些?这3款堪称办公必备!

在不同设备间,想把文件从一台设备传输到另一台,尤其是大体积文件,更是免不了用到文件传输工具,可以说文件传输工具已成为提升效率的关键载体。面对海量文档、设计素材、会议纪要的流转需求,传统邮件附件、U盘拷...

小白也能用的跨网文件交换系统!10款简单易上手的文件摆渡工具

跨网文件交换系统对于需要频繁在不同网络环境中进行文件共享的用户来说至关重要。以下是10款简单易上手的文件摆渡工具,适合小白用户使用,帮助他们高效地分享和传输文件。10款简单易上手的跨网文件交换工具1....

取消回复欢迎 发表评论: