橘智橘智
FakeOrange
预计阅读时间:2分钟50秒

使用 vLLM 部署大型语言模型

使用vLLM框架部署你的开源大模型!

0
0

前言


在快速发展的人工智能领域,高效部署大型语言模型(LLM)对于许多应用来说至关重要。对于希望利用 LLM 强大功能的开发者和组织来说,vLLM 为在 GPU 上提供模型服务提供了一种简单、快速且经济高效的解决方案。本文将指导你设置 vLLM、在服务器上运行它以及将其集成到你的应用程序中。


为什么选择 vLLM?


vLLM 是为那些希望在 GPU 上托管大型语言模型的人设计的,这对于高吞吐量、并行处理和流输出至关重要。无论你是在自己的计算机上本地部署模型,还是在基于云的实例上部署,vLLM 都提供了一个强大且可扩展的解决方案。


vLLM 与 Ollama:快速比较


vLLM 主要专注于在 GPU 上提供大型语言模型服务,使其成为需要并行处理的高性能应用的理想选择。然而,它支持的模型范围有限。另一方面,Ollama 面向需要在 CPU 上构建和测试人工智能应用的开发者。Ollama 支持任何模型,为在 CPU 环境中工作的人提供了更大的灵活性。

要了解有关这些工具以及如何使用它们的更多信息,请查看本文:Ollama 与 vLLM


开始使用 VLLM


让我们深入了解在你的系统上安装和运行 vLLM 的步骤。

在开始之前,请确保你有一个兼容的支持高吞吐量处理的 GPU,例如 NVIDIA RTX A6000、A100 或 V100。


步骤 1:安装 vLLM


首先,你需要安装 vLLM 包。打开你的终端并执行以下命令:

pip install vllm



步骤 2:提供模型服务

安装 VLLM 后,你可以开始提供模型服务。在这个例子中,我们将使用 Qwen-7B-Chat 模型。在你的终端中运行以下命令:

vllm serve Qwen/Qwen-7B-Chat --trust-remote-code


此命令下载模型并启动服务器,使其可在带有端口号 8000 的本地 URL 上访问。


将 vLLM 集成到你的应用程序中


一旦服务器启动并运行,将 vLLM 集成到你的应用程序中就很简单了。我们将使用 OpenAI SDK 与模型进行交互。


设置客户端


在你的 Python 环境中,创建一个名为 app.py 的新文件。然后,添加以下代码以设置客户端并向 vLLM 服务器发出请求:

from openai import OpenAI

client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="key" # 如果需要,替换为你的实际 API 密钥
)
chat_completion = client.chat.completions.create (
messages=[
{
"role": "user",
"content": "Tell about Bitcoin.",
}
],
model="Qwen/Qwen-7B-Chat",
)
print (chat_completion.choices [0].message.content)


此脚本向模型发送请求,询问有关比特币的信息。然后在终端中打印响应。


使用 POST 请求


或者,你可以在不使用 OpenAI SDK 的情况下向服务器发出 POST 请求。以下是使用 Python 的 requests 库进行此操作的方法:

import requests
import json


#URL
url = "http://localhost:8000/v1/chat/completions"


#标头
headers = {
"Content-Type": "application/json",
}

#有效负载
payload = {
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Tell about Bitcoin."},
],
"model": "Qwen/Qwen-7B-Chat",
"stream": False,
"max_tokens": 2048,
"stop": None,
"frequency_penalty": 0,
"presence_penalty": 0,
"temperature": 0.6,
"top_p": 0.90
}

#发出请求
response = requests.post(url, headers=headers, data=json.dumps(payload))

#从响应中提取 “content” 值
result = response.json()
content = result['choices'][0]['message']['content']
print(content)


这种方法对于喜欢直接使用 HTTP 请求的开发者很有用。


结论


vLLM 为在 GPU 上部署大型语言模型提供了一种简化的方法,提供了现代人工智能应用所需的高吞吐量和性能。通过遵循上述步骤,你可以轻松设置、运行 vLLM 并将其集成到你的项目中,实现根据你的需求定制的强大人工智能功能。


原文链接

评论