vLLM vs Text Generation Interface:大型语言模型服务框架的比较

在大型语言模型(LLM)的世界中,有两个强大的框架用于部署和服务LLM:vLLM 和 Text Generation Interface (TGI)。这两个框架都有各自的优势,适用于不同的使用场景。在这篇博客中,我们将对这两个框架进行详细的比较。

vLLM

vLLM 是一个用于 LLM 推理和服务的高吞吐量和内存高效的库。它具有以下特点:

  • 具有最先进的服务吞吐量。
  • 通过 PagedAttention 高效管理注意力键和值内存。
  • 对传入请求进行连续批处理。
  • 支持 CUDA/HIP 图形的快速模型执行。
  • 量化:GPTQ,AWQ,SqueezeLLM,FP8 KV 缓存。
  • 优化的 CUDA 内核。

vLLM 也具有灵活性和易用性:

  • 与流行的 Hugging Face 模型无缝集成。
  • 使用各种解码算法进行高吞吐量服务,包括并行采样,波束搜索等。
  • 支持分布式推理的张量并行性。
  • 流式输出。
  • 支持 OpenAI 兼容的 API 服务器。
  • 支持 NVIDIA GPU 和 AMD GPU(实验性)。
  • 支持前缀缓存(实验性)。
  • 支持多 lora。

vLLM 无缝支持许多 Hugging Face 模型,包括以下架构:Aquila & Aquila2。

Text Generation Interface (TGI)

Text Generation Interface (TGI) 是一个多功能的选项,支持各种 LLMs,包括量化和微调。它适用于需要为核心模型增加多个 adapter 的场景。

比较

在选择使用哪个框架时,需要根据你的具体需求和应用场景来决定。如果你需要处理大量的 Prompt 输入,并且对推理速度有较高的要求,那么 vLLM 可能是一个更好的选择。如果你需要支持各种 LLMs,并且需要进行量化和微调,那么 TGI 可能更适合你。

在大型语言模型(LLM)的部署和服务框架方面,vLLM 和 Text Generation Interface (TGI) 是两个主流的选择。然而,是否有更好的框架取决于你的具体需求和应用场景。

根据网络上的一些讨论123,以下是一些可能的选择:

CTranslate22:如果你计划在 CPU 上运行推理,CTranslate2 可能是一个好选择

OpenLLM2:如果你打算为核心模型添加适配器并使用 HuggingFace Agents,尤其是不完全依赖 PyTorch,那么 OpenLLM 可能是一个好选择。

Ray Serve2:如果你需要稳定的 Pipeline 和灵活的部署,那么 Ray Serve 可能是一个好选择,它最适合更成熟的项目。

MLC LLM2:如果你打算在客户端(例如,在 Android 或 iPhone 平台上)本地部署 LLM,那么 MLC LLM 可能是一个好选择。

源码:

vllm:

:GitHub - vllm-project/vllm: A high-throughput and memory-efficient inference and serving engine for LLMs

text-generation-webui :

GitHub - oobabooga/text-generation-webui: A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models.

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

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

相关文章

Docker基础与持续集成

docker 基础知识: docker与虚拟机 !左边为虚拟机,右边为docker环境 – Server :物理机服务器Host OS :构建的操作系统Hypervisor :一种虚拟机软件,装了之后才能虚拟化操作系统Guest OS :虚拟化的操作系统…

突破编程_C++_基础教程(继承与多态)

1 继承 继承是面向对象编程的一个基本概念,它允许一个类(派生类、子类)继承另一个类(基类、父类)的属性和方法。继承可以减少代码冗余,提高代码重用性,并且有助于创建更复杂的类结构。 1.1 继…

自动驾驶轨迹规划之kinodynamic planning

欢迎大家关注我的B站: 偷吃薯片的Zheng同学的个人空间-偷吃薯片的Zheng同学个人主页-哔哩哔哩视频 (bilibili.com) 本文PPT来自深蓝学院《移动机器人的运动规划》 目录 1.kinodynamic的背景 2. old-school pipline 3.example 1.kinodynamic的背景 kinodynami…

java之jvm详解

JVM内存结构 程序计数器 Program Counter Register程序计数器(寄存器) 程序计数器在物理层上是通过寄存器实现的 作用:记住下一条jvm指令的执行地址特点 是线程私有的(每个线程都有属于自己的程序计数器)不会存在内存溢出 虚拟机栈(默认大小为1024kb) 每个线…

LeetCode、739. 每日温度【中等,单调栈】

文章目录 前言LeetCode、739. 每日温度【中等,单调栈】题目链接及分类思路单调栈 资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技…

(delphi11最新学习资料) Object Pascal 学习笔记---第5章第1节(动态数组)

