当前位置: 首页 > news >正文

vLLM 教程上新!覆盖从入门到进阶 4 种应用方式;中文文档同步上线,0 帧起手加速大模型推理

如今,大语言模型 (LLM) 的发展正在从规模参数迭代升级拓展至应用场景的适配与创新,在这个过程中,其也暴露出一系列问题。例如,在推理环节的效率较低,处理复杂任务时耗时较长,难以满足对实时性要求较高的场景需求;在资源利用方面,由于模型规模庞大,对计算资源和存储资源的消耗巨大,且存在一定程度的浪费等。

针对于此,来自加州大学伯克利分校 (UC Berkeley) 的研究团队于 2023 年开源了 vLLM (Virtual Large Language Model),这是一款专为大模型推理加速而设计的库,其依靠卓越的推理效率和资源优化能力在全球范围内引发广泛关注。

vLLM 教程:从入门到进阶

为帮助国内开发者更快速入门 vLLM,小贝在 http://OpenBayes.com 的「公共教程」板块上线了 4 个 vLLM 教程,覆盖了 vLLM 的安装、使用、推理以及 API 服务器的部署。无论是毫无经验的新手小白,还是已经有一定基础、渴望提升的开发者,都能找到适合自己的学习路径!

1. vLLM 入门教程:零基础分步指南

该教程逐步展示了如何配置和运行 vLLM,提供 vLLM 的安装、模型推理、启动 vLLM 服务器以及如何发出请求的完整入门指南。

* 在线运行:https://go.openbayes.com/vNYCa

2. 使用 vLLM 对 Qwen2.5 推理

该教程详细展示了如何对一个 3B 参数的大语言模型的进行推理任务,包括模型的加载、数据的准备、推理过程的优化,以及结果的提取和评估。

* 在线运行:https://go.openbayes.com/lZIUd

3. 使用 vLLM 加载大模型进行少样本学习

该教程为使用 vLLM 加载 Qwen2.5-3B-Instruct-AWQ 模型进行少样本学习,详细解释了如何通过检索训练数据获取相似问题构建对话,利用模型生成不同输出,推断误解并结合相关方法进行整合排名等操作,实现从数据准备到结果提交的完整流程。

* 在线运行:https://go.openbayes.com/pYEub

4. 将 LangChain 与 vLLM 结合使用教程

本教程围绕将 LangChain 与 vLLM 结合使用展开,旨在简化并加速智能 LLM 应用程序开发,涵盖从基础设置到高级功能应用的多方面内容。

* 在线运行:https://go.openbayes.com/BhNo3

追溯 vLLM:开源历程及技术演进

vLLM 的雏形诞生于 2022 年年底,加州大学伯克利分校的研究团队在部署一个名为「alpa」的自动化并行推理项目时,发现其运行速度非常慢且 GPU 利用率低。研究人员敏锐地察觉到,大语言模型推理存在着巨大的可优化空间。然而,市场上并没有专门针对大语言模型推理优化的开源系统,随即,他们决定自己动手创建一个大语言模型推理框架。

经过无数次的试验和调试中,他们关注到了操作系统中经典的虚拟内存和分页技术,并基于此在 2023 年提出了开创性注意力算法 PagedAttention,其可以有效地管理注意力键和值,进而构建了高吞吐量的分布式 LLM 服务引擎 vLLM,实现了 KV 缓存内存几乎零浪费,有效解决了大语言模型推理中的内存管理瓶颈问题。与 Hugging Face Transformers 相比,其吞吐量提升了 24 倍,而且这一性能提升不需要对模型架构进行任何更改。

更值得一提的是,vLLM 不受硬件限制,不仅仅局限于 Nvidia GPU,还对 AMD GPU、Intel GPU、AWS Neuron 和 Google TPU 等市面上众多硬件架构敞开怀抱,真正推动了大语言模型在不同硬件环境下的高效推理和应用。如今, vLLM 已经能够支持超 30 个生成式大语言模型,并获得了包括 Anyscale、AMD、NVIDIA、Google Cloud 在内的 20 多个企业的支持和赞助。

