核验清单

  • ✓先看任务状态。主动取消仍按已消耗 token 计;其他原因中断不计训练费。损失曲线变差是效果判断,不是自动退款。
  • ✓对账用状态接口的 usage。它在 SUCCEEDED 或 CANCELED 时返回。不要把控制台预估再乘一遍循环次数。
  • ✓文本公式是数据 token 加混合 token,再乘循环次数。batch_size 不改变这个总量。图像和视频是另一套公式,不要套文本预估。
  • ✓训练成功不等于能调用。部署状态到运行中才开始收部署费。部署中、欠费、部署失败不计这一笔。
  • ✓账单商品名是 百炼大模型训练。实例 ID 用 ! 分隔,不是推理账单的分号。费用概览不展示训练,要去账单详情。

1. 取消和失败不是同一种零

模型训练与部署计费把停掉任务的账单写成两句,不能合成一句「没跑完就不收」。主动取消后,已消耗的 token 仍会推送计费,训练费用按已消耗 token 估算,最终以账单为准。其他原因导致的训练中断,百炼不收取训练费。你在控制台点取消,停的是后半段;前半段已经吃掉的 token 还在。平台自己中断、数据量不足导致任务失败,走的是后一句,训练费按文档不收。

状态接口把这两条路分开。模型训练 API 的任务状态包括排队、运行、成功、失败、取消中和已取消。usage 是这次微调消耗的 token 数,文档写明只在状态为 SUCCEEDED 或 CANCELED 时返回。失败不在这条返回条件里。没有这个整数,就不要拿创建时的预估公式给失败单补一笔「应该扣的 token」。取消单相反:usage 就是已消耗的那一截,账单按它收,不是按你当初填的循环次数收满。

控制台里还有一种容易看错的「失败」。控制台模型调优在看损失曲线时说:训练损失下降、验证损失上升,是过拟合,训练可能失败、效果可能不佳,建议调参后重新训练。这是效果判断,文档没有写已经消耗的 token 会退回来。另一条才是任务失败:SFT 会把超过 max_length 的样本直接丢掉,序列长度设得太大时,真正进训练的行不够,任务会因数据量不足失败。这种失败属于其他原因中断,训练费按计费页不收,但你也没有得到一个模型。日志里的失败原因决定走哪一条。曲线难看,不决定账单归零。

2. 预估乘了循环次数,usage 不要再乘

千问文本训练的计费公式是:(训练数据 token 总数 + 混合训练数据 token 总数)× 循环次数 × 训练单价,最小单位 1 个 token。控制台底部的预估可以展开,看到 token 总数、循环次数和单价。混合训练那一项经常被漏掉。只拿主数据集的字数去除以一个经验换算,再乘循环次数,会比预估小一截,也会比账单小一截。

batch_size 不在这个式子里。图像千问的计费说明写得更直:batch_size 不参与计费,不影响训练 token 总量。视频那边给出步数换算 steps = n_epochs × ceil(数据集大小 / batch_size),计费用的仍是 n_epochs,不是 steps。把 batch 调大,固定循环次数下的步数会变少,token 总量并不因此变便宜,也不因此变贵。反过来,有人先把 steps 当成计费步,再乘一遍循环次数,同一轮就被算了两次。文本预估已经乘过循环次数。状态接口返回的 usage 是实际消耗,账单以它为准。不要把 usage 再乘循环次数。

模型调优概览把计费方式也拆开了。控制台可以按 token、按训练单元预付费,或按训练单元后付费。通过 API 创建的训练任务只支持按 token。账户里还剩训练单元,解释不了 API 任务上的 token 行。训练单元和推理资源包也不是同一本账。资源包能不能退、能不能转到别的账号,是另一篇文章的问题,它不会把一次取消的 usage 抹掉。

3. 图像和视频不吃文本公式

