高级 17 分钟Fine-tuning

在 GB10 上进行本地微调:实测数据与 方法

在 GB10 上进行本地微调:实测数据与 方法
直接回答

在 GIGABYTE AI TOP ATOM(NVIDIA GB10 芯片,128 GB)上,针对特定任务训练的小模型可以在该任务上超过超大模型。经过 85 分钟的 LoRA 训练,Qwen3-8B 能够零错误提取 200 张从未见过的虚构发票中 95% 的数据,而 gpt-oss 120B 为 62.5%,未经训练时为 26%。使用 Unsloth 的 QLoRA 同样可以运行:70B 需要 41 GB,gpt-oss 120B 需要 64 GB。这次训练的 GPU 侧电费为 1.5 欧分。

微调是在现有模型的基础上再做一些训练,使其能胜任某项特定任务。凭借 128 GB 统一内存,一台 GB10 机器就能在您自己的环境中完成微调,无需租用服务器,也无需把数据交给在线服务。本指南跟随一个完整案例,测量平台是 GIGABYTE 免费提供的 AI TOP ATOM:将发票数据提取为 JSON。指南还给出了使用 Unsloth 运行 QLoRA(同样的方法,用于压缩到 4 位的模型)直至 gpt-oss 120B 的测量结果,以及我们试验所用的命令。

作者: Mohamed Meguedmi·更新于 2026-11-05·在 GIGABYTE AI TOP ATOM 上测得
i
透明度
本系列指南所用硬件由 GIGABYTE 免费提供。测量结果和观点均为我们自己的;GIGABYTE 在发布前未审阅或批准本内容。本页面不包含任何联盟链接。我们的数据、信息图和照片均可根据 CC BY 4.0 许可自由再利用,但须注明 哪个LLM。
关键数字
95%
的虚构发票在训练后实现零错误提取
85min
在本机上进行的 Qwen3-8B LoRA 训练
1,5centime
本次训练的 GPU 侧用电
64,4GB
使用 Unsloth 对 gpt-oss 120B 进行 QLoRA 时
平放在一只手上的 AI TOP ATOM 前面板:百叶格栅和 GIGABYTE 徽标。
AI TOP ATOM 单手即可握持:宽 150 mm,高 50.5 mm。图为我们的设备,背景已做中性化处理。 放大 ↗

#真实案例:读取发票并生成 JSON

这项任务在小型企业中很常见:根据发票、报价单或贷项通知单的文本,模型需要返回一个 JSON,也就是一份软件可以读取的结构化记录。这份记录包含 31 个计分字段:文档类型、编号、日期、开具方、客户、产品明细行、折扣、总额、增值税、预付款、IBAN。我们选择这项任务,是因为答案可以逐字段核验,无需由另一个模型来评判。

这些文档均为虚构。一个小程序生成了 12 种版式,也就是 12 种发票样式,并使用虚构的公司名称。它的随机性由固定的“种子”控制:每次运行都会生成相同的文档。训练使用 10 种版式上的 2000 份文档。

评估使用 200 份从未见过的文档:100 份采用相同的 10 种版式,另外 100 份采用训练中未出现过的 2 种版式。后面这 100 份能说明模型是真正理解了任务,还是只记住了形式。

模型接收的是文档的文本,而不是图像或 PDF。以下是训练后的模型针对第一份测试文档给出的回答节选,该文档是一张四行的虚构贷项通知单。

训练后模型的回答节选(1 号测试文档,已缩略)
{
  "type_document": "avoir",
  "numero": "AV-2025-0807",
  "date_emission": "2025-05-12",
  "emetteur": { "raison_sociale": "Menuiserie Vassouze SA", "code_postal": "38000", "ville": "Grenoble" },
  "lignes": [
    { "designation": "Ponçage et vitrification", "quantite": -58, "unite": "m²",
      "prix_unitaire_ht": 36.0, "taux_tva": 10, "montant_ht": -2088.0 },
    …
  ],
  "total_ht": -6356.0,
  "total_tva": -911.4,
  "total_ttc": -7267.4,
  "devise": "EUR"
}

#方法:LoRA,一个 epoch,85 分钟

打造专属 AI 助手的完整套件。

