前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用vLLM加速大语言模型推理

使用vLLM加速大语言模型推理

原创
作者头像
码之有理
修改于 2024-03-13 04:31:30
修改于 2024-03-13 04:31:30
21.8K0
举报

介绍

vLLM 是一个快速且易于使用的库,用于 LLM 推理和服务,和 HuggingFace 无缝集成。区别于 chatglm.cpp 和 llama.cpp,仅是在 GPU 上的模型推理加速,没有 CPU 上的加速。

在吞吐量方面,vLLM 的性能比 HuggingFace Transformers (HF) 高出 24 倍,文本生成推理 (TGI) 高出 3.5 倍。

可以使用 ray 框架实现分布式推理:https://vllm.readthedocs.io/en/latest/serving/distributed_serving.html

Github: https://github.com/vllm-project/vllm

文档:https://vllm.readthedocs.io/en/latest/models/supported_models.html

支持 HuggingFace 上的模型

  • Aquila (BAAI/Aquila-7B, BAAI/AquilaChat-7B, etc.)
  • Baichuan (baichuan-inc/Baichuan-7B, baichuan-inc/Baichuan-13B-Chat, etc.)
  • BLOOM (bigscience/bloom, bigscience/bloomz, etc.)
  • Falcon (tiiuae/falcon-7b, tiiuae/falcon-40b, tiiuae/falcon-rw-7b, etc.)
  • GPT-2 (gpt2, gpt2-xl, etc.)
  • GPT BigCode (bigcode/starcoder, bigcode/gpt_bigcode-santacoder, etc.)
  • GPT-J (EleutherAI/gpt-j-6b, nomic-ai/gpt4all-j, etc.)
  • GPT-NeoX (EleutherAI/gpt-neox-20b, databricks/dolly-v2-12b, stabilityai/stablelm-tuned-alpha-7b, etc.)
  • InternLM (internlm/internlm-7b, internlm/internlm-chat-7b, etc.)
  • LLaMA & LLaMA-2 (meta-llama/Llama-2-70b-hf, lmsys/vicuna-13b-v1.3, young-geng/koala, openlm-research/open_llama_13b, etc.)
  • MPT (mosaicml/mpt-7b, mosaicml/mpt-30b, etc.)
  • OPT (facebook/opt-66b, facebook/opt-iml-max-30b, etc.)
  • Qwen (Qwen/Qwen-7B, Qwen/Qwen-7B-Chat, etc.)

安装

代码语言:shell
AI代码解释
复制
pip install vllm

检查模型是否被 vLLM 支持,返回成功则是支持的。

代码语言:shell
AI代码解释
复制
from vllm import LLM

llm = LLM(model=...)  # Name or path of your model
output = llm.generate("Hello, my name is")
print(output)

推断

离线批量推断

代码语言:shell
AI代码解释
复制
from vllm import LLM, SamplingParams

prompts = [
    "Hello, my name is",
    "The president of the United States is",
    "The capital of France is",
    "The future of AI is",
]
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)

llm = LLM(model="facebook/opt-125m")
outputs = llm.generate(prompts, sampling_params)

# Print the outputs.
for output in outputs:
    prompt = output.prompt
    generated_text = output.outputs[0].text
    print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")

API Server

默认监听 8000 端口,--host 和--port 参数可以指定主机和端口。

代码地址:https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/api_server.py

代码语言:shell
AI代码解释
复制
python -m vllm.entrypoints.api_server

客户端请求,更多示例:https://github.com/vllm-project/vllm/blob/main/examples/api_client.py

代码语言:shell
AI代码解释
复制
curl http://localhost:8000/generate \
    -d '{
        "prompt": "San Francisco is a",
        "use_beam_search": true,
        "n": 4,
        "temperature": 0
    }'

兼容 OpenAI 的 API Server

默认监听 8000 端口,--host 和--port 参数可以指定主机和端口。

代码地址:https://github.com/vllm-project/vllm/blob/main/vllm/entrypoints/api_server.py

代码语言:shell
AI代码解释
复制
python -m vllm.entrypoints.openai.api_server --model facebook/opt-125m

客户端请求,更多示例:https://github.com/vllm-project/vllm/blob/main/examples/api_client.py

代码语言:shell
AI代码解释
复制
curl http://localhost:8000/v1/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "facebook/opt-125m",
        "prompt": "San Francisco is a",
        "max_tokens": 7,
        "temperature": 0
    }'

可以使用 Openai 的 sdk 进行请求

代码语言:shell
AI代码解释
复制
import openai
# Modify OpenAI's API key and API base to use vLLM's API server.
openai.api_key = "EMPTY"
openai.api_base = "http://localhost:8000/v1"
completion = openai.Completion.create(model="facebook/opt-125m", prompt="San Francisco is a")
print("Completion result:", completion)

分布式推断

理论支持论文:Megatron-LM’s tensor parallel algorithm

安装分布式框架 ray

代码语言:shell
AI代码解释
复制
pip install ray

tensor_parallel_size 可以指定使用 GPU 的数量。

