轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥8起我的订单
文档
工具
提交工单页面收录
ghcr.io/getainode/ainode

ghcr.io/getainode/ainode:0.5.29

ghcr.iolinux/amd640.5.29大小: 114.02 MB更新于 2026年10月7日
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这段话即可:

请先阅读并遵守:https://xuanyuan.cloud/agents.md

未读文档前不要生成 pull 命令或排错方案。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

AINode

将任意 NVIDIA GPU 转变为本地 AI 平台。 在浏览器内完成推理与微调。单命令即可完成安装。新增节点后,节点间可自动相互发现。

ainode.dev · 文档 · 快速上手 · 界面截图 · 已测试模型 · 功能兼容状态


AINode 产品定义

AINode 是面向 NVIDIA GB10(DGX Spark、华硕 GX10)及所有搭载 NVIDIA GPU 的设备的自托管 AI 一体机。仅需一条命令即可在每台主机上完成编排器容器与 systemd 单元的安装,该编排器可为您提供以下能力:

  • 现代化 Web 界面(内置对话、集群拓扑、服务控制台、下载、训练模块)
  • 兼容 OpenAI 规范的 API(接口路径为 /v1/chat/completions、/v1/completions、/v1/embeddings)与 Anthropic Messages API(接口路径为 /v1/messages),两类接口均可通过模型 ID 在整个集群内实现路由分发
  • 决策接口(/v1/decide):输入带类型约束的问题,直接输出经过校准的概率结果,单次请求即可完成全部计算
  • 自动为您启动 vLLM 引擎:每个已加载模型对应独立容器,引擎镜像与运行参数均已通过对应模型的兼容性验证
  • 基于 RoCE 的跨节点张量并行:通过主机物理网络接口自动配置 NCCL,仅需在浏览器中选中目标节点即可一键启动分布式任务
  • UDP 节点发现机制:支持自动组建集群
  • NFS 共享模型存储:仅需一次下载,所有节点均可直接调用
  • 基于本机 GPU 的脚本化微调:支持 LoRA、QLoRA、全量微调模式

编排器镜像基于 python:3.12-slim 构建,打包后总大小约 364 MB。镜像内未预置 vLLM 和 CUDA 组件:引擎以独立容器运行,因此模型对应的引擎版本由模型本身定义,与 AINode 安装版本无关。无需配置主机 Python 虚拟环境,无需从源码编译 vLLM,不存在脆弱的运行时链路依赖。

curl -fsSL https://ainode.dev/install | bash

界面截图

集群视图:4 节点,聚合显存达 487 GB

名为 "MASTER" 的头节点负责运行 API 服务与集群编排。其余从属节点以无头引擎容器模式运行,执行头节点分配的计算秩任务。实例卡片标识 DISTRIBUTED · TP=2,表示当前模型已跨两张 GPU 完成分片加载。

对话页

功能完整的对话界面,支持流式 Token 输出、提示词历史记录、代码高亮、单请求指标统计(首 Token 延迟 TTFT、每秒生成 Token 数、总 Token 数),可对接集群内任意已加载的模型,支持单卡运行或跨卡分片模式。

服务页:API 控制台(LM Studio 风格)

实时开发者控制台:可查看各节点上已加载的模型列表、所有兼容 OpenAI/LM Studio/Anthropic 规范的接口端点、附带状态码与延迟信息的单请求日志,提供模型卸载按钮和可直接复制的 cURL 代码片段。

下载页:实时 HuggingFace 目录

浏览热门 HuggingFace 模型,系统会根据集群聚合显存自动计算并展示 AVAILABLE(已可用)/ FITS GPU(显存适配)标签。支持将下载任务加入队列,文件存入 NFS 共享缓存后所有节点均可直接加载。

训练页:总览

提供三种快速启动路径:LoRA(轻量方案,适合绝大多数用户)、QLoRA(4 比特基础模式,适配超大模型)、全量微调(需单节点大显存支持)。所有训练任务均在节点本机 GPU 上执行,可跟踪活跃与已完成任务数、GPU 运行时长,还可直接跳转至数据集管理页面。

训练页:模板

内置指令微调(Alpaca)、对话微调(ShareGPT)、分类头训练的开箱即用方案,每个模板均附带验证通过的数据集规范,数分钟内即可启动训练任务。

配置页:集群

可自定义节点角色(auto / master / worker),设置共享 cluster_id 确保仅匹配标识的节点可相互发现,还可查看实时成员列表,包含每个节点的角色、地址与最后活跃时间。


分步快速上手

单节点(单机模式)

  1. 在 Linux 主机上 安装 Docker 与 NVIDIA 容器工具包。
  2. 拉取镜像并配置 systemd 单元:
curl -fsSL https://ainode.dev/install | bash

该单行安装脚本会执行以下操作:

# 解析 GHCR 上最高版本的数字标签(永远不会使用浮动的 :latest 标签)
docker pull ghcr.io/getainode/ainode:
# 将镜像标识固化到 ~/.ainode/image.env,同时安装可动态替换的 systemd 单元
systemctl enable --now ainode.service

