跳至内容

跨工作节点执行分布式推理 (llama-box)

本教程将引导您完成使用GPUStack配置和运行跨多个工作节点的分布式推理过程。分布式推理允许您通过将计算工作负载分配到多个工作节点上来处理更大的语言模型。当单个工作节点没有足够的资源(如显存)来独立运行整个模型时,这种方法特别有用。

先决条件

在继续之前,请确保以下事项:

  • 已安装并运行一个多节点GPUStack集群。
  • 访问Hugging Face以下载模型文件。

在本教程中,我们将假设一个包含两个节点的集群,每个节点都配备了一块NVIDIA P40 GPU(22GB显存),如下图所示:

worker-list

我们的目标是运行一个需要比单个工作节点所能提供的更多显存的大型语言模型。本教程中,我们将使用Qwen/Qwen2.5-72B-Instruct模型配合q2_k量化格式。运行该模型所需的资源可以通过gguf-parser工具进行估算:

gguf-parser --hf-repo Qwen/Qwen2.5-72B-Instruct-GGUF --hf-file qwen2.5-72b-instruct-q2_k-00001-of-00007.gguf --ctx-size=8192 --in-short --skip-architecture --skip-metadata --skip-tokenizer
+--------------------------------------------------------------------------------------+
| ESTIMATE                                                                             |
+----------------------------------------------+---------------------------------------+
|                      RAM                     |                 VRAM 0                |
+--------------------+------------+------------+----------------+----------+-----------+
| LAYERS (I + T + O) |     UMA    |   NONUMA   | LAYERS (T + O) |    UMA   |   NONUMA  |
+--------------------+------------+------------+----------------+----------+-----------+
|      1 + 0 + 0     | 259.89 MiB | 409.89 MiB |     80 + 1     | 2.50 GiB | 28.89 GiB |
+--------------------+------------+------------+----------------+----------+-----------+

从输出结果可以看出,该模型的预估显存需求超过了每个工作节点上可用的22GB显存。因此,我们需要将推理任务分布到多个工作节点上才能成功运行该模型。

步骤1:部署模型

按照以下步骤从Hugging Face部署模型,实现分布式推理:

  1. 在GPUStack UI中导航至Models页面。
  2. 点击Deploy Model按钮。
  3. 在下拉菜单中,选择 Hugging Face 作为您的模型来源。
  4. 启用GGUF复选框可按GGUF格式筛选模型。
  5. 使用左上角的搜索栏搜索模型名称 Qwen/Qwen2.5-72B-Instruct-GGUF
  6. Available Files部分,选择q2_k量化格式。
  7. 展开Advanced(高级)部分并向下滚动。确认Allow Distributed Inference Across Workers(允许跨工作节点分布式推理)选项已启用(默认情况下此选项处于启用状态)。GPUStack将评估集群中的可用资源,并在需要时以分布式方式运行模型。
  8. 点击Save按钮部署模型。

Deploy Model

步骤2:验证模型部署

模型部署完成后,请在Models页面验证部署情况,您可以在此查看模型在多个工作节点上的运行详情。

model-list

您也可以通过导航至Resources页面查看工作节点和GPU资源使用情况。

gpu-usage

最后,前往Playground页面与模型交互,验证所有功能是否正常运行。

playground