代码语言:shell
AI代码解释
复制
from vllm import LLM
llm = LLM("facebook/opt-13b", tensor_parallel_size=4)
output = llm.generate("San Franciso is a")

Server 指定 GPU 数量

代码语言:shell
AI代码解释
复制
python -m vllm.entrypoints.api_server \
    --model facebook/opt-13b \
    --tensor-parallel-size 4

分别在一个主节点和多个工作节点安装 ray 并运行服务。然后在主节点运行上述的 Server,GPU 数量可以指定为集群内所有的 GPU 数量总和。

代码语言:shell
AI代码解释
复制
# On head node
ray start --head

# On worker nodes
ray start --address=<ray-head-address>

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
vLLM 框架教程
vLLM(Very Large Language Model)是一个高效的推理引擎,专为大语言模型(LLM)优化,旨在提升推理性能并降低显存占用。vLLM 主要由 UC 伯克利开发,采用了一种称为 PagedAttention 的创新机制,使其在多 GPU 环境下也能高效地执行推理任务。
IT蜗壳-Tango
2025/04/01
2220
VLLM推理流程解析
完整文章清移步知乎,这个是最近有空时逐步走读了下vllm的流程,还不包含paged attention的实现具体解析,后续有空会把这paged attention这一节的 kernel 实现细节补一下
BBuf
2023/08/22
1.8K0
VLLM推理流程解析
【大模型部署实战】VLLM+OpenWebUI实现DeepSeek模型部署,文末有福利
vLLM(Very Large Language Model Serving)是由加州大学伯克利分校团队开发的高性能、低延迟大语言模型(LLM)推理和服务框架。其核心创新在于PagedAttention技术,通过将注意力键值(KV)缓存分页管理,显著提升显存利用率并降低碎片化问题,使吞吐量比传统框架(如Hugging Face Transformers)提升24倍。该框架支持连续批处理、动态显存分配和多GPU并行推理,能够高效处理8k+长上下文请求,并兼容OpenAI API接口,开发者可快速部署Hugging Face模型。通过集成FP8、AWQ等量化技术,vLLM在保证推理精度的同时大幅降低资源消耗,目前已成为企业级AI部署(如DeepSeek-R1 671B模型分布式集群)的首选方案。
AI浩
2025/03/17
4390
【大模型部署实战】VLLM+OpenWebUI实现DeepSeek模型部署,文末有福利
小羊驼背后的英雄,伯克利开源LLM推理与服务库:GPU减半、吞吐数十倍猛增
随着大语言模型(LLM)的不断发展,这些模型在很大程度上改变了人类使用 AI 的方式。然而,实际上为这些模型提供服务仍然存在挑战,即使在昂贵的硬件上也可能慢得惊人。
机器之心
2023/08/07
1K0
小羊驼背后的英雄,伯克利开源LLM推理与服务库:GPU减半、吞吐数十倍猛增
比HuggingFace快24倍!伯克利神级LLM推理系统开源,碾压SOTA,让GPU砍半
过去2个月,来自UC伯克利的研究人员给大语言模型们安排了一个擂台——Chatbot Arena。
新智元
2023/08/05
1K0
比HuggingFace快24倍!伯克利神级LLM推理系统开源,碾压SOTA,让GPU砍半
如何在OpenCloudOS 8上使用 vLLM运行opt
在容器里运行模型,如果想要在 GPU 上运行,则需要安装 NVIDIA Container Toolkit,可参见 NVIDIA Container Toolkit 安装指引(https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html)。
腾讯开源
2025/04/09
1170
如何在OpenCloudOS 8上使用 vLLM运行opt
LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]
训练后的模型会用于推理或者部署。推理即使用模型用输入获得输出的过程,部署是将模型发布到恒定运行的环境中推理的过程。一般来说,LLM的推理可以直接使用PyTorch代码、使用VLLM/XInference/FastChat等框架,也可以使用llama.cpp/chatglm.cpp/qwen.cpp等c++推理框架。
汀丶人工智能
2024/05/28
12.2K0
LLM 大模型学习必知必会系列(十二):VLLM性能飞跃部署实践:从推理加速到高效部署的全方位优化[更多内容:XInference/FastChat等框架]
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,您可以使用任何开源 LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的 AI 应用。通过 Xorbits Inference,可以轻松地一键部署你自己的模型或内置的前沿开源模型
汀丶人工智能
2024/08/17
5.3K0
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
用上这个工具包,大模型推理性能加速达40倍
英特尔® Extension for Transformers[1]是英特尔推出的一个创新工具包,可基于英特尔® 架构平台,尤其是第四代英特尔® 至强® 可扩展处理器(代号Sapphire Rapids[2],SPR)显著加速基于Transformer的大语言模型(Large Language Model,LLM)。其主要特性包括:
量子位
2023/12/01
1.3K0
用上这个工具包,大模型推理性能加速达40倍
open-llms 开源可商用的优秀大模型资源库
在AI盛起的当下,各类AI应用不断地出现在人们的视野中,AI正在重塑着各行各业。相信现在各大公司都在进行着不同程度的AI布局,有AI大模型自研能力的公司毕竟是少数,对于大部分公司来说,在一款开源可商用的大模型基础上进行行业数据微调也正在成为一种不错的选择。
山行AI
2023/06/26
1.1K1
open-llms 开源可商用的优秀大模型资源库
LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战
使用LoRA进行微调的模型你需要先merge-lora, 产生完整的checkpoint目录.
汀丶人工智能
2024/05/29
1.1K0
LLM 大模型学习必知必会系列(十三):基于SWIFT的VLLM推理加速与部署实战
vLLM: 加速AI推理的利器
由于LLM需要处理大量的参数来进行预测,这可能从70亿参数增加到3210亿,部署这样的模型可能需要大量的资源和优化,而不是使用传统的方法来部署机器学习模型。
buzzfrog
2024/07/22
1.8K0
大语言模型生态系统:助你自由调教 AI 模型
这些开源项目都是在语言模型领域具有重要影响力的优秀项目。它们共同的特点是强调了对大规模语言模型进行训练和推理的高效性、灵活性和可扩展性。无论是通过提供定制化的语言模型、支持并行计算和分布式训练,还是通过优化内存管理和硬件资源利用效率来提高运算速度,这些项目都致力于使得人工智能技术更加便捷、高效地应用于各个领域。如果您正在寻找一个功能强大且易于使用的开源语言模型项目,我强烈推荐阅读此篇文章。
小柒
2023/08/10
6940
大语言模型生态系统:助你自由调教 AI 模型
LLM 推理引擎之争:Ollama or vLLM ?
Hello folks,我是 Luga,今天我们来聊一下人工智能应用场景 - 构建高效、灵活的计算架构的模型推理框架。
Luga Lee
2025/04/24
1970
LLM 推理引擎之争:Ollama or vLLM ?
用 vLLM 在多节点多卡上部署 Qwen2.5 以及进行推理
本文记录了在两台机器,每台机器一块 Tesla T4 显卡的环境下,使用 vLLM 部署 Qwen2.5-32B-Instruct-GPTQ-Int4 模型的过程及遇到的问题,供类似环境使用 vLLM 进行多节点多卡推理参考。
AlphaHinex
2024/12/23
4.6K0
用 vLLM 在多节点多卡上部署 Qwen2.5 以及进行推理
Ollama 升级!支持一键拉取Huggingface上所有的模型,太方便了!(vLLM、Fastgpt、Dify、多卡推理)
我记得,梦的开始,源于Ollama。很早以前的一篇文章教大家如何通过 Ollama 来使用开源 LLM,许多人最初接触 AI 时也是从Ollama开始的。Ollama 之所以出色,是因为它使用了 GGML 格式,这是一种‘轻量版’的大语言模型,以较低精度运行,能够轻松适配普通硬件。这使得在本地系统上运行这些模型变得简单高效,真正为 AI 的广泛应用铺平了道路。
AI进修生
2024/12/02
15K0
Ollama 升级!支持一键拉取Huggingface上所有的模型,太方便了!(vLLM、Fastgpt、Dify、多卡推理)
LLM 推理和应用 开源框架梳理
之前对LLM 推理和应用了解不多,因此抽时间梳理了一下,我们从模型量化,模型推理,以及开发平台等三个层面来梳理分析。
JadePeng
2024/03/13
2K0
LLM 推理和应用 开源框架梳理
vllm的SamplingParams参数
致Great
2024/02/03
1.3K0
如何使用vLLM部署DeepSeek V2 Lite模型
最近在进行一些私有化部署大模型,很多企业会考虑数据隐私问题。因此常常会在企业内部部署自主部署大语言模型。常见的能够提供大语言模型的部署工具有,Ollama、vLLM、Xinference、SGLang和LM Studio。Ollama和LM Studio都是只支持GGUF类型量化的大语言模型,vLLM、Xinference和SGlang是支持pytorch或者说transformer类型的大模型,这些类型的模型通常在HuggingFace上都能找到。一般我们使用Ollama和LM Studio在桌面显卡领域部署,也就是个人电脑上部署使用。而在服务器领域,我们通常使用后三者。本篇我们主要关注于vLLM如何部署和量化DeepSeek大语言模型,机器环境是4卡Nvidia 2080Ti,大约48G显存。
AgenticAI
2025/03/18
1840
如何使用vLLM部署DeepSeek V2 Lite模型
LLM运行框架对比:ollama与vllm浅析
开源的LLM已经成为程序员、爱好者和希望在日常工作中使用生成式AI并保持隐私的用户的最佳选择,对于企业的私有化部署而言也是如此。这些模型提供了优秀的性能,有时在许多任务中可以与大型的闭源模型 (如 GPT-4o 或 Claude Sonnet 3.5) 相媲美。
半吊子全栈工匠
2025/03/10
1.2K1
LLM运行框架对比:ollama与vllm浅析
推荐阅读
相关推荐
vLLM 框架教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档