该 systemd 单元会从 ~/.ainode/image.env 读取固化后的镜像路径(通过 EnvironmentFile 配置,Restart=always 自动重启),因此服务可在主机断电重启后自动恢复,并自动加载之前已启动的单机模式模型与堆叠模型。分布式头节点不会自动重启:该模式需要对等节点参与,您可通过浏览器手动重新拉起。 安装器还会提前拉取后续运行所需的 vLLM 引擎镜像(下载体积约 8.5 GB,磁盘占用约 22 GB),避免首次启动时等待下载。设置环境变量 AINODE_NVIDIA_IMAGE=skip 即可跳过该预拉取步骤。 3. 打开浏览器访问 http://<你的节点IP>:3000 进入 Web UI,从目录中选择一个模型。点击模型卡片后选择 Launch,即可开始对话。系统无引导向导:安装器会自动写入配置项 onboarded: true 并将默认启动模型置为空,因此节点启动后不会自动加载任何模型,等待用户手动选择。 4. 新增节点:在当前节点执行 ainode cluster token 生成加入令牌,将输出的 ainode join 命令在新主机上执行即可。该命令会自动写入集群 ID、共享密钥与主节点地址,无需手动编辑 config.json 完成集群配置。

升级操作可执行 ainode update,脚本会自动解析并拉取最新版本,随后重启系统服务。指定版本号即可固化升级到特定版本,例如 ainode update 0.5.24。请以安装 AINode 的原用户身份执行升级操作,并在执行前阅读 AINode 升级指南,不建议直接使用 sudo 运行命令。

希望手动拉取镜像? AINode 仅官方发布到 GHCR 镜像仓库:

docker pull ghcr.io/getainode/ainode:latest # 拉取最新正式版本
# 或者固化特定版本,安装器默认采用该方式拉取镜像。所有版本标签可在
# https://github.com/getainode/ainode/releases 页面查看
docker pull ghcr.io/getainode/ainode:X.Y.Z

AINode 未在 Docker Hub 搭建官方镜像。Docker Hub 上存在的 argentaios/ainode 仓库版本停留在 2026 年 4 月的 0.4.7 版本,该版本不包含当前版本的引擎后端、模型目录、堆叠加载、基准测试与 embedding 能力,请勿拉取使用。

双节点(分布式模式)

适用于单张显存无法容纳的大模型场景,例如前沿 MoE 模型跨两台 DGX Spark 完成分片加载。浏览器可视化配置路径为官方支持的标准操作流程:

  1. 在两个节点之间搭建干净的高速链路:可使用直连 QSFP 线缆并独占独立的 /24 子网,或接入专用交换机端口。详见网络要求:该配置至关重要。
  2. 先安装主控节点,配置对等节点列表以让安装程序自动将你的 SSH 公钥分发到各对等节点:
AINODE_PEERS="10.0.0.2" curl -fsSL https://ainode.dev/install | bash -s -- --job master

--job master 参数为必填项。若缺少该参数,对等节点列表仅用于执行 ssh-copy-id 操作,节点将以独立单机模式安装。 3. 将对等节点加入集群:在主控节点上生成接入令牌,在对等节点上执行一键安装并加入集群命令:

ainode cluster token # 在主控节点上执行,将输出下一行所需的令牌内容
   AINODE_JOIN="10.0.0.1:3000: <生成的令牌内容>" curl -fsSL https://ainode.dev/install | bash

该操作会在对等节点中写入主控节点的 cluster_id、cluster_secret、服务发现端口和主控节点地址,将其配置为 distributed_mode: "member" 模式,且不会修改其他配置项。若两个节点完全独立安装,会各自生成独有的 cluster_secret,彼此之间无法发现。因此要么使用上述加入流程,要么在安装对等节点时设置 AINODE_CLUSTER_SECRET 为主控节点的对应值。仅指定 --job worker 但未执行加入操作的对等节点不属于任何集群。 4. 验证免密 SSH 连通性:确认主控节点的安装用户可免密登录所有对等节点。主控节点通过 SSH 启动对等节点上的引擎容器,若出现密码输入提示将导致启动失败。 5. 打开主控节点 UI:界面中应显示两个节点的信息及聚合后的总内存(例如 "2 nodes · 244 GB · 2 GPUs")。每个节点会自动检测并上报自身的 GPU 数量,多 GPU 服务器的所有显卡都会纳入总计数中。 6. 启动分布式实例:在启动实例面板中选择目标模型,勾选需跨节点调度的设备后提交启动。系统会发送一条 POST /api/sharding/launch 请求,携带所选节点 ID;当前运行操作的节点始终作为主控节点,其余节点作为对等节点,全部通过专属高速网络的 IP 地址进行通信。若对等节点未配置已知的高速网络 IP,启动请求会被直接拒绝,不会尝试通过管理局域网发起部署。实例状态将显示为 DISTRIBUTED · TP=2。