2023 年 6 月,vLLM 的开源代码正式发布。短短一年时间里,vLLM 在 Github 上星标数就突破了 21.8k。截止目前,该项目星标数已达 31k。

vLLM 在 GitHub 上已获得 31k stars

同年 9 月,研究团队发表了论文「Efficient Memory Management for Large Language Model Serving with PagedAttention」,进一步阐述 vLLM 的技术细节和优势。而团队对 vLLM 研究的脚步并未停歇,仍在围绕兼容性、易用性等方面展开迭代升级。例如在硬件适配方面,除了 Nvidia GPU 之外,怎样能够让 vLLM 在更多的硬件上面跑起来;再比如在科研方面,如何进一步提高系统效率和推理速度等。而这些也都体现在 vLLM 的一次次的版本更新中。

论文地址:

https://dl.acm.org/doi/10.1145/3600006.3613165

vLLM 系统概览

vLLM v0.6.4 更新

吞吐量提高 2.7 倍,延迟减少 5 倍

就在上个月,vLLM 的版本更新到了 0.6.4,在性能提升、模型支持和多模态处理等方面都取得了重要的进展。

在性能方面,新版本引入了多步调度 (Multistep scheduling) 和异步输出处理 (Asynchronous output processing),优化了 GPU 的利用率并提高了处理效率,从而提高了整体的吞吐量。

vLLM

技术解析

* 多步调度允许 vLLM 一次性完成多个步骤的调度和输入准备,使得 GPU 可以连续处理多个步骤而不必每个步骤都等待 CPU 指令,这样分散了 CPU 的工作负载,减少了 GPU 的空闲时间。

* 异步输出处理使得输出处理与模型的执行可以并行进行。具体来讲,vLLM 不再立即处理输出,而是延迟处理,在执行第 n+1 步的同时处理第 n 步的输出。虽然这可能会导致每个请求多执行一步,但对 GPU 利用率的大幅提高远远弥补了这一成本。

例如,在 Llama 8B 模型上可以实现 2.7 倍的吞吐量提升和 5 倍的 TPOT(每个输出标记的时间)减少,如下图所示。

在 ShareGPT 数据集上对搭载于 1 张 H100 的 Llama 8B 模型进行 vLLM v0.5.3 与 v0.6.0 之间的性能比较

而在 Llama 70B 模型上实现了 1.8 倍的吞吐量提升和 2 倍的 TPOT 减少,如下图所示。

在 ShareGPT 数据集上对搭载于 4 张 H100 的 70B 模型进行 vLLM v0.5.3 与 v0.6.0 之间的性能比较

模型支持方面 vLLM 新纳入了对 Exaone、Granite 和 Phi-3.5-MoE 等前沿大语言模型的适配。在多模态领域,增加了多图像输入的功能(官方文档中以 Phi-3-vision 模型作为示例演示),以及对 Ultravox 的多个音频块的处理能力,进一步扩展了 vLLM 在多模态任务中的应用范围。

首个完整版 vLLM 中文文档上线

毫无疑问,vLLM 作为大模型领域的一项重要技术创新,代表了当前高效推理的发展方向。为了让国内开发者更便捷、准确地理解其背后的先进技术原理,将 vLLM 引入到国内大模型的开发中,进而推动该领域的发展。HyperAI超神经的社区志愿者们通过开放合作的方式,经过翻译和校对的双重审核,成功完成了首个 vLLM 中文文档,现已完整上线至 https://vllm.hyper.ai/。

vLLM 中文文档官方网站

vLLM

这份文档为您提供了:

* 从零入门的基础概念科普

* 快速上手的一键克隆教程

* 及时更新的 vLLM 知识库

* 友好开放的中文社区生态