同一页计费文档里,文本、万相图像、千问图像、视频是四套总量,单价表也不能横向套。万相图像是 max_steps × L_step,L_step 近似等于一张表里的 L_max。文生图 1k 和 图生图 2k 不在同一格。用文本的「数据 token × 循环次数」去估一张图的训练,数量级会对不上。

千问图像是 n_epochs × 图片数 × (max_pixels / 压缩率) × GPU系数。压缩率按文档是固定的 1024。GPU 系数随调度变化,说明里的 8 只用于演示计算过程。实际 token 以状态接口的 usage 为准,费用以账单为准。把演示表上的金额当成成交价,任务一调度就会偏。

视频的总量是各条视频计费时长之和,再乘 max_pixels / 1024 和循环次数。单条计费时长先把秒数四舍五入,再按模型封顶。wan2.7 和 wan2.5 最多按 10 秒,wan2.2 最多按 5 秒。一条 30 秒的素材不会按 30 秒进训练 token。四舍五入发生在封顶之前:10.4 秒先变成 10 秒,再和上限取较小值。数据集只有 1 条且 batch_size 为 1 时,循环次数才等于步数。这条等式不能拿去改视频公式里的循环次数。

4. 训练成功,还要等部署那口时钟

计费页在文本、图像、视频的说明里都写了同一句:训练完成的新模型要先部署,才能评测或调用。部署费从状态变为运行中才开始收。部署中、欠费、部署失败都不计部署费。包月预付费也是进入运行中之后才开始消耗包月时间。训练单已经是 SUCCEEDED,调用却 404,先看部署状态,不要在训练商品里找这笔调用。

部署之后怎么收费,不能用一句总述盖住三种路径。控制台常见问题写:训练好的模型在部署后只收部署费,不收调用费,评测不另收费。计费页又写明,只有对列出的基础模型做了 SFT 高效训练,并且部署时 plan 取 lora,才支持按输入和输出 token 计调用。万相图像的 SFT-LoRA 则写明部署免费,调用按微调前基础模型的标准价。三条同时成立,对的是三种部署。模型单元的空闲小时,是专属部署那篇文章里的另一口时钟。本文只标出交接点:训练费停在任务结束或中断,部署费要等运行中才开始,两笔不要加在同一个商品名下。

账单查询把训练从推理里拆出来。推理通常 2 到 10 分钟出账,训练按小时汇总,高峰可以再晚。出账不等于扣款,按量付费是预占加月结。费用概览页写明只展示大模型推理相关费用,训练和知识库要到账单详情里看。训练账单的实例 ID 用英文感叹号分隔,常见格式是业务空间 ID、地域、训练任务标识。推理账单用分号。商品名称是 百炼大模型训练。对不上任务时,用账单月份和调优页的提交时间去配,不要用推理实例 ID 的渠道字段去解释这一列。没有正在进行的训练任务时,不再产生新的训练费。这句话停的是下一笔,不冲销取消单上已经推送的 usage。

5. 充值改不了取消和失败的分界

对账按五列走。第一列是任务状态:已取消看 usage,失败看日志里是不是数据量不足或其他中断,损失曲线不单独决定金额。第二列是公式族:文本、万相图像、千问图像、视频不要混乘。第三列是 usage 有没有被再乘循环次数,以及 batch_size 有没有被当成折扣。第四列是部署是不是已经运行中,以及这次走的是模型单元、lora 的 token,还是图像 LoRA 的按张调用。第五列是账单商品名和分隔符:训练是感叹号和 百炼大模型训练,不在费用概览的推理合计里。

给百炼账户充值发生在扣款之前。链上把稳定币换成能充进账户的资产,不会把取消单的已消耗 token 退掉,也不会让失败单开始计训练费,更不会让还在部署中的模型提前按小时计。需要这一步时,可以用无需注册、非托管的 AllSwap 完成链上兑换。兑换成功只说明资产换了手。取消单上的 usage 该进 百炼大模型训练,还是会进。