LLM大模型的7种推理框架分析

news2024/11/16 21:40:56

 89be71a1195202ab831288cdc438831f.jpeg

LLM的7种推理框架

   

  1. Hugging Face的transformers

这是一个Python库,可以简化本地运行LLM的过程。

Transformers的优点:

  • 自动模型下载
  • 提供代码片段
  • 非常适合实验和学习

Transformers的缺点:

  • 需要对ML和NLP有深入了解
  • 需要编码和配置技能

2.Llama.cpp:

Llama.cpp,C++推理引擎翘楚,专为Apple Silicon量身打造,高效运行Llama2模型。GPU与CPU双优化,为您的推理任务提供卓越性能,引领业界潮流。

优势显著:超越Python性能,支持在普通硬件上运行如Llama 7B等大型模型,提供多语言绑定构建AI应用,并凭借Llama.cpp高效执行推理,为您的AI项目提供强大支持。

缺点:模型支持有限,需要构建工具。

Llama.cpp是您的理想选择,无论是本地硬件运行大型模型,还是跨语言构建AI应用,其高效性与兼容性均能满足您的需求。

3.Llamafile:

Llamafile,Mozilla匠心之作,基于C++与llama.cpp库,专为自托管大型语言模型(LLMs)打造。它简化了LLM模型的创建、加载与运行,无需担忧底层环境的繁琐。其简洁的API接口,让开发人员与LLM的交互更为便捷,轻松实现各类复杂应用场景,引领智能编程新纪元。

Llamafile助力您轻松创建嵌入模型的单一可执行文件,打造便携工具的不二之选,满足您的多样化需求。

4.Ollama:

Ollama,作为Llama.cpp和Llamafile的升级之选,以其用户友好的特性脱颖而出。简易下载可执行文件后,即可在您的机器上安装服务,轻松打开终端并运行,轻松高效。

优点:易于安装和使用,可以运行llama和vicuña模型,运行速度非常快。

缺点:模型库有限,需自行管理模型,不支持模型重用,无法定制LLM运行选项,且暂不支持Windows系统。

轻松应对llama与vicuña模型运行,追求简易安装与高效使用的您,Ollama工具将是您的首选之选。

目前微软Phi-3以上四种本地运行模式都支持。详见:

Phi-3量化模型:SLM系列2

5:vLLM

vLLM,一款高效推理与服务引擎,专为大型语言模型打造,提供高吞吐量、内存优化服务,轻松实现便捷、快速、经济的LLM体验。

优点

  • 高效的服务吞吐量:vLLM可以快速处理大量的并发请求。
  • 支持模型种类多。
  • vLLM通过创新的PagedAttention技术,显著提升了内存效率,高效管理注意力键和值,助力强大性能。

缺点

  • 你需要确保你的设备有GPU,CUDA或者RoCm.

vLLM会提供对Phi-3的支持,目前代码在集成中。

对Phi-2的支持的验证详见:

语言模型小型化尝试-PyTorch学习系列36

6.TGI(Text Generation Inference)

TGI,由HuggingFace倾力打造的文本生成推理部署框架,兼容主流大模型及其量化方案。结合Rust与Python,TGI巧妙平衡服务效率与业务灵活性,并实现了丰富特性,助力您轻松部署和优化大模型推理任务。

  • 简单的启动LLM
  • 优化后的transformers代码,利用Flash Attention与Paged Attention技术,显著提升推理性能,打造高效、精准的智能应用。
  • 运用bitsandbytes的GPT-Q、EETQ、AWQ与Safetensors技术,实现高效量化,提升性能与效率。

TGI与Transformer推理方式有所不同,差异体现在多个关键方面,包括但不限于处理文本生成与推断的独特方法。

  • TGI与Transformer均支持并行计算,但TGI更胜一筹。它巧妙结合Rust与Python,实现服务效率与业务灵活性的完美平衡。在处理庞大语言模型时,TGI能高效利用计算资源,显著提升推理速度,为您带来前所未有的高效体验。
  • TGI引入革新优化技巧,包括continuous batching、Flash Attention和Paged Attention,显著提升推理效率和性能,较传统Transformer模型更具优势。这些技巧让您在数据处理上更胜一筹,轻松实现高效能计算。
  • TGI支持GPTQ模型服务部署,实现单卡上连续批处理的大模型运行,优于传统Transformer模型,确保高效能与广泛适用性,为大型模型应用提供强大支持。

