LLM的7种推理框架

我们如何在本地安全地运行私有的LLMs呢?开源模型为此提供了可能的解决方案。本文将介绍七种方法。

  1. Hugging Face的transformers

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

Transformers的优点:

  • 自动模型下载

  • 提供代码片段

  • 非常适合实验和学习

Transformers的缺点:

  • 需要对ML和NLP有深入了解

  • 需要编码和配置技能

2.Llama.cpp:

特点:Llama.cpp是一个基于C++的推理引擎,专门为Apple Silicon优化,可以运行Meta的Llama2模型。它针对GPU和CPU都做了推理优化。

优点:性能高于基于Python的解决方案,支持在适度的硬件上运行大型模型,如Llama 7B,并提供绑定,可以用其他语言构建AI应用程序,同时通过Llama.cpp运行推理。

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

使用场景:当你需要在自己的硬件上运行大型模型,或者需要用其他语言构建AI应用程序时,可以选择使用Llama.cpp。

3.Llamafile:

特点:Llamafile由Mozilla开发,基于C++开发,它使用了llama.cpp,这是一个C++库,提供了运行自托管大型语言模型(LLMs)所需的各种功能。通过llama.cpp,开发人员可以轻松地创建、加载和运行LLM模型,而无需担心底层环境的复杂性。此外,Llamafile还提供了一个简洁的API接口,使得开发人员可以更加方便地与LLM进行交互,从而实现各种复杂的应用场景.

优点:与Llama.cpp相同的速度优势,你可以构建一个嵌入模型的单个可执行文件。

缺点:项目仍处于早期阶段,不是所有模型都支持,只支持Llama.cpp支持的模型。

使用场景:当你需要创建一个嵌入模型的单个可执行文件,或者需要一个便携性强的工具时,可以选择使用Llamafile。

4.Ollama:

特点:Ollama是Llama.cpp和Llamafile的一个更加用户友好的替代品。你下载一个可执行文件,它会在你的机器上安装一个服务。安装完成后,你打开一个终端并运行。

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

缺点:提供有限的模型库,自己管理模型,你不能重用自己的模型,无法调整选项来运行LLM,暂时没有Windows版本。

使用场景:当你需要一个易于安装和使用的工具,或者需要运行llama和vicuña模型时,可以选择使用Ollama。

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

5:vLLM

vLLM是一个高吞吐量和内存高效的大型语言模型(LLMs)推理和服务引擎。它的目标是为每个人提供简便、快捷、经济的LLM服务。

优点

  • 高效的服务吞吐量:vLLM可以快速处理大量的并发请求。

  • 支持模型种类多。

  • 内存高效:vLLM使用了一种名为PagedAttention的技术,可以高效地管理注意力键和值的内存。

缺点

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

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

6.TGI(Text Generation Inference)

TGI(Text Generation Inference)是HuggingFace推出的大模型推理部署框架。它支持主流大模型和主流大模型量化方案,并且联用Rust和Python来达到服务效率和业务灵活性的平衡。TGI实现了许多特性,例如:

  • 简单的启动LLM

  • 使用Flash Attention和Paged Attention进行推理的优化的transformers代码

  • 使用bitsandbytes GPT-Q EETQ AWQ Safetensors进行量化

Text Generation Inference(TGI)和Transformer模型的推理方式有一些区别,主要体现在以下几个方面:

  • 并行计算:TGI和Transformer都支持并行计算,但TGI更进一步,它使用了Rust和Python联用的方式,实现了服务效率和业务灵活性的平衡。这使得TGI在处理大型语言模型时,能够更有效地利用计算资源,提高推理效率。

  • 优化技巧:TGI引入了一些优化技巧,如continuous batching、Flash Attention和Paged Attention等,这些技巧可以进一步提高推理的效率和性能1。而传统的Transformer模型可能没有这些优化技巧。

  • 模型支持:TGI支持部署GPTQ模型服务,这使得我们可以在单卡上部署拥有continuous batching功能的,更大的模型。而传统的Transformer模型可能没有这样的支持。

然而,虽然TGI在某些方面可能比传统的Transformer推理更优秀,但这并不意味着我们就不需要使用Transformer的推理了。因为在某些情况下,例如当我们需要处理的任务或数据与TGI的优化技巧不匹配时,使用传统的Transformer推理可能会更合适。目前测试效果TGI的推理速度不如vLLM。

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

7.Deepspeed

DeepSpeed支持本地推理。DeepSpeed是微软推出的一个开源深度学习优化库,它通过系统优化和压缩的方法,深度优化硬件设备、操作系统、框架等方面,并采用模型压缩和数据压缩技术,以提升大规模模型推理和训练的效率。

DeepSpeed-Inference是DeepSpeed框架在推理方面的扩展,专门针对大语言模型设计。它通过模型并行、张量并行和流水线并行等技术,提高了推理性能并降低了延迟。

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

DeepSpeed:如果你的任务需要高性能的推理,那么DeepSpeed可能是一个好选择。DeepSpeed提供了一系列优化技术,如ZeRO(零冗余优化器),3D并行(数据并行、模型并行和流水线并行的结合),1比特Adam等,这些技术可以显著提升大模型训练和推理的效率。

ollama:如果你需要一个易于使用的工具,那么ollama可能更适合你。ollama的主要优点在于其易用性,用户可以通过简单的命令行界面运行模型。

Llamafile:如果你需要创建一个嵌入模型的单个可执行文件,那么Llamafile可能是一个好选择。Llamafile以其便携性和创建单文件可执行文件的能力而闻名。

TGI (Text Generation Inference):如果你的任务需要在多种硬件环境下进行高效推理,那么TGI可能是一个好选择。TGI提供了一系列优化技术,如模型并行、张量并行和流水线并行等,这些技术可以显著提升大模型推理的效率。

Transformer:如果你的任务需要处理复杂的自然语言处理任务,如机器翻译、文本生成等,那么使用基于Transformer的模型可能是一个好选择。Transformer模型具有强大的表示能力,可以捕获文本中的长距离依赖关系。

vLLM:如果你的任务需要处理大规模的自然语言处理任务,如文本分类、情感分析等,那么使用vLLM可能是一个好选择。vLLM是一个大规模的预训练模型,可以在各种自然语言处理任务上实现优秀的性能。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值