AI整体架构设计6:vLLM

news2024/9/22 13:39:41

训练大型语言模型以及微调的教程比比皆是,但关于在生产环境中部署它们并监控其活动的资料相对稀缺。上个章节提到了未来云原生的AI是趋势,然而涉及到云原生会比较偏技术。而在此之前为了解决大模型部署量产的问题,社区也一直在探索,目前已经有不少的工具可用于这个领域。

今天挑选几个颇具特色的主流部署工具来谈谈,例如vLLM、LLAMA.cpp 和TGI等工具,它们各自都提供各自的部署模式,本文对于数据分析师乃至数据科学家,还是刚接触AI部署的新兵,相信可以为读者打开一扇窗户进行快速的了解。

vLLM

LLM具有大量参数来执行预测,可能从3B参数量开始,然后增加到 300B,因此部署该模型需要大量资源和大量的优化工作以便于提高整体的负载,当然不是使用传统方法部署机器学习模型。

该项目来自加州大学伯克利分校的研究团队,它们对优化LLM的服务性能有着浓厚的兴趣,重点研究如何高效简洁的解决大模型的部署问题。vLLM采用了一种新的方法来解决这个问题,即巧妙的利用操作系统的虚拟内存,这种设计与传统方法相比,这可以将LLM的服务性能提高约24倍,同时仅使用GPU内存的一半。

至于如何集成,vLLM提供了一个简单的接口,让工程师可以便捷的使用Python进行开发,而无需花哨的依赖包即可将其集成。

vLLM的几项关键技术:

  • PagedAttention:核心创新,这是一种新颖的注意力机制,通过分块处理注意力键和值而不是一次性处理,当然可以配合FlashAttention协同工作。

使用 PagedAttention 将输入文本分页,生成多个较小的“页”。在每一页内,应用 FlashAttention 进行高效的注意力计算。PagedAttention 处理跨页的信息传递和聚合,减少了 KV 缓存的碎片化,确保模型能够理解跨页的全局上下文信息。FlashAttention 的高效计算方法则确保了在每一页内的计算过程快速且内存使用高效。

  • 张量并行支持:vLLM支持张量并行,将模型拆分到多个GPU上进行训练和推理的技术。

  • 易用且能立即投产:vLLM使模型部署变得非常容易,并且涵盖了实际生产中的大多数用例。计算指标以跟踪性能也很容易。

  • 广泛的模型支持:虽然添加一种的新模型可能会相当困难,但目前支持许多架构。

  • 量化和Lora支持:vLLM支持各种量化技术,如GPTQ、AWQ和 SqueezeLLM,这些技术可以非常轻松地推出,并大大优化速度和内存占用。

  • 连续批处理:批处理的大小可以动态设定,因此可应付各种负载场景。

注意力机制的计算瓶颈

目前的大模型都是基于注意力机制,它的运算则成为计算瓶颈,需要耗费大量的计算资源和计算内存。之前曾经完整的介绍了FlashAttentionv1FlashAttentionv2也是在于如何优化注意力机制的运算效率。

而在推理侧,解码器领域还有围绕着注意力机制的KV Cache优化,由于解码器是因果(即某个Token的注意力仅取决于其前面的Token),因此在每个生成步骤中都在重新计算相同的先前标记的注意力,而实际上只需要计算新标记的注意力即可。

这里就是KV Cache发挥作用的地方,通过缓存以前的Keys和Values就可以专注于计算新token的注意力。下图为一个例子,当第三个Token进来的时候可以利用缓存中的数据(紫色的数据块)。

值得注意的是这种机制需要更多的GPU HBM(若不使用GPU,则需要 CPU RAM)来缓存Key和Value的状态。

然而每个请求的KV CacheKV缓存)内存占用巨大,且会动态增长和缩减。若管理不当,这些内存会因碎片化和冗余重复而被大量浪费,从而限制批处理的大小。

PagedAttention

vLLM研发了一种名为PagedAttention的新注意力算法,该算法的灵感来自悠久的操作系统虚拟内存和分页技术。在此算法的基础上,vLLM实现了(1)KV缓存内存几乎零浪费,(2)在大模型量产过程中的服务请求之间实现灵活的KV缓存共享,从而达到节省内存的开销。

通过以后的实验进行评估,与最先进的系统(如FasterTransformer和Orca)相比,vLLM在相同延迟水平下,将流行LLM的吞吐量提高了2-4倍。对于更长序列、更大模型和更复杂的解码算法,改进更加显著。

PagedAttention是vLLM性能提升的核心,通过将KV缓存划分为块,允许在内存中不连续地存储键和值,解决了LLM 服务中内存管理的关键问题。这种方法不仅可以优化内存使用,减少高达96%的浪费,还可以实现高效的内存共享,大大降低复杂采样算法的内存开销。