多节点启动流程会在每个节点上运行一个引擎容器:主控节点上启动 rank 0 实例,各对等节点上以 --headless 模式启动对应 rank 的实例,全部通过 vLLM 原生的多节点执行器,基于 --master-addr 和 --master-port 完成集群组网。官方模型库中的所有多节点模型均固定采用该组网架构,所有经过验证的生产启动也都使用该方案,因为除了 vLLM 本身之外无需引擎镜像预装任何额外依赖。另一种手动接入方式是在 config.json 中设置 distributed_mode: "head" 并显式指定 peer_ips,随后重启服务,无人值守的节点推荐使用该配置方式。

当前仅支持张量并行。启动请求的请求体中即使带有 strategy 字段,只要节点数量大于 1,系统就会默认使用张量并行策略,不存在流水线并行能力。


模型量化(AWQ / NVFP4)

AINode 可在浏览器内、利用你本地的 GPU 将全精度模型压缩为 4 位精度,全程无需调用任何外部服务。进入 Training → Quantize a Model 页面即可开始操作:

  1. Base model(基础模型):可填写 Hugging Face 仓库 ID(例如 Qwen/Qwen3.5-4B),也可选择已安装在本地的模型。
  2. Scheme(量化方案):可选 AWQ(W4A16 精度,已通过 GB10 架构的 awq_marlin 后端验证)或 NVFP4(适配 Blackwell 架构的原生 4 位浮点格式)。
  3. Calibration samples(校准样本数):默认值为 256,样本取自 HuggingFaceH4/ultrachat_200k 数据集。
  4. (可选)Push result to Hugging Face(将量化结果推送至 Hugging Face):该操作需要拥有写入权限的 Hugging Face Token,量化后的模型将以私有仓库的形式推送到你的个人命名空间下。

量化目标节点必须处于空闲状态:量化操作需要占用全部统一内存,因此 AINode 会在已有模型加载时拒绝启动量化任务(你可先卸载运行中的模型,或设置 force=true 参数强制启动)。量化完成后的模型将出现在 Installed(已安装模型) 列表中,命名格式为 <原始模型名>-<量化方案名>,可直接投入服务使用。

[!IMPORTANT] 节点必须提前准备好作业镜像。量化、训练和适配器合并操作都会在独立的 GPU 容器中运行,该镜像大小约为 22 GB,系统不会自动隐式拉取。节点将按以下优先级顺序解析镜像路径:先读取显式配置的 AINODE_QUANT_IMAGE / AINODE_TRAIN_IMAGE,其次使用 ghcr.io/getainode/ainode-train:<版本号>,最后尝试本地构建的 ainode-quant:0.17.0-t5 镜像。若节点上不存在上述任意一种镜像,作业会在启动前直接被拒绝并同时列出三个候选镜像地址,避免出现运行时日志中才抛出 docker exit 125 错误的情况。关于如何构建或指定该镜像,可参考训练章节下的作业镜像说明。

AWQ 是 GB10 架构下经过充分验证的成熟量化方案。NVFP4 量化是较新的技术路线,多模态模型(例如 Qwen3.5)的 NVFP4 量化目前属于实验性功能,尚未完成完整验证,当前 Qwen3.5 系列模型优先推荐使用 AWQ 量化方案。

Hugging Face Token 说明(读权限 vs 写权限):AINode 会将凭证存储在本地密钥库中(路径为 ~/.ainode/secrets.json,文件权限为 0600,静态存储时已做混淆处理),包含两个 Hugging Face 专属字段:读权限 Token(用于下载需要申请权限的受限模型)和 写权限 Token(用于将模型推送至 Hub,只读 Token 会在 GB 级大文件传输前直接被拦截拒绝)。你可以在 Config → Secrets 页面中配置这两个 Token(每个 Token 旁都配有 Test 按钮,可检测当前 Token 拥有的权限范围),也可通过 ainode config --hf-token hf_xxx 命令单独设置读权限 Token。


模型微调(LoRA / QLoRA / 全参数微调)

进入 Training → New Run 页面,选择基础模型和数据集后提交即可启动微调任务。所有微调任务都在独立的 GPU 容器中运行(编排器镜像本身未预装 torch 环境),每个节点同一时间仅运行一个作业,队列机制会在当前作业结束后自动拉起下一个排队任务。

作业镜像要求:微调、量化和适配器合并操作都需要训练专用镜像。节点将按以下优先级顺序解析镜像路径,若节点上不存在任意一种候选镜像,作业会在启动前直接被拒绝并列出全部三个地址(旧版本会在运行时抛出 docker exit 125 错误):

  1. 显式配置的环境变量 AINODE_TRAIN_IMAGE / AINODE_QUANT_IMAGE,用于覆盖默认镜像地址。
  2. 官方发布镜像 ghcr.io/getainode/ainode-train:<版本号>。
  3. 本地自行构建的镜像 ainode-quant:0.17.0-t5。