TGI在某些方面超越传统Transformer推理,但并非万能。面对与TGI优化策略不匹配的任务或数据时,传统Transformer推理或更为适用。经测试,TGI在推理速度上尚不及vLLM。因此,在选择推理方法时,需根据实际需求灵活权衡,确保最优解的选择。

TGI推理支持容器方式运行:

3f81b93bf6c3ac1a0461a5f38317f7a2.jpeg

7.Deepspeed

DeepSpeed,微软开源的深度学习优化库,支持本地推理。它通过系统优化和压缩技术,深度优化硬件、操作系统和框架,运用模型与数据压缩,显著提升大规模模型的推理与训练效率。

DeepSpeed-Inference,作为DeepSpeed框架的推理扩展,专为大型语言模型打造。凭借模型、张量及流水线并行技术,显著提升推理性能,大幅缩短延迟,让语言处理更迅速高效。

详细内容参见:

DeepSpeed-Chat微调模型:deepspeed训练系列-1

推理框架的选择(选择之前先确认要使用的模型是否支持这种推理框架):

DeepSpeed:卓越选择,专为高性能推理任务定制。其独特的ZeRO优化器、3D并行(数据、模型与流水线并行)以及1比特Adam等技术,大幅增强大模型训练与推理效率。若您追求极致性能,DeepSpeed不容错过。

ollama,简便易用的工具之选。其显著优势在于易用性,用户仅需通过简易命令行界面,即可轻松运行模型,让操作更加流畅高效。

Llamafile,卓越之选,打造嵌入模型的独立可执行文件。它以卓越的便携性和单文件生成能力闻名,轻松满足您一体化部署需求。

TGI(文本生成推理)是多种硬件环境下高效推理的优选。它集成模型并行、张量并行和流水线并行等优化技术,为大型模型推理带来显著效率提升。无论您的任务需求如何,TGI都能助您一臂之力。

Transformer模型,处理自然语言处理任务的理想之选。对于机器翻译、文本生成等复杂任务,其强大的表示能力可精准捕获文本长距离依赖关系。选择Transformer,解锁自然语言处理的无限可能。

vLLM,专为处理海量自然语言任务而生,如文本分类与情感分析。作为大规模预训练模型,vLLM在各种NLP任务中均展现卓越性能,是您处理大规模数据的不二之选。

 

-对此,您有什么看法见解?-

-欢迎在评论区留言探讨和分享。-

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

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

相关文章

文科论文,使用AI写作时能够提供实证数据吗?

人工智能时代,为了撰写论文提供思路及高效,利用AI撰写论文已是常态,可撰写文科论文通常研究中都需要实证数据,而AI撰写论文时能够提供这样的数据吗? 一、什么是实证数据 实证数据是指从研究报告、财务报表、新闻报道…

C++ wasm 使用教程

环境搭建 git clone https://github.com/emscripten-core/emsdk.gitgit pull./emsdk install latest./emsdk activate latestsource ./emsdk_env.sh./emcc -v && ./emcc c11__Thread_local.c -s WASM_WORKERS --threadprofiler --memoryprofiler -v -o test.html &…

pr视频旋转90°

1.找到视频特效“运动” 2.旋转270 3.找到“序列”---“序列设置”,更改画面大小 成品展示:

【可能是东半球最好的stm32入门教学】第1章 环境配置

在嵌入式开发中,外设的初始化往往不是重点。以往的标准库教程虽有助于理解和熟悉芯片的寄存器功能,但是对于很多初学者,在入门阶段就学习这些较难的知识反而减少了他们的学习兴趣。那么有没有一个软件可以用图形化的界面完成芯片的初始化&…

C++高效死锁检测——实现原理与应用(基于强连通分量)

背景 在项目使用多进程、多线程过程中,因争夺资源而造成一种资源竞态,所以需加锁处理。如下图所示,线程 A 想获取线程 B 的锁,线程 B 想获取线程 C 的锁,线程 C 想获取线程 D 的锁, 线程 D 想获取线程 A 的…

Redis优化笔记

Redis优化 一:Key: 1.1.Key的规范: 测试如下: 1.2.拒绝BigKey: 我们可以用: MEMORY USAGE name命令来看它的大小。 注意,这里的第二种之所以不使用Keys *,因为在实际生产时&#…

Python | Leetcode Python题解之第101题对称二叉树

题目: 题解: class Solution:# 在【100. 相同的树】的基础上稍加改动def isSameTree(self, p: Optional[TreeNode], q: Optional[TreeNode]) -> bool:if p is None or q is None:return p is qreturn p.val q.val and self.isSameTree(p.left, q.ri…