5.1.4 动态数组 ​ 在传统的Pascal中,数组的大小是固定的,并且在声明数据类型时限制了元素的数量。然而,Object Pascal支持动态数组的直接和本地实现。 注解:“直接实现动态数组” 与使用指针和动态内存分配来获得类似效果的方法…

ROS笔记三:话题

目录 简要介绍 ROS话题通信机制的一些核心概念和流程: 话题通信的流程如下 ROS常见的topic命令行指令 发布话题 1.创建ROS节点并初始化 2.创建话题发布者 3.创建消息实例并设置内容 4.将消息发布出去 5.保持节点运行 订阅话题 初始化ROS节点和创建NodeHan…

PMP考试之20240214

1、你同时管理着公司的六个项目。两个项目属于类似类型,而其他四个项目则完全不同。你的职位是? A.项目组合经理 B.项目集经理 C.项目经理 D.项目协调员 答案:A 解析:在项目组合管理中,一组相关或非相关的计划和…

二次元自适应动态引导页

源码介绍 二次元自适应动态引导页,HTMLJSCSS,记事本修改,上传到服务器即可,也可以本地双击index.html查看效果 下载地址 https://wfr.lanzout.com/isRem1o7bfcb

MockServer 服务框架设计

大部分现有的 mock 工具只能满足 HTTP 协议下简单业务场景的使用。但是面对一些复杂的业务场景就显得捉襟见肘,比如对 socket 协议的应用进行 mock,或者对于支付接口的失败重试的定制化 mock 场景。 为解决上述问题,霍格沃兹测试学院设计并研…

零基础学编程怎么入手,中文编程工具构件箱之多页面板构件用法教程,系统化的编程视频教程上线

零基础学编程怎么入手,中文编程工具构件箱之多页面板构件用法教程,系统化的编程视频教程上线 一、前言 今天给大家分享的中文编程开发语言工具资料如下: 编程入门视频教程链接 http://​ https://edu.csdn.net/course/detail/39036 ​ …

回乡后发现大家的消费水平都在升级

今天大年初四,来湖南第7天。 大年初四走亲戚,到城里姨妈家做客,我惊讶地发现,这里的消费风向正在发生一场悄然的变革。 以往,我认为大城市的消费水平代表着潮流和品质,然而这次我却发现小城市的消费观念正在…

re:从0开始的CSS之旅 14. 显示模式的切换

1. 两个属性 display 属性可以用于转换元素的显示模式 可选值: block 转换为块元素 inline 转换为行内元素 inline-block 转换为行内块元素 none 不显示元素,并且不占用元素的位置 visibility 属性用于设置元素是否显示 可选值: visible 显示…

文档类图像的智能识别,文档分类自定义分类器

文档类图像的智能识别是利用人工智能技术对文档图像进行自动识别和信息提取的过程。在实际应用中,文档分类是文档类图像识别的一个重要环节,而自定义分类器则可以提高文档分类的准确性和适应性。本文将介绍文档分类自定义分类器的相关概念和方法。 …

springboot/ssm知名作家信息管理系统Java文学作品展示管理系统

springboot/ssm知名作家信息管理系统Java文学作品展示管理系统 开发语言:Java 框架:springboot(可改ssm) vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.…

下一代块存储重新定义任务关键型存储架构

HPE 宣布全面推出基于 HPE Alletra Storage MP 构建的 HPE GreenLake for Block Storage 第 3 版,提供业界首款分解式横向扩展块存储,并提供 100% 数据可用性保证。这种独特的块存储产品由共享一切存储架构提供支持,并通过 HPE GreenLake 云平…

智能门锁代码实现之连接硬件的步骤

准备硬件和开发环境:确保你拥有所需的硬件(如微控制器、门锁控制电路、通信接口等),并设置好 C 语言的开发环境。对于 Arduino 等开源硬件平台,你可能需要安装特定的 IDE(集成开发环境)和驱动程…

(算法3)二分查找

朴素二分查找 最直接的二分查找,有序,查找数组中的某个元素 这种方法是有局限性的:只可以查找升序的数组,且要查找的元素是一个 注意:mid(中点)的计算应该是:left(right-left)/2 (个数是偶数时…

接口测试06 -- pytest接口自动化封装Loggin实战

1. 接口关键字封装 1.1 基本概念 接口关键字封装是指:将接口测试过程中常用的操作、验证封装成可复用的关键字(或称为函数、方法),以提高测试代码的可维护性和可复用性。 1.2 常见的接口关键字封装方式 1. 发送请求:封装一个函数,接受参数如请求方法、URL、请求头、请求…

Sketch 99.1 for macOS

Sketch 99.1 for macOS 概述 这个程序是对矢量绘图的创新性和焕然一新的看法。它特意采用了极简主义的设计,基于一个大小无限、图层自由的绘图空间,没有调色板、面板、菜单、窗口和控件。 此外,它提供了强大的矢量绘图和文本工具,…