当前位置: 首页 > news >正文

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.lryc.cn/news/299450.html

相关文章:

  • [AIGC] 上传文件:后端处理还是直接阿里云OSS?
  • 速盾cdn:香港服务器如何用国内cdn
  • 深入学习Pandas:数据连接、合并、加入、添加、重构函数的全面指南【第72篇—python:数据连接】
  • IDEA中mybatis配置文件表名显示红色,提示 Unable to resolve table ‘xxx‘
  • Python基于大数据的电影预测分析系统
  • 【MATLAB】小波神经网络回归预测算法
  • 最新Burp Suite入门讲解
  • 【C++】模版初阶
  • Stable Diffusion 模型下载:DreamShaper(梦想塑造者)
  • GPT-4模型的创造力
  • 没用的计算器
  • 基于 Python 的大数据的电信反诈骗系统
  • 二、ClickHouse简介
  • C++ 11新特性之并发
  • jvm问题自查思路
  • 任意IOS16系统iPad/Iphone开启台前调度
  • LeetCode、452. 用最少数量的箭引爆气球【中等,贪心,区间问题】
  • 洛谷C++简单题小练习day10—umi的函数
  • 【Linux学习】线程互斥与同步
  • 前端开发:(三)CSS入门
  • 一周学会Django5 Python Web开发-Django5创建项目(用PyCharm工具)
  • 寒假学习记录13:JS对象
  • 学生成绩管理系统|基于Springboot的学生成绩管理系统设计与实现(源码+数据库+文档)
  • C#向数组指定索引位置插入新的元素值:自定义插入方法 vs List<T>.Add(T) 方法
  • 【大数据Hive】hive 表设计常用优化策略
  • jvm垃圾收集器之七种武器
  • STM32面试相关问题
  • 风行智能电视N39S、N40 强制刷机升级方法,附刷机升级数据MstarUpgrade.bin
  • 【C语言】简易英语词典
  • 【算法题】104. 二叉树的最大深度