跳转至

多个节点

在此设置中,您将在多台服务器上部署网络节点和一个或多个推理(ML)节点。要加入网络,您需要部署两个服务:

  • 网络节点 – 由两个节点组成的的服务:一个链节点和一个API节点。此服务处理所有通信。链节点连接到区块链,而API节点管理用户请求。
  • 推理(ML)节点 – 一个在GPU上执行大语言模型(LLMs)推理的服务。您至少需要一个ML节点才能加入网络。

本指南提供了在同一台机器和不同机器上部署这两个服务的说明。服务以Docker容器形式部署。


先决条件

对于网络节点,大致的硬件要求为:

  • 16核CPU(amd64)
  • 64 GB以上内存
  • 1TB NVMe SSD
  • 最低100Mbps网络连接(建议1Gbps)

最终要求将取决于连接的ML节点数量及其总吞吐量。

在继续之前,请完成快速入门指南的第3.3步,包括:

  • 硬件和软件要求
  • 下载部署文件
  • 容器访问认证
  • 密钥管理设置(账户密钥和ML操作密钥)
  • 主机注册与权限

启动网络和推理节点

本节介绍如何部署包含网络节点和多个推理节点的分布式设置。

Note

在启动网络节点之前,请确保网络服务器上的 config.env 文件中的 DAPI_API__POC_CALLBACK_URL 变量已正确设置。此值定义了API容器的回调URL,它将传递给所有ML节点,以便它们知道向何处发送Proof-of-Compute(PoC)随机数。

对于多节点设置,此URL必须可从集群中的所有ML节点访问。请勿保留默认的内部Docker地址(http://api:9100),因为它无法从外部ML节点访问。相反,请将其替换为网络节点服务器的私有网络地址(或DNS名称),例如:DAPI_API__POC_CALLBACK_URL=http://<NETWORK_NODE_PRIVATE_IP>:9100。如果API容器已使用错误的值启动,请更新 config.env 并重启api容器。

确保端口 9100 已开放,并且可从您网络中的所有推理(ML)节点访问。

启动网络节点

请确保您已提前完成快速入门指南的第3.3步(密钥管理和主机注册)。

此服务器将成为外部参与者的主入口点。必须将其暴露在公共互联网上(推荐使用静态IP或域名)。高网络可靠性和安全性至关重要。请在稳定、高带宽且具备强大安全性的服务器上托管。

单机部署:网络节点 + 推理节点

如果您的网络节点服务器具有GPU,并且您希望在同一台机器上运行网络节点推理节点,请在 gonka/deploy/join 目录中执行以下命令:

source config.env && \
docker compose -f docker-compose.yml -f docker-compose.mlnode.yml up -d && \
docker compose -f docker-compose.yml -f docker-compose.mlnode.yml logs -f

这将在同一台机器上启动一个网络节点一个推理节点

独立部署:仅网络节点

如果您的网络节点服务器没有GPU,并且您希望服务器仅运行网络节点(不运行推理节点),请在 gonka/deploy/join 目录中执行以下操作:

source config.env && \ 
docker compose -f docker-compose.yml up -d && \
docker compose -f docker-compose.yml logs -f                                 

网络节点状态

一旦网络节点激活,它将开始参与即将进行的计算证明(PoC)。其权重将根据连接的推理节点所产生的工作量进行更新。如果没有连接任何推理节点,该节点将不参与PoC,也不会出现在列表中。在下一次PoC之后,网络节点将出现在活跃主机列表中(请允许1–3小时生效):

http://node2.gonka.ai:8000/v1/epochs/current/participants

如果您添加了更多带有推理节点的服务器(按照以下说明操作),更新后的权重将在下一次PoC后反映在活跃主机列表中。

在独立服务器上运行推理节点

在其他服务器上,我们仅运行推理节点,为此,请遵循以下说明。

步骤1. 配置推理节点

1.1. 下载部署文件

克隆包含基础部署脚本的仓库:

git clone https://github.com/gonka-ai/gonka.git -b main

要部署 DeepSeek V4 Flash(MLNode 3.0.16 和 DeepSeek node-config-*.json 文件),请克隆 vllm-0.25.1-upgrade 而非 main

1.2.(可选)预先下载模型权重到 Hugging Face 缓存(HF_HOME)

推理节点从 Hugging Face 下载模型权重。为确保模型权重在部署时已就绪,我们建议在部署前预先下载。请选择以下选项之一。

export HF_HOME=/path/to/your/hf-cache

创建一个可写目录(例如 ~/hf-cache),并根据需要预加载模型。 当前网络支持三个活跃的 PoC 模型:MiniMaxAI/MiniMax-M2.7(基础版)、moonshotai/Kimi-K2.6deepseek-ai/DeepSeek-V4-Flash-0731。下载您将要部署的模型:

huggingface-cli download MiniMaxAI/MiniMax-M2.7
huggingface-cli download moonshotai/Kimi-K2.6
huggingface-cli download deepseek-ai/DeepSeek-V4-Flash-0731 --revision 7872f01b1d1fe23eabc4c98b48bffcef5a386062

模型许可证:参见 模型许可证。DeepSeek V4 Flash 采用 MIT 许可证。

1.3. 用于网络节点连接的端口

5050 - Inference requests (mapped to 5000 of MLNode)
8080 - Management API Port (mapped to 8080 of MLNode)

重要

这些端口不得暴露在公共互联网上(应仅限于网络节点环境内部访问)。

步骤 2. 启动推理节点

在推理节点的服务器上,进入 cd gonka/deploy/join 目录并执行

docker compose -f docker-compose.mlnode.yml up -d && docker compose -f docker-compose.mlnode.yml logs -f

这将部署推理节点,并在注册到您的网络节点后立即开始处理推理和计算证明(PoC)任务(下方有说明)。

将推理节点添加(注册)到网络节点

您必须将每个推理节点注册到网络节点,才能使其正常运行。 推荐方法是通过网络节点服务器终端可访问的管理 API 进行动态管理。

curl -X POST http://localhost:9200/admin/v1/nodes \
     -H "Content-Type: application/json" \
     -d '{
       "id": "<unique_id>",
       "host": "<your_inference_node_static_ip>",
       "inference_port": <inference_port>,
       "poc_port": <poc_port>,
       "max_concurrent": <max_concurrent>,
       "models": {
         "<model_name>": {
           "args": [
              <model_args>
           ]
         }
       }
     }'