计算中使用到的虚拟块会被映射到实际的物理块

多个请求同时进行,每个请求都会拥有自己的物理块

若在一次的请求中需要多次抽样,那么只需要简单的复制物理块即可。

vLLM架构

vLLM的架构如下图所示,它利用集中调度器采用分布式的方法协调GPU集群的工作执行。KV缓存管理器通过PagedAttention以分页方式有效地管理KV缓存。具体来说,KV缓存管理器通过集中调度器发送的指令来管理GPU Worker的物理KV缓存。

换句大白话,vllm通过合理且高效的内存管理实现了大模型在推理侧的性能提升。

性能对比

下面有研究人员演示通过vLLM提供LLM服务,GPU卡为A100 40g,用于使用Llama-2–13b-hf-chat进行测试。为了测试vLLM和Hugging Face之间的内存使用情况, 此示例将测试一个示例请求,然后监视GPU 使用情况。这表明 GPU 内存即将耗尽,因此Hugging Face比vLLM使用的CPU内存更多,这导致由于预留而导致GPU内存泄漏。

上图为vLLM,下图为HuaggingFace

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1702162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据链路层 + NAT技术

数据链路层:负责设备之间的数据帧的传送和识别。 一、以太网 以太网的帧格式 如何分离报头和有效数据? 报头是固定长度的 如何将数据交给上层协议? 通过类型,如果是0800,则交给IP协议,如果是0806&#xf…

华火硬核专利库丨登创新科技之巅,探创新未至之境

十年的艰苦卓越,“灶”就了华火科技之巅;电生明火的应用,不仅是一次颠覆性的创新,更是对未来厨房的无尽遐想与探索。在当今日新月异的科技时代,创新已成为推动社会进步的重要动力。 华火烹饪科技,以其深厚的…

【空号检测】手机号码状态识别背后的神秘力量:信令检测技术揭秘!

在当今数字化时代,了解一个手机号码的真实状态——是空号、停机还是活跃使用,对于企业运营、客户服务乃至个人通讯管理都至关重要。这一切高效而精准的查询能力,很大程度上归功于一项核心技术——信令检测技术。 免费测试地址:号…

【Django】中间件实现钩子函数预处理和后处理,局部装饰视图函数

在app文件夹里新建middleware.py继承MiddlewareMixin, 编写中间件类,重写process_request、process_response钩子函数 from django.http import HttpRequest, HttpResponse from django.utils.decorators import decorator_from_middleware from django…

使用MyBatis进行批量新增更新操作 ON CONFLICT

1.数据库增加uniques 2.mybatis <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"co…

蓝桥杯2023(十四届)省赛——接龙数列(DP)

接龙数列&#xff08;DP&#xff09; 1.接龙数列 - 蓝桥云课 (lanqiao.cn) 琢磨半天&#xff0c;本来是开一个三维的&#xff0c;dp[i][j][k] 表示 前i个&#xff0c;以j为首项&#xff0c;k为尾项的最大子集个数&#xff0c;但是实际上用二维即可。想求的是删除个数&#xf…

【SpringCloud】负载均衡

目录 负载均衡什么是负载均衡生活场景为什么需要负载均衡负载均衡手段负载均衡总的来说有两种实现手段负载均衡具体可以通过多种手段来实现 SpringCloud中的负载均衡组件Ribbon VS Nginx负载均衡区别集中式LB进程内LB RibbonRibbon的工作原理Ribbon在工作时分成两步 使用1.提供…

二叉树经典OJ题分析

目录 一、单值二叉树 1.1 题目 1.2 思路 1.3 C语言题解 二、相同的树 2.1 题目 2.2 思路 2.3 C语言题解 三、对称二叉树 3.1 题目 3.2 思路 3.3 C语言题解 四、另一颗树的子树 4.1 题目 4.2 思路 4.3 C语言题解 五、翻转二叉树 5.1 题目 5.2 思路 5.3 C语言…

Elasticsearch之文本分析

文本分析基本概念 官网&#xff1a;Text analysis | Elasticsearch Guide [7.17] | Elastic 官网称为文本分析&#xff0c;这是对文本进行一直分析处理的方式&#xff0c;基本处理逻辑是为按照预先制定的分词规则&#xff0c;把原本的文档进行分割成多个小颗粒度的词项&#x…

800HZ电源-高频电源行业的明星