借助我们的经验和引导式路径,打造你的本地助手,在日常中使用你的 AI。

  • 在线空间,终身可用
  • PDF + 文件
  • 30 天内退款

这台机器是 GIGABYTE AI TOP ATOM,型号 ATAGB10-9000:搭载 NVIDIA GB10 芯片、128 GB 统一内存和 4 TB PCIe 5.0 SSD,运行 DGX OS 7.5.0(驱动 580.159.03,CUDA 13.0)。软件方面:NVIDIA 的 PyTorch 容器(版本 26.03,含 PyTorch 2.11)、用于 LoRA 的 PEFT 0.21.2、用于 QLoRA 的 Unsloth 2026.10.1,以及用于模型服务的 NVIDIA vLLM 26.09 容器(vLLM 0.29.0)。本系列的第一篇指南详细介绍了这台机器以及 13 个模型的速度。

LoRA(Low-Rank Adaptation)保持原模型不变,只训练附加到其各层的小型矩阵。训练结果是一个适配器,即与模型一起加载的小文件。这里训练的参数为 4360 万个,而 Qwen3-8B 的参数量为 80 亿。

本指南中有三个术语会反复出现。一个训练步处理一批 4 份文档。一个 epoch 是对全部 2000 份文档完整过一遍。损失衡量模型写出的回答与预期回答之间的差距:越低越好。

模型
Qwen3-8B,采用 bf16(一种 16 位数字格式),未经压缩。
LoRA
秩(rank)16,alpha 32(一个缩放系数),dropout 0.05(每一步随机忽略一小部分值,以抑制过拟合),作用于每层的 7 个投影,即该层的 7 个权重矩阵:q、k、v、o、gate、up、down。秩决定了所添加矩阵的大小。
时长
1 个 epoch:500 步,每步 4 份文档。
学习率
1e-4,即 0.0001,先在 30 步内逐步升高,然后按余弦衰减。
Lots
我们按长度对 2000 份文档排序并组成批次,然后使用固定种子打乱批次顺序。同一批次中的文档长度相近,无效填充更少,因此训练速度更快。
Perte
仅针对 JSON 回答计算。提示词和文档均被掩码:模型学习的是写出回答,而不是照抄文档。
长度
最多 2304 个 token。最长的文档有 2204 个,平均为 1143 个:没有任何文档被截断。
内存
梯度检查点(gradient checkpointing)已启用:模型会重新计算部分结果,而不是将其全部保留在内存中。

这些设置由我们协议的一份修订确定,日期为 2026 年 10 月 7 日,早于对 200 份测试文档的任何评估。协议在首次测量前已冻结;方法、注明日期的修订清单以及我们表格中的数据都发布在方法页面上。本指南中的内存容量以 GB 为单位,与 Linux 的显示方式一致:1 GB = 1024 MB。

所有操作都在 NVIDIA 的 PyTorch 容器(版本 26.03)中进行。在其中的 Python 环境里安装 transformers 和 PEFT 库。下面的路径已经过简化;选项则是我们测试时实际使用的选项。

准备 Python 环境(2026 年 10 月 6 日测试)
mkdir -p ~/venv-ft ~/resultats   # à créer d'abord : sinon Docker les crée au nom de root
docker run --rm --gpus all --ipc=host --user $(id -u):$(id -g) -e HOME=/tmp \
  -v ~/venv-ft:/venv nvcr.io/nvidia/pytorch:26.03-py3 \
  bash -lc "python -m venv --system-site-packages /venv; . /venv/bin/activate; pip install -q 'transformers>=4.56' peft==0.21.2 accelerate"
启动发票训练(2026 年 10 月 8 日测试)
docker run --rm --init --gpus all --ipc=host --user $(id -u):$(id -g) -e HOME=/tmp \
  -v ~/venv-ft:/venv -v ~/models:/models:ro -v ~/donnees:/data:ro \
  -v ~/scripts:/s -v ~/resultats:/res \
  nvcr.io/nvidia/pytorch:26.03-py3 \
  bash -lc ". /venv/bin/activate; python /s/entrainer_factures.py /res/adapter"
