用vllm快速部署大模型

机器AI学习 数据AI挖掘 2024年11月30日 11:34

在迅速发展的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 requestsimport json
# Endpoint URLurl = "http://localhost:8000/v1/chat/completions"
# Headersheaders = { "Content-Type": "application/json",}# Payloadpayload = { "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 requestresponse = requests.post(url, headers=headers, data=json.dumps(payload))# Extracting 'content' value from responseresult = response.json()content = result['choices'][0]['message']['content']print(content)

此方法对于偏好直接处理HTTP请求的开发人员非常有用。

结论
VLLM为在GPU上部署大规模语言模型提供了一种简化的途径,提供了现代AI应用所需的高吞吐量和性能。通过遵循上述步骤,您可以轻松地设置、运行并将其集成到您的项目中,从而实现符合您需求的强大AI功能。