官方发布镜像由 .github/workflows/publish-train-image.yml 工作流自动构建,构建基于自托管 Spark 运行器上的 scripts/Dockerfile.quant 完成,镜像大小约为 22 GB。系统不会自动隐式拉取或构建该镜像,常规版本发布流程也不会重新构建该镜像。你可以通过推送格式为 train-v<版本号> 的 Git 标签触发构建(版本号必须与 pyproject.toml 中定义的版本号完全匹配,引擎会按该版本号查找对应镜像),也可以手动触发工作流:

gh workflow run publish-train-image.yml -f push=true -f version=0.5.27

同一次构建可以通过工作流的 alias_versions 参数关联多个版本号(为同一镜像摘要追加额外标签,无需重复上传文件),从而为多个发布版本提供服务。如果节点上已经存在对应镜像,可直接指定已有镜像地址:

sudo systemctl set-environment AINODE_TRAIN_IMAGE=ghcr.io/getainode/ainode-train:0.5.27

数据集格式:支持读取存放在 ~/.ainode/datasets/ 路径下的 .jsonl 文件,也支持直接加载 Hugging Face 公开数据集 ID。数据集中的行可采用以下任意一种格式:

数据结构训练处理逻辑
{"text": "..."}直接将该字段的文本作为训练内容
{"instruction": "...", "output": "..."}按 Alpaca 格式拼接为提示词+回复对
{"prompt": "...", "completion": "..."}将两个字段内容直接拼接处理
{"conversations": [{"from": "human", "value": "..."}, ...]}调用模型自身的对话模板完成格式化渲染

最后一种格式是 AutoData 所采用的写入格式,也是 sharegpt-chat 模板所声明支持的格式:role/content 对话轮次与 messages 字段的工作方式完全一致。系统会对整段渲染后的对话执行监督训练(暂未实现仅对助手回复部分进行掩码的功能,因此本特性不提供该保证),填充位永远不会被设为标签。

运行记录重启后依然保留。每次状态转换时,任务都会在自身的任务目录中写入一个 status.json 文件。服务启动时会从 ~/.ainode/training/jobs/ 重建注册表,因此重启前的任务对应的运行记录表、统计卡片、日志、产物下载、合并与恢复功能都可以正常使用。有两点值得注意的特性:

  • AINode 停止时处于 RUNNING 状态的任务重启后会变为 failed:任务进程会随重启一同终止。
  • AINode 0.5.26 或更早版本生成的任务目录不包含状态文件,系统会根据磁盘上的现存内容重建其状态:存在权重文件则标记为已完成,否则标记为失败。这类任务行将被标注为 restored,附带说明该情况的 note 字段,并且不会显示运行时长,因为该数据从未被记录。

恢复训练。POST /api/training/jobs/{id}/resume 接口(或任务页面上的对应按钮)会从最新检查点启动一个全新任务:新任务拥有独立的输出目录,源任务的目录会以只读方式挂载到容器内的 /src 路径,同时检查点路径也会同步重写以匹配挂载规则。恢复训练流程绝对不会向被恢复的原有运行记录写入任何数据。


功能特性