参数说明

参数 描述 示例
id 推理节点的唯一标识符 node1
host 推理节点的静态 IP,或在相同 Docker 网络中运行时的Docker 容器名称 http://<mlnode_ip>
inference_port 推理节点接收推理和训练任务的端口。 5050(端口映射至 MLNode 的 5000nginx
poc_port 用于MLNode 管理的端口。 8080(端口映射至 MLNode 的 8080nginx
max_concurrent 此节点可处理的最大并发推理请求数 500
models 推理节点可处理的支持模型 (见下文)
model_name 模型名称。 MiniMaxAI/MiniMax-M2.7moonshotai/Kimi-K2.6deepseek-ai/DeepSeek-V4-Flash-0731
model_args 模型推理的 vLLM 参数。 "--tensor-parallel-size","4"

当前网络支持三个活跃的 PoC 模型:MiniMaxAI/MiniMax-M2.7(基础版)、moonshotai/Kimi-K2.6deepseek-ai/DeepSeek-V4-Flash-0731

为确保正确设置和最佳性能,请使用与您的模型和 GPU 架构最匹配的参数。完整的 node-config.json 示例请参见 主机快速入门

模型和 GPU 架构 vLLM 参数
MiniMaxAI/MiniMax-M2.7 在 4xH100 上 "--tensor-parallel-size","4"
deepseek-ai/DeepSeek-V4-Flash-0731 在 4xH100 上 "--tensor-parallel-size","4"(完整参数见 主机快速入门

有关如何根据您的 GPU 硬件选择最优部署配置和 vLLM 参数的详细指导,请参阅 选择 LLM 最优部署配置的基准测试指南

如果节点添加成功,响应将返回新添加的推理节点的配置

获取所有推理节点

要获取您网络节点中所有已注册推理节点的列表,请使用:

curl -X GET http://localhost:9200/admin/v1/nodes
这将返回一个包含所有已配置推理节点的 JSON 数组。

删除推理节点

连接到您的 网络节点 服务器后,使用以下管理 API 请求在不重启的情况下动态删除推理节点:

curl -X DELETE "http://localhost:9200/admin/v1/nodes/{id}" -H "Content-Type: application/json"
其中 id 是注册推理节点时请求中指定的推理节点标识符。如果成功,响应将为 true