一、800Hz电源的简介&#xff1a; 800Hz电源&#xff0c;顾名思义&#xff0c;是一种专为满足通信系统中特定频率要求而设计的电源。通常&#xff0c;800Hz电源具有极高的稳定性和精确度&#xff0c;能提供稳定的电压输出&#xff0c;确保通信设备如交换机、基站、无线路由器等…

动手学操作系统(一、搭建实验环境)

动手学操作系统&#xff08;一、搭建实验环境&#xff09; 文章目录 动手学操作系统&#xff08;一、搭建实验环境&#xff09;1. 在VMware虚拟机中安装ubuntu20.042. 安装Bochs3. 启动计算机Reference &#x1f680; 环境配置 &#x1f680; 笔者的环境使用的是 ubuntu 20.04…

计算机图形学入门Games101笔记01:Overview of Computer Graphics

第一章讲述了计算机图形学是什么和GAMES101会讲什么 1.What is Computer Graphics? The use of computers to synthesize and manipulate visual information. 图形学是合成和操纵视觉信息的计算机应用。 百度百科&#xff1a;计算机图形学(Computer Graphics&#xff0c;简…

从零开始:如何集成美颜SDK和优化美颜接口

今天&#xff0c;小编将从零开始&#xff0c;详细讲解如何集成SDK并优化美颜接口。 一、选择合适的美颜SDK 评估SDK的功能 在评估过程中&#xff0c;可以通过阅读官方文档、查看示例代码以及实际测试来确定SDK是否符合需求。 兼容性和性能 确保其支持你开发的应用平台&…

开发多个工具包的黑产团伙GXC正在积极拥抱AI技术

研究人员发现一个名为 GXC Team 的犯罪团伙&#xff0c;该团伙专门开发用于网上银行盗窃、电子商务欺诈与互联网诈骗的工具。2023 年 11 月 11 日&#xff0c;该组织以别名 googleXcoder 在暗网上发布多项公告。开始售卖新开发的结合人工智能的工具&#xff0c;用于创建用于电汇…

【必备工具】gitee上传-保姆级教程

目录 1.gitee是什么 2.gitee怎么注册 ​编辑 3.gitee怎么提交代码 4.gitee的三板斧 Clone仓库 Q&A 1. Gitee 只有三板斧吗&#xff1f; 2. Git 教了&#xff0c;Gitee 上没有绿点怎么办&#xff1f; 3. 用户名和密码输入错误怎么办&#xff1f; 4. 操作时不小心…

0成本的副业兼职,咸鱼监督打卡,新手小白也能一天100+

这两天在咸鱼上闲逛&#xff0c;看到有个项目很有意思&#xff0c;监督别人打卡赚服务费&#xff0c;每天轻松收入100。 周周近财&#xff1a;让网络小白少花冤枉钱&#xff0c;赚取第一桶金 这种监督打卡服务并非新颖的商业模式&#xff0c;实际上在很久以前&#xff0c;许多…

美业SaaS收银系统源码-已过期卡项需要延期怎么操作?美业系统实操

美业SaaS系统 连锁多门店美业收银系统源码 多门店管理 / 会员管理 / 预约管理 / 排班管理 / 商品管理 / 促销活动 PC管理后台、手机APP、iPad APP、微信小程序 1.询问会员手机号和需要延期的卡项 2.PC运营后端-数据导入-修改已售卡项&#xff0c;搜索手机号 3.把需要卡项选…

Oracle 序列-SEQUENCE

文章目录 序列-SEQUENCE创建序列访问序列序列的修改和删除查询序列信息 序列-SEQUENCE 创建序列 访问序列 序列的修改和删除 DROP SEQUENCE SEQ_EKPO;查询序列信息 可以通过视图 dba/all/user_sequences 查询序列的相关信息 SELECT SEQUENCE_NAME FROM DBA_SEQUENCES WHERE …

穿越时空的工厂之旅:探索可视化三维场景的奥秘

在科技日新月异的今天&#xff0c;我们似乎总是在不断追求着更加高效、智能的生产方式。 传统的工厂管理方式往往依赖于平面图纸、纸质文档和现场巡查&#xff0c;这不仅效率低下&#xff0c;而且容易出错。而三维可视化技术通过3D建模和虚拟现实技术&#xff0c;将工厂内部的各…

[企业级高效系统工具]短视频矩阵系统 ,一站式管理新媒体账号,短视频精准获客,一键管理上千个短视频账。

一、做项目为什么要搭建一款属于自己的系统&#xff1f; 在讲这个短视频矩阵系统前&#xff0c;我们聊聊做项目的时候为什么要搭建一款属于自己的系统。 1.拥有自己的系统&#xff0c;就意味着你可以随时随地进行源码部署和更新。你的项目就能紧跟时代潮流&#xff0c;始终保持…