赞
踩
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数, 关于token数的含义可以查看之前文章《常识| 大模型收费计量单位之Token概念》。
(2)延迟: 另一方面反映了服务器和模型在输出序列中生成完整输出所花费的时间, 简而言之, 延迟是用户的感受——从聊天机器人收到答案所需的时间。
04 大模型推理框架对比
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应用场景开发平台成功的关键.所以对大模型推理框架要全面、客观、有效的评估。
推荐阅读:
更多合集文章请关注我的公众号,一起学习一起进步:
参考文章
https://blog.csdn.net/dfagag/article/details/137930387
https://betterprogramming.pub/frameworks-for-serving-llms-60b7f7b23407
https://www.e2enetworks.com/blog/a-comprehensive-guide-to-llms-inference-and-serving-2
https://www.run.ai/blog/serving-large-language-models
https://cloud.tencent.com/developer/article/2396136
https://qiankunli.github.io/2024/02/02/llm_inference_framework.html
https://github.com/DefTruth/Awesome-LLM-Inference
https://mp.weixin.qq.com/s/zMEuDdXKhqF0Er5x0B1iUg
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。