功能状态
一键安装✅
轻量编排器镜像,引擎以独立容器形式为每个模型提供服务✅ 自 v0.5.0 起
自动检测 GPU 与内存✅
浏览器端聊天界面✅
OpenAI 兼容 API✅
Embeddings 端点 (/v1/embeddings),路由至集群内的池化引擎✅ 自 v0.5.25 起
实时更新的 HF 模型目录(含热门榜单)+ 下载管理器✅
跨集群 NFS 共享模型存储✅
多节点自动发现(UDP 广播)✅
跨节点分布式张量并行推理✅(v0.5.x 版本支持 TP=2,0.4.x 版本将于 2026 年 6 月支持 TP=4)
集群拓扑界面(成员、总显存占用、实例标签)✅
浏览器端微调(支持 LoRA / QLoRA / 全参数训练,单节点)✅
通过 API 获取并下载训练产物✅
将 LoRA 适配器合并至基础模型✅
断点续训(使用独立输出目录;源任务目录以只读方式挂载于 /src)✅ 自 v0.5.28 起
训练作业可在服务重启后保留(每个任务对应独立 status.json 文件,可从磁盘重建注册表)✅ 自 v0.5.28 起
训练镜像已发布至 GHCR(镜像名 ainode-train:),附带预置的预检查流程✅ 自 v0.5.28 起
支持 Chat / ShareGPT / AutoData 格式 conversations 数据集训练(兼容对应模型原生聊天模板)✅ 自 v0.5.28 起
评估循环(支持可配置的训练/验证集划分)✅
W&B 日志集成✅
自定义训练模板持久化✅
Prometheus 指标端点 (/metrics)✅
`ainode role masterworker
Worker 节点启动时无需预加载模型✅
启动后立即可用的 Web 门户✅
从 Master 界面执行集群全量更新(⬆ Update all 按钮)✅
拓扑加载动画 + 节点逐个淡入展示效果✅
GB10 (sm_12.1) 架构下的 AWQ 模型支持,已修复 awq_marlin 内核问题✅
浏览器端量化(AWQ W4A16 / NVFP4),量化完成后可直接提供服务或推送至 Hugging Face✅ 自 v0.4.44 起
将量化/微调后的模型推送至 Hugging Face(需提供写入令牌)✅
密钥存储(HF 读取权限 + HF 写入权限 + NGC + W&B + OpenAI),值已脱敏且支持可用性测试✅
联邦主路由器:通过 /v1/* 端点根据模型名称在集群内完成请求路由✅
在 Master 界面上从任意节点加载/卸载任意模型✅
模型堆叠:单节点可同时运行 N 个并发模型,配置持久化并在节点重启后自动恢复运行状态✅
从本地磁盘权重文件提供服务(路径:~/.ainode/models/)✅
GB10 架构下默认启用 fp8 KV 缓存(提升长上下文可用空间)✅
单次加载参数覆盖(served_model_name / max_model_len / kv_cache_dtype / quantization / trust_remote_code),配置在重启后保持生效✅ 自 v0.5.0 起
指定目标节点加载模型(POST /api/cluster/load {node_id})✅ 自 v0.5.1 起
堆叠加载准入防护:要求显式指定 gpu_memory_utilization 参数,若预测总占用率超过 0.9 则拒绝加载(返回 409 状态码)✅ 自 v0.5.1 起
VLM(视觉)模型支持:GB10 架构下自动跳过 fp8 KV 缓存,支持通过加载参数覆盖设置 kv_cache_dtype=auto✅ 自 v0.5.1 起
LoRA / QLoRA 训练及适配器合并操作均在独立启动的 GPU 容器中运行(轻量编排器未预装 torch)✅ 自 v0.5.0 起
部署流水线:发布标签、自托管 Spark 运行器上的 CI 流程、GHCR 推送,随后通过 ainode update 或集群全量更新完成版本切换(执行真实镜像拉取与替换)✅ 自 v0.5.0 起
支持可取消、绑定提交版本、并行的模型下载✅ 自 v0.5.2 起
从磁盘删除已下载模型(delete-repo,释放磁盘空间,单位 GB)✅
AutoData:Δ 过滤合成数据生成(v2.2 验证集精度提升目标)✅ 自 v0.5.0 起
ainode doctor:节点状态检查,每项问题对应单行修复方案,支持 --json、--peer、--fix 参数✅ 自 v0.5.27 起
面板可使用的 API 密钥认证(统一封装,密钥存储在浏览器端以启用认证功能)✅ 自 v0.5.27 起
使用 trust_remote_code 需要提供已授权的 API 密钥,或由目录内的配方显式声明该权限✅ 自 v0.5.27 起
显示 AINode 主目录与模型目录的磁盘可用/总容量,剩余空间低于 15% 时触发预警✅ 自 v0.5.27 起
通过集群端点暴露 /v1/responses、/tokenize、/detokenize、/v1/rerank、/v1/score 接口✅ 自 v0.5.27 起
将转发请求绑定至指定实例(通过 X-AINode-Node / X-AINode-Port 指定),响应中返回 X-AINode-Served-By 头标识实际处理节点✅ 自 v0.5.28 起
由 cluster_secret 生成 HMAC 签名 UDP 发现密钥,支持无需重启完成密钥轮换✅ 自 v0.5.28 起
传输报文携带 ainode_version 字段,出现集群版本分裂时显示对应提示横幅,/api/version/check 接口返回 cluster_split 字段标识✅ 自 v0.5.28 起
ainode update 会验证节点是否成功运行新版本,若版本升级失败则返回非零退出码✅ 自 v0.5.28 起
ainode prune-images 命令以及更新后自动镜像清理功能,保留 N 个可回滚的旧版本镜像✅ 自 v0.5.28 起
多 GPU 节点会在广播宣告中上报其 GPU 总数(gpu_count 字段),将所有 GPU 资源纳入集群统计✅ 自 v0.5.28 起
一键集群接入(支持 ainode cluster token、ainode join、AINODE_JOIN 三种方式)✅ 自 v0.5.29 起
全新安装时自动生成 cluster_secret,默认情况下节点发现流程不处于未认证状态✅ 自 v0.5.29 起
GET /api/cluster/endpoint 与 endpoint_hint 接口返回集群内所有节点地址,无需认证,保证客户端在 Master 节点故障后仍能正常接入✅ 自 v0.5.29 起
分布式 Head 节点启动时会接管当前正在运行的引擎,若拓扑异常则记录降级状态并标注异常对等节点✅ 自 v0.5.29 起
节点本地指标存储:保留 48 小时原始数据、30 天粒度为 1 分钟的聚合数据,可通过 GET /api/metrics/history 接口查询✅ 自 v0.5.29 起
/metrics 接口支持正常采集(v0.4 版本前返回 500 错误问题已修复),返回数据包含 node / node_id 标签与经过验证的采集配置✅ 自 v0.5.29 起
独立端口启用 TLS(ainode tls enable,默认端口 3443),支持自签名证书或 tailscale cert 签发证书,原 HTTP 端口服务不受影响✅ 自 v0.5.29 起
/v1 接口下的单客户端请求速率与并发数限制(通过 rate_limit 块配置,触发限制时返回 429 状态码并标注超限规则)✅ 自 v0.5.29 起
通过集群端点提供语音转文字服务(端点:/v1/audio/transcriptions、/v1/audio/translations)✅ 自 v0.5.29 起
全新安装时自动生成 API 密钥并默认启用认证(可通过设置 AINODE_AUTH=off 关闭),在已有配置的安装场景下不会修改原有认证设置✅ 自 v0.5.30 起
集群启用认证后:所有节点间调用都会携带由 HMAC-SHA256(cluster_secret, "ainode-fleet-key-v1") 生成的凭证,被调用方识别为合法集群内部调用✅ 自 v0.5.30 起
提供 ainode auth key create --name/list/revoke 密钥管理命令,修改 auth.json 配置后无需重启即可在运行中的节点上立即生效✅ 自 v0.5.30 起
GET /api/config 接口会脱敏隐藏 hf_token 字段,auth.json 和 config.json 文件权限设置为 0600✅ 自 v0.5.30 起
ainode tls enable --tailscale 可为当前节点的 MagicDNS 名称申请有效证书,通过 ainode-tls-renew.timer 在证书到期前 14 天自动完成续期✅ 自 v0.5.30 起
当节点启用 TLS 服务后,/api/cluster/endpoint 和 endpoint_hint 会返回 tls、tls_port 字段以及对应的 https 地址✅ 自 v0.5.30 起
节点重启或版本升级后,会自动接管当前所有正在提供服务的引擎(主实例、Head 实例、堆叠实例),无需重新加载,/api/status 接口返回 engine_adopted 字段标识该状态✅ 自 v0.5.30 起
下载模型时若磁盘空间不足,返回 507 状态码,标注所需空间、当前可用空间以及检测的目标路径✅ 自 v0.5.30 起
新增指标视图面板,支持 1 小时至 7 小时的六维度图表展示,可通过集群端点调用 GET /api/metrics/history?node= 查询任意节点的历史指标✅ 自 v0.5.30 起
已完成 openai/whisper-large-v3-turbo 验证,附带语音基准测试记录(词错误率、延迟、实时因子)✅ 自 v0.5.30 起
qwen3.8-flash-next-nvfp4-v100:通过目录支持在 4 张 Tesla V100 显卡上运行 Qwen3.8-Flash-Next 模型并启用 TP=4 并行策略✅ v0.5(开发中)

社区关联

AINode 基于 DGX Spark 生态中的优秀开源成果构建。https://github.com/eugr/spark-vllm-docker 及其打了补丁的 NCCL(dgxspark-3node-ring 分支)是 AINode 多节点能力的起点:0.4.x 版本直接运行了 eugr 的 launch-cluster.sh 脚本与对应基础镜像,项目中用到的各类标识与拓扑经验也全部来源于该仓库。

当前运行的版本已有诸多改进,此处有必要明确说明:AINode 0.5.x 会自行启动引擎,每个实例从模型配方指定的镜像单独拉起一个 vLLM 容器,多节点运行依赖 vLLM 原生多节点执行器实现,而非 Ray。从 eugr 的代码库构建而来的 ainode-base 镜像已不再作为正式发布产品的依赖组件。即便如此,我们对该项目的借鉴事实确凿,且 eugr 的项目仍是 Spark 硬件上原生部署 vLLM 集群的首选参考资源。

在此特别感谢 eugr 及所有让多节点 Spark 部署方案落地的贡献者。

AINode 实测模型

下表中每一项对应的模型,均已通过 AINode 在我方自有硬件上完成部署与性能实测。每一次运行的完整 JSON 记录保存在 bench/results/ 目录下,整个表格由 scripts/render-bench-table.py 脚本从这些记录自动生成,完全避免了人工编写的说明与实际数据出现偏差的问题。如果某个模型在该目录下没有对应记录,说明我们尚未对其完成实测,我们宁愿如实标注,也不会发布未经核验的性能数值。

模型总参数量 / 激活参数量量化方式部署节点配置单流生成速度 (tok/s)16 流生成速度 (tok/s)评测结果测试日期运行记录
Qwen3.8-Flash-Next125B / 6B 激活NVFP4(混合精度,PLE 层使用 FP8)castor 节点,4× Tesla PG500-216,TP=449.6104.2未运行评测2026-09-20https://github.com/getainode/ainode/blob/main/bench/results/20260920-***-qwen3_8-flash-next-nvfp4-v100-ainode-0_5_29-castor-tp-4-four-v100-32-gb-onecat-vllm-1_5_0-mm-mtp-4-via-the-fleet-endpoint.json
Qwen3.6 35B-A3B35B / 3B 激活NVFP4pollux 节点,1× Tesla PG500-216,TP=197.4343.9未运行评测2026-09-19https://github.com/getainode/ainode/blob/main/bench/results/20260919-040456-qwen3_6-35b-a3b-nvfp4-pollux-v100-solo-onecat-src-full.json
Spark-X2.5 4B4B 全密集BF16Spark-4-GX10 节点,1× GB10,TP=1(堆叠部署)18.9283.8未运行评测2026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-***-spark-x2_5-4b-spark-4-stacked-beside-nemotron-bf16.json
Qwen3.8-Flash-Next (NVFP4)125B / 6B 激活NVFP4(混合精度,PLE 层使用 FP8)Spark-2-DGX 节点,2× GB10,TP=226.2207.6未运行评测2026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-204216-qwen3_8-flash-next-nvfp4-tp2-mp-nightly.json
DeepSeek V4 Flash (DSpark, FP8)284B / 13B 激活FP8(专家层使用 FP4)Spark-2-DGX 节点,2× GB10,TP=234.594.0未运行评测2026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-033415-deepseek-v4-flash-dspark-fp8-tp2-mp.json
Nemotron 3.5 Lightning 30B-A3B30B / 3B 激活NVFP4Spark-4-GX10 节点,1× GB10,TP=1(堆叠部署)52.6未实测未运行评测2026-09-13https://github.com/getainode/ainode/blob/main/bench/results/20260913-***-nvidia-nemotron-3_5-lightning-30b-a3b-nvfp4-smoke.json
Ornith 1.5 35B-A3B35B / 3B 激活NVFP4Spark-1-DGX 节点,1× GB10,TP=1(堆叠部署)40.0269.219/192026-09-13https://github.com/getainode/ainode/blob/main/bench/results/20260913-***-ornith-1_5-35b-a3b-nvfp4-text-only-mtp.json
Qwen3.8 27B27B 全密集NVFP4Spark-3-DGX 节点,1× GB10,TP=119.0147.023/232026-08-15https://github.com/getainode/ainode/blob/main/bench/results/20260815-000000-qwen3_8-27b-nvfp4-mtp-vision.json
Nemotron 3.5 Lightning 30B-A3B30B / 3B 激活NVFP4Spark-4-GX10 节点,1× GB10,TP=1104.5504.319/192026-08-13https://github.com/getainode/ainode/blob/main/bench/results/20260813-000000-nvidia-nemotron-30b-a3b-nvfp4-dspark-recipe.json
Qwen3 235B-A22B235B / 22B 激活NVFP4Spark-1~4 集群,4× GB10,TP=416.5未实测未运行评测2026-06-17https://github.com/getainode/ainode/blob/main/bench/results/20260617-000000-qwen3-235b-a22b-nvfp4-tp4-frontier-moe.json

编码测试框架运行记录

以下记录的是上述模型由专属编码代理驱动的实测结果。表格中每一项代表单个模型在对应测试框架(aider、dsh、claude 等)上的运行结果,由与上表完全相同的基准测试记录通过 scripts/render-bench-table.py 脚本自动生成,同样不会出现描述与实测数据不一致的问题。表中展示的是每一组「模型-测试框架」配对的最新运行结果,如果某次运行的标识标注了 not measured,表格中就会直接显示该字符串,而非填充无效数值。

基准测试镜像信息: 镜像名称:ghcr.io/getainode/ainode 参考标签:latest

以下是各模型与测试框架的基准测试明细:

模型测试框架(Harness)pass@1pass@2平均耗时(秒)部署节点与配置测试日期运行结果
DeepSeek V4 Flashaider aider 0.86.29/1010/1047.3Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-deepseek-v4-flash-dspark-four-harnesses-10-exercism-harness.json
DeepSeek V4 Flashdsh 0.1.5-rc.110/1010/1016.4Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-deepseek-v4-flash-dspark-four-harnesses-10-exercism-harness.json
DeepSeek V4 Flashopencode 1.18.3110/1010/1023.4Spark-2-DGX, TP=22026-09-17https://github.com/getainode/ainode/blob/main/bench/results/20260917-***-deepseek-v4-flash-dspark-deepseek-v4-flash-tp-2-opencode-after-the-pwd-fix-10-exercism-tasks-harness.json
DeepSeek V4 Flashpi 0.73.19/1010/1013.8Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-deepseek-v4-flash-dspark-four-harnesses-10-exercism-harness.json
Nemotron 3.5 Lightning 30B-A3Baider aider 0.86.28/1010/10389.5Spark-4-GX10, TP=12026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-042104-nvidia-nemotron-3_5-lightning-30b-a3b-nvfp4-spark-4-solo-thinking-default-harness.json
Nemotron 3.5 Lightning 30B-A3Bclaude 2.1.274 (Claude Code)8/109/10239.5Spark-4-GX10, TP=12026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-042104-nvidia-nemotron-3_5-lightning-30b-a3b-nvfp4-spark-4-solo-thinking-default-harness.json
Nemotron 3.5 Lightning 30B-A3Bdsh 0.1.5-rc.17/1010/10108.9Spark-4-GX10, TP=12026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-053315-nvidia-nemotron-3_5-lightning-30b-a3b-nvfp4-spark-4-solo-thinking-default-dsh-rerun-after-pytest-preflight-harness.json
Nemotron 3.5 Lightning 30B-A3Bpi 0.73.17/1010/10119.2Spark-4-GX10, TP=12026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-042104-nvidia-nemotron-3_5-lightning-30b-a3b-nvfp4-spark-4-solo-thinking-default-harness.json
Ornith 1.5 35B-A3Baider9/1010/10116.3Spark-1-DGX, TP=12026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-ornith-1_5-35b-a3b-nvfp4-ornith-1_5-35b-a3b-on-spark-1-three-harnesses-10-exercism-tasks-harness.json
Ornith 1.5 35B-A3Bclaude 2.1.272 (Claude Code)8/1010/1050.8Spark-1-DGX, TP=12026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-ornith-1_5-35b-a3b-nvfp4-ornith-1_5-on-spark-1-claude-code-harness-10-exercism-tasks-harness.json
Ornith 1.5 35B-A3Bdsh 0.1.5-rc.17/109/1051.2Spark-1-DGX, TP=12026-09-17https://github.com/getainode/ainode/blob/main/bench/results/20260917-022907-ornith-1_5-35b-a3b-nvfp4-ornith-1_5-on-spark-1-thinking-off-by-default-dsh-10-exercism-tasks-harness.json
Ornith 1.5 35B-A3Bpi 0.73.15/1010/1043.2Spark-1-DGX, TP=12026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-ornith-1_5-35b-a3b-nvfp4-ornith-1_5-35b-a3b-on-spark-1-three-harnesses-10-exercism-tasks-harness.json
Qwen3.8 27Baider aider 0.86.27/109/10455.6Spark-1-DGX, TP=12026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-qwen3_8-27b-nvfp4-three-harnesses-10-exercism-harness.json
Qwen3.8 27Bdsh 0.1.5-rc.110/1010/10269.9Spark-1-DGX, TP=12026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-qwen3_8-27b-nvfp4-three-harnesses-10-exercism-harness.json
Qwen3.8 27Bpi 0.73.19/1010/10205.6Spark-1-DGX, TP=12026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-***-qwen3_8-27b-nvfp4-three-harnesses-10-exercism-harness.json
Qwen3.8-Flash-Nextaider9/1010/10319.8Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-201023-qwen3_8-flash-next-nvfp4-qwen3_8-flash-next-tp-2-spark-2-spark-3-four-harnesses-10-exercism-tasks-harness.json
Qwen3.8-Flash-Nextclaude 2.1.272 (Claude Code)8/1010/1046.1Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-205159-qwen3_8-flash-next-nvfp4-flash-next-tp-2-claude-code-harness-effort-medium-10-exercism-tasks-harness.json
Qwen3.8-Flash-Nextdsh 0.1.5-rc.110/1010/1096.2Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-201023-qwen3_8-flash-next-nvfp4-qwen3_8-flash-next-tp-2-spark-2-spark-3-four-harnesses-10-exercism-tasks-harness.json
Qwen3.8-Flash-Nextpi10/1010/10139.6Spark-1-DGX, TP=22026-09-16https://github.com/getainode/ainode/blob/main/bench/results/20260916-201023-qwen3_8-flash-next-nvfp4-qwen3_8-flash-next-tp-2-spark-2-spark-3-four-harnesses-10-exercism-tasks-harness.json
Spark-X2.5 4Baider aider 0.86.23/106/10923.4Spark-4-GX10, TP=12026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-***-spark-x2_5-4b-spark-4-stacked-beside-nemotron-first-run-harness.json
Spark-X2.5 4Bclaude 2.1.274 (Claude Code)4/107/10636.7Spark-4-GX10, TP=12026-09-18https://github.com/getainode/ainode/blob/main/bench/results/20260918-***-spark-x2_5-4b-spark-4-stacked-beside-nemotron-first-run-harness.json
Spa

[!NOTE] 原始输入文档末尾内容不完整,基准测试表格在最后一条“Spark-X2.5 4B”条目后被截断。

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

爱快 4.0 · iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

专属域名用法

专属域名 · 开启停用 · 多仓库

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

docker.sock / daemon

账号

失败是否计费

manifest · blob · 计费

申请开票(企业 / 个人)

开票 · 发票 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
ghcr.io/getainode/ainode
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
官方技术交流群:|问题咨询请:提交工单
服务号:轩辕镜像|公众号:源码跳动|小程序:轩辕镜像|官方技术交流群:|问题咨询请:提交工单
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥8/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