01 什么是框架?
开始介绍之前, 我们先了解一下什么是框架?xx框架-IT人经常听到的名词。但是又有多少人知道框架的意思?
框架(framework)是一个框子:指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。在IT软件领域,软件框架(software framework)的标准定义:通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
简而言之,框架其实就是某种应用的半成品,就是一组组件,开发可以基于框架已有的规范和标准,快速实现自己的需求,让开发者聚焦业务领域代码。
常见的Java后端框架:Mybatis、Spring、SpringMVC、SpringBoot。前端框架有:Bootstrap、jQuery、Vue、React。这些框架无一另外都是让开发者快速开发业务逻辑。按照框架规范,定义自己业务参数。
02 为什么需要大模型推理框架
之前介绍过《Transformer原理》 ,我们知道现在LLM都是基于深度学习模型开发,训练,深度学习开发、训练等常见框架有TensorFlow、Pytorch以及Mxnet等。这些框架提供了丰富的函数库和模块,可以帮助研究人员快速构建和训练复杂的深度学习模型。但是现在单卡资源难以满足大模型训练,我们需要分布式、多卡等方式训练和推理。
对于一个深度学习工程师而言,当你在pytorch或者tensorflow写好了一个大模型,要怎么样分布式训练起来?你要怎么才能把它实际部署到云端或具体的设备上给用户使用?当你面对不同的硬件,不同的平台环境,你要如何去让代码适配并成功高效运行?难道要针对每个平台都写一套单独的代码吗?会不会工作量太大了?等等问题摆在面前。
针对以上问题, 我们不得不请出我们大模型推理框架: 大模型推理框架是一种基于深度学习技术的推理框架,旨在支持大规模深度学习模型的训练和部署。它提供了一系列的工具和服务,使得开发者能够高效地在大规模数据集上训练和部署深度学习模型,并进行推理任务。这一框架通常包括模型训练框架、分布式推理引擎、数据存储与检索等功能模块,以满足不同场景下的需求。
03 大模型推理框架指标
模型推理框架最重要的2个指标:
(1) 吞吐量: 吞吐量告诉我们我们的系统可以有效处理多少用户。吞吐量代表推理服务器在用户的多个请求中每秒生成的token数。
(2)延迟: 另一方面反映了服务器和模型在输出序列中生成完整输出所花费的时间, 简而言之, 延迟是用户的感受——从聊天机器人收到答案所需的时间。
04 大模型推理框架对比
框架特点说明 | 优点 | 缺点 |
vLLM: 一个开源的大模型推理加速框架,通过PagedAttention高效地管理attention中缓存的张量,实现了比HuggingFace Transformers高14-24倍的吞吐量。它兼容OpenAI的接口服务,并与HuggingFace模型无缝集成。 |
|
|
transformers: Hugging Face推出的库 |
|
|
HuggingFace TGI (Text Generation Inference): 作为支持HuggingFace Inference API的工具,旨在支持大型语言模型的优化推理。它支持多GPU多节点扩展,可推理万亿规模参数 |
Text Generation Inference(TGI)和Transformer模型的推理方式有一些区别,主要体现在以下几个方面:
| 需要处理的任务或数据与TGI的优化技巧不匹配时,使用传统的Transformer推理可能会更合适。目前测试效果TGI的推理速度不如vLLM。
|
DeepSpeed:微软出品的高性能推理框架,DeepSpeed-FastGen 利用分块 KV 缓存和动态分割融合连续批处理,提供了比vLLM更好的吞吐。 |
|
|
Llama.cpp: Llama.cpp是一个基于C++的推理引擎,专门为Apple Silicon优化,可以运行Meta的Llama2模型。它针对GPU和CPU都做了推理优化。 |
| 模型支持有限,需要构建工具。 |
Llamafile: 由Mozilla开发,基于C++开发,它使用了llama.cpp,这是一个C++库,提供了运行自托管大型语言模型(LLMs)所需的各种功能。通过llama.cpp,开发人员可以轻松地创建、加载和运行LLM模型,而无需担心底层环境的复杂性。此外,Llamafile还提供了一个简洁的API接口,使得开发人员可以更加方便地与LLM进行交互,从而实现各种复杂的应用场景. | 与Llama.cpp相同的速度优势,你可以构建一个嵌入模型的单个可执行文件。 | 项目仍处于早期阶段,不是所有模型都支持,只支持Llama.cpp支持的模型。 |
Ollama: 是Llama.cpp和Llamafile的一个更加用户友好的替代品。你下载一个可执行文件,它会在你的机器上安装一个服务。安装完成后,你打开一个终端并运行。 | 易于安装和使用,可以运行llama和vicuña模型,运行速度非常快。 | 提供有限的模型库,自己管理模型,你不能重用自己的模型,无法调整选项来运行LLM,暂时没有Windows版本。 |
TensorRT-LLM:英伟达新推出了TensorRT-LLM,相对来说更加易用,后续FasterTransformer将不再维护了。 |
|
|
MLC LLM:Machine Learning Compilation for Large Language Models (MLC LLM) 是一个高性能的通用部署解决方案,支持任何大语言模型的原生部署。MLC LLM支持以下平台和硬件:AMD GPU、 NVIDIA GPU、 Apple GPU、 Intel GPU、 Linux / Win、 macOS、 Web 浏览器、 iOS / iPadOS、 Android. |
|
|
OpenLLM:OpenLLM是一个用于在生产中操作大型语言模型(LLM)的开放平台。 |
|
|
CTranslate2:CTranslate2是一个C++和Python库,用于使用Transformer模型进行高效推理。 |
|
|
Ray Serve:Ray Serve是一个可扩展的模型服务库,用于构建在线推理API。Serve与框架无关,因此可以使用一个工具包来为深度学习模型的所有内容提供服务。 |
|
|
05 推理框架适用场景
上面列出那么多推理框架,是不是被搞懵逼了,虽然从文字说明各个推理框架优缺点,但是依然显得有些干涩. 国外有些伙伴从不同维度对比了各个主流(不是上面的全部)推理框架, 方便大家快速理解,不同框架的优势和劣势, 其中vLLM在Tokens吞吐量优势明显。
上图说明各个推理框架某些特质各有千秋,不同推理引擎在不同平台,硬件和模式下分别具有各自的优势.我们可以从不同应用场景去推荐推理框架。
(1)De****epSpeed:如果你的任务需要高性能的推理,那么DeepSpeed可能是一个好选择。DeepSpeed提供了一系列优化技术,如ZeRO(零冗余优化器),3D并行(数据并行、模型并行和流水线并行的结合),1比特Adam等,这些技术可以显著提升大模型训练和推理的效率。
(2)oll****ama:如果你需要一个易于使用的工具,那么ollama可能更适合你。ollama的主要优点在于其易用性,用户可以通过简单的命令行界面运行模型。
(3)L****lamafile:如果你需要创建一个嵌入模型的单个可执行文件,那么Llamafile可能是一个好选择。Llamafile以其便携性和创建单文件可执行文件的能力而闻名。
(4)TG****I (Text Generation Inference):如果需要本机 HuggingFace 支持并且不打算为核心模型使用多个适配器,选择文本生成推理。如果你的任务需要在多种硬件环境下进行高效推理,那么TGI可能是一个好选择。TGI提供了一系列优化技术,如模型并行、张量并行和流水线并行等,这些技术可以显著提升大模型推理的效率。
(5)vLLM:当需要批处理和最大速度时,请使用vLLM, 如果你的任务需要处理大规模的自然语言处理任务,如文本分类、情感分析等,那么使用vLLM可能是一个好选择。vLLM是一个大规模的预训练模型,可以在各种自然语言处理任务上实现优秀的性能。
(6)llama.cpp : 如果CPU推理,llama.cpp 结合模型int4量化,会是一个比较好的选择。
(7)MLCM: 手机终端推理,MLC LLM是不错的选择, 可在客户端(边缘计算)(例如,在Android或iPhone平台上)本地部署LLM。
06 总结
LLM和LLM 推理的技术如雨后春笋发展, 现在业界尚不存在各方面都远超其同类产品的推理框架. 针对不同需求和应用场景,不同推理框架优势不一样. 有些推理不仅仅只提供引擎的功能(Engine)、也提供http/rpc api的接口,比如Text Generation Inference。
同时仅仅依靠推理引擎功能,离一个完整大模型应用开发平台还有一段距离, 大模型应用开发平台的工具除了支持基本的模型推理,还有标准化的api,以及配套管理工具,可以方便去开发和管理AI应用。
推理框架作为大模型应用开发平台的引擎, 其重要性不在赘述,毫不夸张的说,为自己应用场景选择一款适合的推理框架,是LLM应用场景开发平台成功的关键.所以对大模型推理框架要全面、客观、有效的评估。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
![](https://img-blog.csdnimg.cn/img_convert/e1d9d45ff2d36bc52c1791b23f9c881b.jpeg)
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
![](https://img-blog.csdnimg.cn/img_convert/e1d9d45ff2d36bc52c1791b23f9c881b.jpeg)