vLLM 在不同计算芯片上的安装方式

在 GitHub vLLM 中文:

https://github.com/hyperai/vllm-cn

参考资料:

1.https://blog.vllm.ai/2024/09/05/perf-update.html

2.https://www.163.com/dy/article/J6606DLJ0511B6FU.html

3. https://mp.weixin.qq.com/s/e0jcROf5bz-vaxEKILnqLw

新用户福利

* 注册福利:点击下方邀请链接注册,即可获得 4 小时 RTX 4090 + 5 小时 CPU 的免费算力时长,永久有效!

小贝总专属邀请链接(直接复制到浏览器打开):

https://go.openbayes.com/9S6Dr

相关文章:

vLLM 教程上新!覆盖从入门到进阶 4 种应用方式;中文文档同步上线,0 帧起手加速大模型推理

如今,大语言模型 (LLM) 的发展正在从规模参数迭代升级拓展至应用场景的适配与创新,在这个过程中,其也暴露出一系列问题。例如,在推理环节的效率较低,处理复杂任务时耗时较长,难以满足对实时性要求较高的场景…...

Kubernetes# RBAC访问控制

目录 定义 配置对象 Role ClusterRole ServiceAccount RoleBinding ClusterRoleBinding 配置示例 定义 Kubernetes的运行是由多种类型的资源组合起来,每种资源各司其职完成整个集群的功能。那么自然也需要一套机制控制资源的访问权限,保证安全性…...

如何实现后端返回excel文件,在前端下载功能

前言 简单记录一下,excel文件导出下载功能 一、后端接口返回excel文件 把自己生成的workbook 以文件流的方式,返回前台 Workbook workbook employeeConfirmationDefectService.exportPoorPolishExcel(budatBegin, budatEnd, queryWrapper);//传输到…...

编程:一场不设防的智慧江湖

在数字的汪洋中,有一片从未设置年龄禁区的领地——编程世界。许多人会问:35岁了,还能学编程吗?答案是:不仅能学,还能学得很精彩。 时光荏苒,科技浪潮汹涌澎湃。曾经,人们以为编程是…...

电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南