训练脚本的核心部分(节选:M、pi、ri、LMAX、exemples、opt 和 pas 已在脚本前文中定义)
model = AutoModelForCausalLM.from_pretrained(M, dtype=torch.bfloat16, device_map="cuda")
model.gradient_checkpointing_enable(); model.config.use_cache = False; model.enable_input_require_grads()
model = get_peft_model(model, LoraConfig(r=16, lora_alpha=32, lora_dropout=0.05, task_type="CAUSAL_LM",
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]))

# perte sur la réponse seule : les tokens de la consigne reçoivent l'étiquette -100 et sont ignorés
ids = (pi + ri)[:LMAX]; lab = ([-100] * len(pi) + ri)[:LMAX]

# lots de longueur voisine : tri par longueur, lots de 4, ordre des lots mélangé (graine fixe)
tri = sorted(range(len(exemples)), key=lambda i: len(exemples[i][0]))
lots = [tri[b:b + 4] for b in range(0, len(tri), 4)]; random.shuffle(lots)
sch = get_cosine_schedule_with_warmup(opt, 30, pas)

#结果:95% 的文档完全正确

评分方法是在规范化之后,逐字段比较模型写出的值与预期值。当一份文档的所有字段都准确时,即为“完美”文档。三个模型接收相同的指令,温度设为 0(使回答最稳定的设置),通过 vLLM 26.09 运行,每次并发处理 16 份文档。Qwen3-8B 关闭了思考功能。gpt-oss 120B 的推理强度设为“低”。

基于 200 份从未见过的文档进行评估,2026 年 10 月 8 日,严格评分。“新版式”:采用训练中未出现过的 2 种版式的 100 份文档。耗时:200 份文档,并行 16 份,vLLM 26.09。
模型准确字段完全正确的文档完全正确,已知版式完全正确,新版式处理 200 份文档的耗时
未经训练的 Qwen3-8B84,8 %26,0 %27 %25 %686 s
未经训练的 gpt-oss 120B97,5 %62,5 %58 %67 %991 s
Qwen3-8B + LoRA(85 分钟)99,2 %95,0 %96 %94 %524 s
三个模型的水平条形图。完全正确的文档:未经训练的 Qwen3-8B 为 26.0%,gpt-oss 120B 为 62.5%,使用 LoRA 的 Qwen3-8B 为 95.0%,是未经训练时的 3.7 倍。字段正确率:84.8%、97.5% 和 99.2%。从未见过的版式上完全正确的文档:25%、67% 和 94%。
在 200 张从未见过的虚构发票上的提取质量(左上角:2,000 份训练文档,随后是 200 份测试文档)。实心条,已验证文档图标:完全没有错误的文档所占比例。浅色条,字段图标:准确字段所占比例。带星标的圆点:在 100 份版式未出现在训练中的文档上的完美文档数。颜色:蓝色表示未经训练的 Qwen3-8B,橙色表示 gpt-oss 120B,绿色(带闪电图标)表示经 LoRA 训练的 Qwen3-8B:其完美文档数量是同一模型未经训练时的 3.7 倍。 放大 ↗

训练后的模型有 95.0% 的文档完全正确,而未经训练的同一模型只有 26.0%:提高了 69 个百分点,无错误文档数量达到 3.7 倍。它还超过了拥有 1170 亿参数的 gpt-oss 120B(62.5%)。它也是速度最快的:处理 200 份文档用时 524 秒,而 gpt-oss 120B 用时 991 秒,未经训练的 Qwen3-8B 用时 686 秒。它的回答也更短:输出 98847 个 token,而 gpt-oss 120B 输出 160702 个。

在 100 份版式从未见过的文档上,训练后的模型仍有 94% 的完美文档和 98.5% 的准确字段,而在已知版式上分别为 96% 和 99.9%。完美文档的差距为 2 个百分点(96% 对 94%):适配器的能力并不局限于训练中见过的版式。

按字段查看的明细显示了训练修正的内容。全部 31 个字段在至少 97.5% 的文档中都准确无误,其中 18 个字段在 100% 的文档中准确无误。未经训练时,有 10 个字段的准确率介于 49.5% 和 61.5% 之间:包括金额类字段(折扣、总额、增值税、预付款、应付净额)和明细行字段(数量、单价、增值税税率、金额)。训练后,这 10 个字段的准确率达到 98% 至 100%。

