AI整体架构设计6:vLLM

2024-05-27 21:52
文章标签 ai 整体 架构设计 vllm

本文主要是介绍AI整体架构设计6:vLLM,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

训练大型语言模型以及微调的教程比比皆是,但关于在生产环境中部署它们并监控其活动的资料相对稀缺。上个章节提到了未来云原生的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

这篇关于AI整体架构设计6:vLLM的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1008700

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

mybatis的整体架构

mybatis的整体架构分为三层: 1.基础支持层 该层包括:数据源模块、事务管理模块、缓存模块、Binding模块、反射模块、类型转换模块、日志模块、资源加载模块、解析器模块 2.核心处理层 该层包括:配置解析、参数映射、SQL解析、SQL执行、结果集映射、插件 3.接口层 该层包括:SqlSession 基础支持层 该层保护mybatis的基础模块,它们为核心处理层提供了良好的支撑。

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti