在迅速发展的AI领域中,高效部署大型语言模型(LLM)对于许多应用程序至关重要。对于希望利用LLM力量的开发人员和组织来说,vLLM提供了一种简单、快速且经济高效的解决方案,用于在GPU上运行模型。本文将指导您完成vLLM的安装、在服务器上运行它以及将其集成到应用程序中的步骤。
为什么选择vLLM?
vLLM专为希望在其GPU上托管大型语言模型的人设计,这对于高吞吐量、并行处理和流式输出至关重要。无论您是在计算机上本地部署模型,还是在基于云的实例上部署,vLLM都提供了一个强大且可扩展的解决方案。
vLLM与Ollama:快速比较
vLLM主要专注于在GPU上运行大型语言模型,使其成为需要并行处理的高性能应用的理想选择。然而,它支持的模型范围有限。相比之下,Ollama则面向需要在CPU上构建和测试AI应用程序的开发人员。Ollama支持任何模型,为在CPU环境中工作的人提供了更大的灵活性。
要了解有关这些工具及其使用方法的更多信息,请参阅本文:Ollama vs 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
此命令用于下载模型并启动服务器,使其可以通过本地URL(端口号为8000)访问。
将vLLM集成到您的应用程序中
一旦服务器启动并运行,将vLLM集成到您的应用程序中将变得非常简单。我们将使用OpenAI SDK与模型进行交互。
步骤3:设置客户端
在您的Python环境中,创建一个名为app.py的新文件。然后,添加以下代码以设置客户端并向vLLM服务器发出请求:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8000/v1",
api_key="key" # Replace with your actual API key if necessary
)
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)
该脚本向模型发送一个请求,要求提供一份餐计划。然后在终端中打印响应。
步骤4:使用POST请求
或者,你可以不使用OpenAI SDK直接向服务器发送POST请求。你可以使用Python的requests库来实现:
import requests
import json
# Endpoint URL
url = "http://localhost:8000/v1/chat/completions"
# Headers
headers = {
"Content-Type": "application/json",
}
# Payload
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
}
# Make the request
response = requests.post(url, headers=headers, data=json.dumps(payload))
# Extracting 'content' value from response
result = response.json()
content = result['choices'][0]['message']['content']
print(content)
此方法对于偏好直接处理HTTP请求的开发人员非常有用。
结论
VLLM为在GPU上部署大规模语言模型提供了一种简化的途径,提供了现代AI应用所需的高吞吐量和性能。通过遵循上述步骤,您可以轻松地设置、运行并将其集成到您的项目中,从而实现符合您需求的强大AI功能。