这三个模型在 100% 的情况下都返回有效的 JSON,并在 100% 的文档中找到了正确的行数。因此,差异体现在字段的值上,而不是回答的格式上。

#成本:时间、内存、电力

Qwen3-8B 在 2000 份发票上的 LoRA 训练,2026 年 10 月 8 日。功耗和温度:GPU 读数,每秒一次(nvidia-smi)。
测量数值
训练时长5,090 秒,即 85 分钟(每步 10.2 秒)
PyTorch 记录的 GPU 内存峰值33.3 GB
GPU 功率,平均值与峰值53.0 W 和 62.7 W
GPU 温度,平均值和最大值65 °C 和 77 °C
GPU 报告的降频5206 条读数中没有任何一条
训练的 GPU 能耗(记录 87 分钟,含加载时间)76.7 Wh
按 EDF Tarif Bleu Base 电价计算的成本(每 kWh 20.01 欧分,含税)1.5 欧分
用训练后的模型读取 200 份测试文档的 GPU 能耗约 6 Wh

这些数字仅针对 GPU,是芯片自身报告的数值。据 NVIDIA 称,nvidia-smi 显示的功耗仅为 GPU 的功耗。处理器、内存、SSD 和电源均未计入。电价采用 EDF 的 Base 选项(6 kVA),依据 2026 年 8 月 1 日起适用的价目表;订阅费未计入。

使用 LoRA 训练 Qwen3-8B 期间的损失曲线,时间范围为 0 到 85 分钟。损失在首次记录时为 0.0284,在第 20 步升至 0.0511,随后从第 30 步(0.0076)起降到 0.01 以下,此时约为 5 分钟。此后直到结束,损失一直接近于零。训练持续 85 分钟,GPU 侧耗电 76.7 Wh,平均温度为 65 °C。
在 85 分钟的训练过程中每 10 步记录一次损失(横轴单位为分钟;共 500 步,每步 4 份文档)。圈出的两个点是第 20 步(0.0511)和第 30 步(0.0076),后者是首次低于橙色阈值 0.01 的记录。上方:时长、GPU 能耗和 GPU 平均温度。 放大 ↗

曲线上的每个点都来自单独一批 4 份文档,因此各次记录的数值会有波动。从第 30 步起,也就是训练 5 分钟后,损失降至 0.01 以下,此后的记录均未超过 0.0082。在这个案例中,仅一个 epoch 就足以达到 95% 的文档完全正确率。

#使用 Unsloth 进行 QLoRA:在同一台机器上训练一个 70B 模型和 gpt-oss 120B

QLoRA 将模型权重压缩到 4 位,从而大幅减少其内存占用,然后在其上训练 LoRA 适配器。这是无需更换机器就能让大模型专业化的途径。我们使用了 Unsloth,这是一款开源工具,据其开发方称,它能让微调更轻量、更快速。

NVIDIA 发布了在 DGX Spark 上使用 Unsloth 的官方指南,运行于 NVIDIA 的 PyTorch 容器(版本 25.11)中,同时还提供官方 PyTorch 微调环境,适用于 10 亿到 700 亿参数的模型。Unsloth 宣称 gpt-oss 120B 的 4 位 QLoRA 约需 68 GB 内存;我们测得的峰值为 64.4 GB,处于同一量级。

我们测量了两个模型的速度和内存:Llama 3.3 70B 和 gpt-oss 120B,两者均采用 Unsloth 发布的 4 位格式。每次试验包含 40 步,前 10 步用于启动,不计入平均值。

序列长度为 1024 个 token,批大小为 1,LoRA 秩为 16。这些步骤基于我们测试规程中的参考文本运行,用于测量吞吐量和内存;它们不会产出可用的模型。