电脑游戏运行时常见问题解析:穿越火线提示“unityplayer.dll丢失”的修复指南 在探索电脑游戏的无限乐趣时,我们时常会遇到一些不期而遇的挑战。今天,我们将聚焦于一个常见的游戏运行错误——穿越火线(或其他使用Unity引擎的游戏…...

【C++】CUDA线程在全局索引中的计算方式

文章目录 1. 一维网格一维线程块2. 二维网格二维线程块3. 三维网格三维线程块4. 不同组合形式4.1 一维网格一维线程块4.2 一维网格二维线程块4.3 一维网格三维线程块4.4 二维网格一维线程块4.5 二维网格二维线程块4.6 二维网格三维线程块4.7 三维网格一维线程块4.8 三维网格二维…...

【笔记】C语言转C++

网课链接:【C语言 转 C 简单教程】 https://www.bilibili.com/video/BV1UE411j7Ti/?p27&share_sourcecopy_web&vd_source4abe1433c2a7ef632aeed6a3d5c0b22a 网课老师B站id:别喷我id 视频总时长:01:55:27 以下笔记是我通过此网课整理 建议先…...

锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集

锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集 目录 锂电池SOH预测 | 基于BiGRU双向门控循环单元的锂电池SOH预测,附锂电池最新文章汇集预测效果基本描述程序设计参考资料 预测效果 基本描述 锂电池SOH预测 | 基于Bi…...

半导体器件与物理篇5 1~4章课后习题

热平衡时的能带和载流子浓度 例 一硅晶掺入每立方厘米10^{16}个砷原子,求室温下(300K)的载流子浓度与费米能级。 需要用到的公式包括1.本征载流子浓度公式 2.从导带底算起的本征费米能级 2.从本征费米能级算起的费米能级 载流子输运现象 例1:计算在300K下&#x…...

Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告Gherkin格式命令行报告

Pytest-Bdd-Playwright 系列教程(16):标准化JSON报告&Gherkin格式命令行报告 前言一、创建Feature文件二、创建步骤定义文件三、生成Cucumber格式的JSON报告四、使用Gherkin格式的命令行报告五、将BDD报告集成到Jenkins中总结 前言 在自动…...

机器学习之学习范式

机器学习的四种主要范式分别是:监督学习、非监督学习、强化学习和半监督学习。以下是每种范式的详细介绍: 1. 监督学习(Supervised Learning) 定义: 通过已标注的数据训练模型,以预测或分类未知数据。 目…...

PHPstudy中的数据库启动不了

法一 netstat -ano |findstr "3306" 查看占用该端口的进程号 taskkill /f /pid 6720 杀死进程 法二 sc delete mysql...

鸿蒙开发-ArkTS 创建自定义组件

在 ArkTS 中创建自定义组件是一个相对简单但功能强大的过程。以下是如何在 ArkTS 中创建和使用自定义组件的详细步骤: 一、定义自定义组件 使用Component注解:为了注册一个组件,使其能够在其他文件中被引用,你需要使用Component…...

记录学习《手动学习深度学习》这本书的笔记(五)

这一章是循环神经网络,太难了太难了,有很多卡壳的地方理解了好久,比如隐藏层和隐状态的区别、代码的含义(为此专门另写了一篇【笔记】记录对自主实现一个神经网络的步骤的理解)、梯度计算相关(【笔记】记录…...

【Qt】Qt+Visual Studio 2022环境开发

在使用Qt Creator的过程中,项目一大就会卡,所以我一般都是用VS开发Cmake开发, 在上一篇文章中,我已经安装了CMake,如果你没有安装就自己按一下。 记得配置Qt环境变量,不然CMake无法生成VS项目&#xff1a…...

云计算HCIP-OpenStack04

书接上回: 云计算HCIP-OpenStack03-CSDN博客 12.Nova计算管理 Nova作为OpenStack的核心服务,最重要的功能就是提供对于计算资源的管理。 计算资源的管理就包含了已封装的资源和未封装的资源。已封装的资源就包含了虚拟机、容器。未封装的资源就是物理机提…...

HCIA-Access V2.5_3_2_VLAN数据转发

802.1Q的转发原则--Access-Link 首先看一下Access,对于Access端口来说, 它只属于一个VLAN,它的VLANID等于PVID。 首先看一下接收方向,前面说过交换机内部一定要带标签转发,所以当交换机接收到一个不带tag的数据帧时,会给它打上端…...

transformer学习笔记-导航

本系列专栏,主要是对transformer的基本原理做简要笔记,目前也是主要针对个人比较感兴趣的部分,包括:神经网络基本原理、词嵌入embedding、自注意力机制、多头注意力、位置编码、RoPE旋转位置编码等部分。transformer涉及的知识体系…...

功能篇:JAVA后端实现跨域配置

在Java后端实现跨域配置(CORS,Cross-Origin Resource Sharing)有多种方法,具体取决于你使用的框架。如果你使用的是Spring Boot或Spring MVC,可以通过以下几种方式来配置CORS。 ### 方法一:全局配置 对于所…...

防火墙内局域网特殊的Nginx基于stream模块进行四层协议转发模块的监听443 端口并将所有接收转发到目标服务器

在一些特殊场合下, 公司内部网络防火墙限制, 不能做端口映射, 此时可以使用nginx的做从四层协议转发, 只走tcp/ip协议, 而不走http方式, 可以做waf设置, 就可以做443, 或其它端口, 从而达到被直接转发到远程服务器效果 机房只映射了一个IP:22280, 而需求是这个SDK只能通过…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

基于FPGA的PID算法学习———实现PID比例控制算法

基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)

目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...