深度学习中的优化算法二(Pytorch 19)

一 梯度下降 尽管梯度下降(gradient descent)很少直接用于深度学习,但了解它是理解下一节 随机梯度下降算法 的关键。例如,由于学习率过大,优化问题可能会发散,这种现象早已在梯度下降中出现。同样地&…

Spark-RDD-常用算子(方法)详解

Spark概述 Spark-RDD概述 Spark RDD 提供了丰富的方法来对数据进行转换和操作。 对 RDD(Resilient Distributed Dataset)的操作可以分为两大类:转换算子(Transformations)和行动算子(Actions)…

Tower在深度学习中的概念,tower没有确切定义

在论文UniTS中,来自Havard的工作。 tower更像是针对一个task的组件 tower这个概念貌似在REC(recommendation)推荐系统中使用较多 deep learning - What is a tower? - Data Science Stack Exchange https://developers.google.com/machin…

C语言数据结构栈的概念及结构、栈的实现、栈的初始化、销毁栈、入栈、出栈、检查是否为空、获取栈顶元素、获取有效元素个数等的介绍

文章目录 前言栈的概念及结构栈的实现一、 栈结构创建二、 初始化结构三、销毁栈四、入栈五、出栈六、检查是否为空七、获取栈顶元素八、获取有效元素的个数九、测试 1十、测试 2总结 前言 C语言数据结构栈的概念及结构、栈的实现、栈的初始化、销毁栈、入栈、出栈、检查是否为…

查找专利渠道

官方渠道 常规检索 (cnipa.gov.cn)https://pss-system.cponline.cnipa.gov.cn/conventionalSearch 佰腾网 佰腾网 - 查专利就上佰腾网_佰腾全球专利搜索平台_商标查询平台_企业工商信息查询平台 (baiten.cn)https://www.baiten.cn/

从0开始实现一个博客系统 (SSM 实现)

相关技术 Spring Spring Boot Spring MVC MyBatis Html Css JS pom 文件我就不放出来了, 之前用的 jdk8 做的, MySQL 用的 5.7, 都有点老了, 你们自己看着配版本就好 实现功能 用户注册 - 密码加盐加密 (md5 加密)前后端用户信息存储 - 令牌技术用户登录 - (使用 拦截…

c++(三)

C(三) staticc语言的staticc中的staticstatic修饰的成员变量static 修饰成员函数 constc语言cconst修饰成员变量const修饰的成员函数const修饰的类对象 mutable友元普通函数作为友元类的成员函数作为友元友元类 static c语言的static C语言中static的作…

【test】Windows11下通过sshfs挂载远程服务器目录

下载安装下面三个软件: sshfs-win:https://github.com/billziss-gh/sshfs-win/releases winfsp:https://github.com/billziss-gh/winfsp/releases SSHFS-Win Manager:https://github.com/evsar3/sshfs-win-manager/releases 安装…

增强ev代码签名证书2300

代码签名证书是软件开发者们确保软件完整性和安全性的重要工具之一。在各种类型的代码签名证书中,增强EV代码签名证书拥有许多独特的功能而受到企业开发者的欢迎,今天就随SSL盾小编了解增强EV代码签名证书的申请条件以及申请流程。 1.增强型EV代码签名证…

Linux——Dockerfile

在这里我们来整理一下docker容器、dockerfile、docker镜像的关系: dockerfile是面向开发的,发布项目做镜像的时候就要编写dockerfile文件。 dockerfile:构建文件,定义了一切的步骤,源代码。 dockerImanges&#xff1a…

【AI绘画Stable Diffusion】单人LoRA模型训练,打造你的专属模型,新手入门宝典请收藏!

大家好,我是灵魂画师向阳 本期我将教大家如何进行LoRA模型训练,打造你的专属模型,内容比较干,还请耐心看完! 随着AIGC的发展,许多传统工作岗位正逐渐被AI取代。同时,AI变革也在创造前所未有的…

STM32 学习——1. STM32最小系统

这是一个最小系统的测试,LED灯会进行闪烁。选用PC13口,因为STM32F103C8T6 硬件开发板中,这个端口是一个LED 1. proteus8.15 原理图 2. cubemx 新建工程 3. keil 代码 while (1){HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);HAL_Delay(100);…

《计算机网络微课堂》1-3 三种交换方式

本节课我们介绍三种交换方式,分别是电路交换(Circuit Switching),分组交换(Packet Switching)以及报文(Message Switching)交换。 我们首先来看电路交换,在电话问世后不…