这是 2026 年 10 月 6 日和 8 日的测量结果。前两行使用 Unsloth 2026.10.1、QLoRA 4 bits、1 024 tokens 序列长度和批次大小 1。第三行使用 transformers 和 PEFT 进行 bf16 LoRA,序列长度为 1 024 tokens,批次大小为 4。工具、批次大小和训练层不同,因此不要严格比较各行。“模型内存”指模型加载后系统可用内存的减少量;“GPU 内存峰值”指 PyTorch 记录的最大值。Qwen3-8B 的 63.4 GB 峰值来自这次吞吐量测试,测试使用 4 个序列的批次、每个序列 1 024 tokens,以及更简单的脚本;发票数据训练使用了其他设置,峰值为 33.3 GB。
模型Chargement模型内存GPU 内存峰值每步秒数每秒 token 数训练的参数量
Llama 3.3 70B(QLoRA 4 位)247 s37.6 GB41.3 GB9,391092.07 亿(7 个投影)
gpt-oss 120B(4 位 QLoRA)397 s58.5 GB64.4 GB6,351611190 万(4 个注意力投影)
Qwen3-8B(LoRA bf16)——63.4 GB5,427564360 万(7 个投影层)
两个模型使用 Unsloth 以 QLoRA 方式训练。Llama 3.3 70B:GPU 内存峰值 41.3 GB(共 128 GB),每步 9.39 秒,每秒 109 个 token。gpt-oss 120B:内存峰值 64.4 GB(共 128 GB),每步 6.35 秒,每秒 161 个 token。
使用 Unsloth 进行两次 QLoRA 时的 GPU 内存峰值(轨道刻度为 128 GB)和单步时长。9 格全满的图标:稠密模型(Llama 3.3 70B)。2 格点亮的图标:MoE 模型(gpt-oss 120B),每个 token 仅激活 51 亿个参数。每个名称下方:每秒训练 token 数(闪电图标)。颜色:蓝色代表 Llama 3.3 70B,橙色代表 gpt-oss 120B。左侧条形(内存条图标):内存峰值;右侧条形(时钟图标):单步时长。标题栏:1024 token 序列,批大小为 1。 放大 ↗

70B 训练时的峰值为 41.3 GB,约为系统可见 121.7 GB 的三分之一;gpt-oss 120B 则需要 64.4 GB。两种情况下都还有余量运行其他服务。值得注意的是,gpt-oss 120B 虽然体积更大,但每步速度比 70B 更快(6.35 s 对 9.39 s)。

这是一个 MoE(混合专家)模型:每个 token 只会使用其 117B 个参数中的 5.1(单位与总数相同)。我们只训练 attention 的 4 个矩阵(q、k、v、o),共 11.9M 个参数。70B 模型的 7 个投影层使用 LoRA,训练参数共 207M 个。

为便于规划,以下是根据我们的测量结果推算的数据。1000 步、每步 1024 个 token,即约一百万个 token,使用 70B 模型需要 2 小时 36 分钟,使用 gpt-oss 120B 需要 1 小时 46 分钟。请在您自己的数据集上核实这些时长。70B 模型的 QLoRA 占用 GPU 10.8 分钟(含模型加载时间),GPU 侧耗电 8.9 Wh。

→
限制 PyTorch 的内存上限
在统一内存机器上,GPU 和系统共享同样的 128 GB。我们用 torch.cuda.set_per_process_memory_fraction 将 PyTorch 限制在内存的 80%,并在每次试验前清空磁盘缓存。两次 QLoRA 都未超过这一上限。
Unsloth:加载 4 位模型并添加 LoRA(节选自我们的脚本,于 2026 年 10 月 8 日测试)
import os; os.environ.setdefault("UNSLOTH_SKIP_TORCHVISION_CHECK", "1")
import torch; torch.cuda.set_per_process_memory_fraction(0.8)
from unsloth import FastLanguageModel

model, tok = FastLanguageModel.from_pretrained(
    model_name="unsloth/Llama-3.3-70B-Instruct-bnb-4bit",   # ou unsloth/gpt-oss-120b-unsloth-bnb-4bit
    max_seq_length=1024, load_in_4bit=True, dtype=None)   # nos essais lisaient une copie locale du modèle
model = FastLanguageModel.get_peft_model(model, r=16, lora_alpha=32, lora_dropout=0.0,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],   # gpt-oss : q, k, v, o seulement
    use_gradient_checkpointing="unsloth", random_state=0)

Unsloth 2026.10.1 安装在与上文相同的 Python 环境中,位于同一个 PyTorch 容器内。如需分步安装说明,请参阅 NVIDIA 官方指南和 Unsloth 文档,链接见本页末尾。

