使用 vLLM 部署大型语言模型
使用vLLM框架部署你的开源大模型!
前言
在快速发展的人工智能领域,高效部署大型语言模型(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 并将其集成到你的项目中,实现根据你的需求定制的强大人工智能功能。