当前位置: 首页 > 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只能通过…...

【Hive】-- hive 3.1.3 伪分布式部署(单节点)

1、环境准备 1.1、版本选择 apache hive 3.1.3 apache hadoop 3.1.0 oracle jdk 1.8 mysql 8.0.15 操作系统:Mac os 10.151.2、软件下载 https://archive.apache.org/dist/hive/ https://archive.apache.org/dist/hadoop/ 1.3、解压 tar -zxvf apache-hive-4.0.0-bin.tar…...

C++ STL 队列queue详细使用教程

序言 我们平常写广搜什么&#xff0c;上来就是一句 queue<XXX> qu; 说明队列时很重要的。 STL库中的queue把队列的各种操作封装成一个类&#xff0c;非常方便&#xff0c;信奥中使用它也是很有优势的。 目录 一、队列的定义 二、创建队列对象 三、队列的初始化 四、常…...

【前端】JavaScript 中的 filter() 方法的理论与实践深度解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;filter() 方法的概念与原理1. 什么是 filter()&#xff1f;2. 基本工作原理3. 方法特点4. 用法格式参数解析 &#x1f4af;代码案例详解示例&#xff1a;筛选有效数字并…...

【机器学习算法】——决策树之集成学习:Bagging、Adaboost、Xgboost、RandomForest、XGBoost

集成学习 **集成学习(Ensemble learning)**是机器学习中近年来的一大热门领域。其中的集成方法是用多种学习方法的组合来获取比原方法更优的结果。 使用于组合的算法是弱学习算法&#xff0c;即分类正确率仅比随机猜测略高的学习算法&#xff0c;但是组合之后的效果仍可能高于…...

JVM运行时数据区内部结构

VM内部结构 对于jvm来说他的内部结构主要分成三个部分&#xff0c;分别是类加载阶段&#xff0c;运行时数据区&#xff0c;以及垃圾回收区域&#xff0c;类加载我们放到之后来总结&#xff0c;今天先复习一下类运行区域 首先这个区域主要是分成如下几个部分 下面举个例子来解释…...

Navicat for MySQL 查主键、表字段类型、索引

针对Navicat 版本11 &#xff0c;不同版本查询方式可能不同 1、主键查询 &#xff08;重点找DDL&#xff01;&#xff01;&#xff01;&#xff09; 方法&#xff08;1&#xff09; &#xff1a;右键 - 对象信息 - 选择要查的表 - DDL - PRIMARY KEY 方法&#xff08;2&…...

如何在谷歌浏览器中实现自定义主题

在数字化时代&#xff0c;个性化设置已成为提升用户体验的重要一环。对于广泛使用的谷歌浏览器而言&#xff0c;改变默认的浏览器主题不仅能够美化界面&#xff0c;还能在一定程度上提升使用效率和愉悦感。本文将详细介绍如何在谷歌浏览器中实现自定义主题&#xff0c;包括从官…...

visual studio 2022 c++使用教程

介绍 c开发windows一般都是visual studio&#xff0c;linux一般是vscode&#xff0c;但vscode调试c不方便&#xff0c;所以很多情况都是2套代码&#xff0c;在windows上用vs开发方便&#xff0c;在转到linux。 安装 1、官网下载vs2022企业版–选择桌面开发–安装位置–安装–…...

曝光三要素

一光圈 光圈越大&#xff0c;数值越小&#xff0c;画面越亮&#xff0c;背景越模糊 光圈越小&#xff0c;数值越大&#xff0c;画面越暗&#xff0c;背景越清晰 二 快门 快门最主要的作用是控制曝光时间的长短 快门速度的单位是秒&#xff0c;一般用 1秒&#xff0c;1/8秒&am…...

01-2 :PyCharm安装配置教程(图文结合-超详细)

一、PyCharm安装 PyCharm集成开发工具&#xff08;IDE&#xff09;&#xff0c;是当下全球Python开发者&#xff0c;使用最频繁的工具软件。 绝大多数的Python程序&#xff0c;都是在PyCharm工具内完成的开发。 本篇文章基于PyCharm软件工具进行描述&#xff0c;教你如何安装…...