#使用 vLLM 提供训练后模型的服务

vLLM 是一款开源服务器,专为同时响应多个用户而设计;我们使用的是 NVIDIA 提供的容器版本。它先加载原始模型,再添加适配器。随后 API 会提供两个名称:Qwen3-8B(不带适配器)和 factures(带适配器)。我们在同一台服务器上对两者进行了评估,因此比较是公平的。

部署 Qwen3-8B 和发票适配器(2026 年 10 月 8 日测试)
docker run -d --init --name vllm-factures --gpus all --ipc=host --ulimit memlock=-1 \
  -p 127.0.0.1:8002:8000 -v ~/models/hf:/m:ro -v ~/resultats:/res \
  nvcr.io/nvidia/vllm:26.09-py3 \
  vllm serve /m/Qwen/Qwen3-8B --served-model-name Qwen3-8B \
    --enable-lora --lora-modules factures=/res/adapter --max-lora-rank 16 \
    --max-model-len 6144 --gpu-memory-utilization 0.6
查询适配器(与我们评估中的调用相同)
curl -s http://127.0.0.1:8002/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "factures",
  "messages": [
    {"role": "system", "content": "…consigne : rendre le JSON de la facture…"},
    {"role": "user", "content": "…texte de la facture…"}
  ],
  "temperature": 0, "max_tokens": 3000,
  "chat_template_kwargs": {"enable_thinking": false}
}'

每次并发发送 16 份文档时,处理这 200 张发票需要 524 秒。按此速度,1,000 张发票约需 44 分钟:这是根据我们的实测结果推算出来的。端口绑定在本地地址 127.0.0.1。如需向你的网络开放该服务,请添加 API 密钥;关于生产环境中 vLLM 的指南详细介绍了这一步骤。

#在你自己的环境中分五步复现本案例

  1. 01
    准备样本
    收集成对数据:文档文本及其预期的 JSON 回答。只编写一条提示词,训练和评估都使用这同一条。我们使用了 2000 个样本;我们没有测量最低样本数门槛。
  2. 02
    留出测试集
    预留一部分文档,始终不让模型看到。再加入一些训练中未出现过的版式,以判断模型是否具备泛化能力。
  3. 03
    训练一个 epoch
    按长度对样本排序,组成批次,仅针对回答部分计算损失,并监控损失曲线。
  4. 04
    训练前后分别评分
    使用同一提示词,逐字段为原始模型和训练后的模型评分。同时也为一个未经训练的大模型评分:这是最有价值的对比。
  5. 05
    使用 vLLM 提供服务
    通过 enable-lora 选项加载适配器,并将您的软件接入 API。

#微调、RAG 还是更好的提示词:该如何选择?

先从提示词入手:它免费且立竿见影。如果模型需要从您的文档中查找事实,RAG 更合适:这是一种先在您的文件中检索、再作答的助手。

当任务重复出现、输出格式必须保持稳定,并且您手头有示例时,微调就是合适的工具。读取发票满足这三个条件。两种方法可以在同一台机器上结合使用;本系列的另一篇指南展示了一个完整的 RAG 助手。

#我们测量的局限

虚构文档
我们的发票由脚本生成,共有 12 种版式。真实文档(扫描件或照片)需要先进行文字识别(OCR),结果也可能有所不同。
仅一次训练
我们只训练了一个适配器,并在温度为 0 的条件下对每个模型各评分一次。我们没有测量不同训练之间的差异,也没有与更长时间的训练进行比较。
gpt-oss 120B
它的评分是在低推理强度下得出的。换用其他设置,得分可能会变化。
QLoRA
QLoRA 测量针对的是速度和内存,共 40 步。我们没有评估训练后的 70B 或 120B 模型的质量。
能耗
它仅涉及 GPU 本身。
不在范围内
我们没有测量训练模型全部参数的情况,也没有测量多台机器互联使用的情况。

更新与更正:如果 Unsloth、vLLM 或 DGX OS 的新版本改变了这些结果,本页将进行修订;每项更正都会注明日期。

#谁适合选择 ATOM

希望让小模型专门处理自身文档的中小企业或事务所
只需 85 分钟和 GPU 侧 1.5 欧分的电费,就能在我们的虚构发票数据集上将完全正确的发票比例从 26% 提升到 95%,而且没有向第三方发送任何一份文档。
构建原型的开发者或数据团队
LoRA 方式的 Qwen3-8B、QLoRA 方式的 70B 模型或 gpt-oss 120B:三者都能在同一台机器上运行,GPU 内存峰值为 33 到 64 GB。
希望在同一个地方完成训练、评估和模型服务的团队
同一台机器完成了适配器训练和三个模型的评分,并通过 vLLM 提供回答。
没有机房的办公室
一个一升容量的机箱(150 × 150 × 50.5 mm,1.2 kg),由 240 W USB-C 适配器供电。

我们把平台和厂商分开来看。NVIDIA GB10 芯片、128 GB 统一内存(273 GB/s)、CUDA 和 DGX OS 7.5.0 在很大程度上决定了训练速度。在推理方面,我们的测量结果与 DGX Spark 已公布数据的差距最多为 4.3%;本指南中的训练均在 AI TOP ATOM 上完成。

GIGABYTE 提供机箱及其双风扇散热系统。在训练期间 87 分钟的记录中,GPU 侧平均功率为 53 W,温度平均保持在 65 °C,最高 77 °C,未报告任何降频。

ATAGB10-9001(128 GB,4 TB PCIe 4.0 SSD)于 2026 年 10 月 8 日记录的价格:AORUS 官方商店售价 6346.27 €(含税),当时已售罄;Amazon.fr 当时有货。我们测量的是 ATAGB10-9000 型号,其 SSD 为 PCIe 5.0。GB10 的价格每周都在变动:购买前请先核实。

#FAQ

FAQ
在 GB10 上微调一个 80 亿参数的模型需要多长时间?+
在我们的 AI TOP ATOM 上,用 LoRA 基于 2000 张发票训练 Qwen3-8B,一个 epoch 共 500 步,耗时 85 分钟(每步 10.2 秒),GPU 内存峰值为 33.3 GB。所需时间取决于您的文档长度:我们的文档平均为 1143 个 token。
能在 128 GB 上微调 70B 模型或 gpt-oss 120B 吗?+
可以,使用 Unsloth 进行 QLoRA。我们测得 Llama 3.3 70B 的 GPU 内存峰值为 41.3 GB,每步 9.39 秒;gpt-oss 120B 的 GPU 内存峰值为 64.4 GB,每步 6.35 秒。这些测试衡量的是速度和内存;我们没有评估所得模型的质量。
经过训练的小模型真的能超过大模型吗?+
就我们的任务而言,是的:训练后的 Qwen3-8B 达到 95.0% 的文档完全正确率,而未经训练的 gpt-oss 120B 为 62.5%。这一结论适用于明确且重复的特定任务,并且是在虚构文档上测得的;大模型的通用性仍然更强。
一次微调的电费是多少?+
发票训练在 GPU 侧消耗了 76.7 Wh,按 EDF Tarif Bleu Base 每 kWh 20.01 欧分的电价计算,约合 1.5 欧分。该数字仅计入 GPU,以芯片自身上报的数据为准。
训练完成后如何使用适配器?+
使用 vLLM:enable-lora 选项会在原始模型之外加载适配器,API 则以您为其指定的名称提供该适配器。这正是我们实测采用的方式:524 秒读取 200 张发票,每次并行处理 16 张。
微调必须使用 128 GB 版本的 ATOM 吗?+
gpt-oss 120B 的 QLoRA 峰值为 64.4 GB:需要 128 GB 版本,也就是我们实测的版本。在其他测试中,我们测得的峰值从 33.3 GB(Qwen3-8B 在发票任务上的 LoRA)到 41.3 GB(70B 的 QLoRA)不等;Qwen3-8B 的吞吐量测试使用每批 4 条、每条 1024 个 token 的序列,峰值达到 63.4 GB。GIGABYTE 宣布自 2026 年 10 月 23 日起推出的 64 GB 版本尚未经过实测。
同一系列中
← 指南 470B 教程
Guide 6 · 即将推出面向中小企业的私有助手
这份指南对您有帮助吗?

有反馈、发现了错误,或想补充说明?请告诉我们,让这份指南对每个人都更有帮助。