潜空间语言模型把实验规模推到了迄今最大的量级:NCP-ArchPreview,8.9B 参数,5.73T tokens(Dolma-3 数据集),只用 51.3% 的训练 token 就追平了 OLMo-3-7B 的最终预训练损失。这期把训练侧的效率数字,一路推到 API 用户真正关心的两个问题——价格曲线往哪走,账单怎么省。

一、token 单价为什么降不下来

我平时通过 API 中转站接入各家模型,比价看得多了,有一个判断越来越确定:推理单价的地板,主要由预训练成本决定。一个模型从立项到上线,先要消耗大量 GPU 时做预训练,这笔一次性支出要摊到之后所有的推理请求里;推理侧的电力、带宽和卡损只是边际成本,真正抬高地板的是训练账单。

按 token 计费的挂牌价,看起来是推理服务的价钱,实际上同时背着三笔账:预训练摊销、推理服务的边际成本、以及竞争格局允许的毛利。前两笔偏刚性,最后一笔是弹性的。这就是 token 单价降得慢的原因——训练成本没有数量级变化时,定价只会在竞争挤压下小幅松动。

反过来说,任何能把训练 token 用量或训练算力压下来的架构变化,都是在往下压价格地板。这次的概念级预测(Next Concept Prediction,NCP)就是这样一个信号。我在 4sapi(https://4sapi.com)上做多家模型比价测试时最直观的感受是:同一档质量的模型,价格差可以拉得很开,差价背后往往就是训练效率和服务成本结构的差距。

二、NCP 是什么:先猜段落大意,再逐字填空

标准语言模型的训练目标是 next-token prediction(NTP):遮住下一个词,让模型逐字往下猜。这个目标简单、可扩展,撑起了过去几年所有的 scaling 故事,但粒度太细——模型大量的学习能力花在"下一个字是'的'还是'了'"这类低信息量判断上。

NCP-ArchPreview 在 NTP 之外加了第二个训练目标:Next Concept Prediction,概念级预测。我把这件事类比成写作文:NTP 是逐字往下写,NCP 是先把下一段要讲的意思定下来,再把字填进这个框架里。先猜段落大意,再逐字填空,两个动作互相校准。

这里的概念不是人工定义的标签,而是从模型隐状态里构建出来的:用乘积量化(product quantization)把连续的隐状态离散化,得到一个概念词表。概念是模型自己学出来的"意思单元",这也是潜空间(latent space)路线名字的来源——预测发生在隐空间里,不直接落在文字表面。

我的判断是:概念级目标的真正价值不在预测得准,而在强迫模型在更长的时间尺度上组织信息。逐字预测天然短视,能预测"下一个概念"的模型,必须先把长程结构学出来,这恰好是 NTP 单独训练时最难学到的部分。

三、原理速览:从隐状态到概念回注

把整条链路画出来是这样的:

模型隐状态(hidden states)
        |
        v
乘积量化(product quantization)
        |
        v
离散概念词表
        |
        v
Concept Module 预测未来概念
        |
        v
预测出的概念回注到 token 级
        |
        v
引导后续 token 生成
        |
        v
NTP 与 NCP 端到端联合训练

几个环节值得单独说。乘积量化是检索领域用了很多年的向量压缩技术,把高维向量拆成若干子空间分别量化再组合编码,好处是词表规模可控、构建成本远低于重新设计一套离散表征。Concept Module 是一个专门模块,负责预测"未来会出现哪个概念",预测结果再回注到 token 级,作为生成时的引导信号。

关键设计在于端到端联合训练:NTP 负责文字表面的局部一致性,NCP 负责概念层面的全局规划,两个梯度流共享同一个骨干。我不觉得这只是两个损失的简单叠加——概念回注让 NTP 的每一步都带着"这一步在往哪个意思走"的上下文,这是损失能更快下降的结构性原因。

四、三个关键数字:51.3%、+2.45、85%

51.3%:训练 token 的效率线。 只用 51.3% 的训练 token 就达到 OLMo-3-7B 的最终预训练损失,等于省下 48.7% 的数据预算。注意对比基准是"最终损失"而不是中途某个检查点——同等终点、更短的路,这是数据效率的硬指标。训练数据按 5.73T tokens 的量级走,省下的部分直接对应 GPU 时账单。

+2.45:质量没有成为代价。 下游宏平均高 2.45 分,其中 GSM8K 高 5.99 分。省 token 的同时质量还在涨,两个数字放在一起才构成完整的卖点;如果只是损失追平但下游回落,故事会弱很多。GSM8K 涨幅最大符合我的预期——数学题最依赖"先定思路再落笔",概念级预测补的正是这个能力。

85%:算力侧的第二次打折。 用 85% 的标准计算量即可接近参数对齐的 8.9B 基线的训练损失。算力节省(15%)比 token 节省(48.7%)温和,但方向一致:token 效率省的是数据吞吐,算力效率省的是单位吞吐的开销,两条线叠加之后,训练总成本的下探空间比任何单一数字都大。

五、对 API 价格曲线意味着什么

训练效率的提升不会直接变成降价,中间隔着定价机制。我把传导路径拆成三段。

第一段是成本侧。预训练是沉没成本,摊销逻辑是"预期推理销量覆盖训练支出"。训练总成本下探,意味着模型在更低的价格上也能回本,价格地板确实往下移了。

第二段是竞争侧。地板下移不等于挂牌价下调——定价最终由竞争格局决定。成本优势更常见的用法是同价位换更高的质量档,或者同质量档位留出更大的毛利空间。历史上推理单价的大幅下降,几乎都发生在"新一代模型用更低成本达到上一代质量"的节点上,概念级预测提供了同样的结构性条件。

第三段是用户侧。作为 API 用户,能做的是把价格传导的滞后变成议价空间:同一任务在多个模型之间的可迁移性越强,越能在价格传导完成之前吃到竞争红利。这也是我坚持做多模型比价的原因——不是省小钱,而是把架构进步转化成账单上的确定性。

六、领域适配的新姿势:只训 17M 参数的 VQ 模块

训练完成之后的用法,可能是对 API 生态影响更直接的部分:领域适配只需要更新 17M 参数的 VQ 模块,骨干完全不动。

传统的垂直领域路线要么全参微调,要么 LoRA,两者都要面对算力门槛和数据工程;17M 的 VQ 模块把适配成本压到几乎可以忽略的量级——本质上是给模型换一副"领域概念眼镜",让它用垂直领域的意思单元去组织生成。

我的判断是,这条路线真正改变的是垂直模型的供给曲线。以前一个细分领域(医疗报告、法律文书、工业日志)撑不起一次预训练,只能靠微调勉强对齐;现在适配成本降到这个量级,"一个领域一套概念词表"变得可行。对 API 用户来说,可选模型池会变深,长尾场景不用再在通用模型上硬凑 prompt。

七、投机解码视角:接受长度 +4.17% 的账单含义

把学到的概念表征注入 DFlash2 草稿模型后,平均接受长度提升 4.17%,开销可以忽略。这是 skip-level speculative decoding 的用法:草稿模型快速提出候选 token,目标模型一次验证一串;平均接受长度越长,一次验证产出的 token 越多,吞吐越高。

对账单的含义可以这样算(估算口径):推理服务的单位成本里,验证阶段的大模型前向是固定开销,平均接受长度提升 4.17%,约等于同样一次前向多产出 4.17% 的 token,每 token 摊到的验证开销同步被摊薄 4% 上下。数字不大,但性质很好——没有质量损失,没有额外请求,是纯推理架构层面的收益。

更值得记下的是方向本身:概念表征不只帮训练省 token,还直接给推理提速。训练侧和推理侧同时受益的架构改进,历史上都是价格曲线加速下移的信号。

八、接入教程:弹性测算与比价调用

这一段给出一个可以直接跑的 Python 脚本,做两件事:第一,把"训练 token 省 48.7%"折算成单价的弹性上限;第二,用 OpenAI 兼容格式实测不同模型的实际 token 消耗。

接口层面没有任何特殊要求,OpenAI 兼容端点就能跑。我实测时用的是 4sapi(https://4sapi.com)的中转端点,key 和 base_url 都从环境变量读入,换模型只改一个环境变量;中转层的价值就在这里——多家模型的调用方式完全一致,比价时不用为每家单独改代码,做负载均衡和多模型容灾时也是同一套配置。

import os
from openai import OpenAI

# ---------- 第一部分:训练 token 省 48.7% 的单价弹性测算 ----------
# 估算口径:预训练成本按线性摊销进入单价,节省比例乘以成本占比得到弹性上限;
# 真实定价还受竞争格局、毛利策略和推理服务成本影响,这里只测算理论空间。

TRAIN_TOKEN_BASE = 5.73e12    # 参照规模:这次潜空间实验的训练 token 总量
TOKEN_SAVING = 0.487          # 只用 51.3% 训练 token 达到基线损失,等价于省 48.7%
COMPUTE_SAVING = 0.15         # 85% 标准计算量接近基线,算力侧省 15%
PRETRAIN_COST_SHARE = 0.30    # 假设预训练摊销占单价的 30%(估算口径,需按实际情况调整)

def elasticity(saving: float, cost_share: float) -> float:
    """单一渠道的节省折算成单价弹性上限(估算口径)。"""
    return saving * cost_share

def elasticity_report() -> None:
    e_token = elasticity(TOKEN_SAVING, PRETRAIN_COST_SHARE)
    e_compute = elasticity(COMPUTE_SAVING, PRETRAIN_COST_SHARE)
    print(f"token 效率渠道:单价弹性上限约 {e_token:.1%}")
    print(f"算力效率渠道:单价弹性上限约 {e_compute:.1%}")
    print(f"两渠道相加是乐观上限(存在重复计算):{e_token + e_compute:.1%}")

# ---------- 第二部分:不同模型的比价调用(OpenAI 兼容格式) ----------
# 估算口径:固定提示词和 max_tokens,记录 usage 中的 token 数;
# 单价以接入平台当日报价为准,token 数乘以单价即单次账单。

PROMPT = "用三句话解释什么是概念级预测。"

def build_client() -> OpenAI:
    return OpenAI(
        base_url=os.environ["OPENAI_BASE_URL"],  # OpenAI 兼容端点
        api_key=os.environ["OPENAI_API_KEY"],
    )

def probe(client: OpenAI, model: str) -> dict:
    resp = client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": PROMPT}],
        max_tokens=256,
    )
    usage = resp.usage
    return {
        "model": model,
        "prompt_tokens": usage.prompt_tokens,
        "completion_tokens": usage.completion_tokens,
        "total_tokens": usage.total_tokens,
    }

if __name__ == "__main__":
    elasticity_report()
    client = build_client()
    models = os.environ.get("PROBE_MODELS", "model-a,model-b").split(",")
    for name in models:
        print(probe(client, name.strip()))

两点提醒:弹性测算的全部参数都是估算口径,PRETRAIN_COST_SHARE 尤其敏感,我建议用挂牌价反推一遍再定;比价调用要固定提示词和 max_tokens,否则 token 消耗的差异会混入生成长度的差异,账就没法对齐了。

九、成本对比表:主流路线 vs 潜空间路线

下表从 API 用户的账单视角对比两条路线(估算口径:定性方向为主,量化数字均取自前文的实验结果):

维度 主流 token 级路线 潜空间概念级路线 对账单的影响
预训练 token 用量 100% 基线 51.3% 达到同等损失 摊销成本下移,降价空间变大
训练算力 100% 基线 85% 接近基线损失 叠加摊薄,幅度小于 token 渠道
下游质量 基线 宏平均 +2.45,GSM8K +5.99 同价位质量更高,或同质量更低价
领域适配 全参微调 / LoRA 只更新 17M VQ 模块 垂直模型供给变多,选择面变宽
推理效率 标准 NTP 概念注入 DFlash2,接受长度 +4.17% 每 token 验证开销小幅摊薄(估算口径)
生态成熟度 工具链成熟 实验阶段 短期账单不变,中期看落地节奏

我的读法:前四行是"给定价留空间",第五行是"直接给推理打折",第六行决定这些收益什么时候能落到可接入的产品上。短期之内,账单不会因为一项实验发生变化;真正值得盯的,是这些数字出现在生产级模型上的那一刻。

十、成本与风险提示

省 token 的故事讲完,剩下的是冷静的部分。我列四条主要风险:

从实验到生产的距离。 8.9B 参数是迄今最大的潜空间语言模型实验,但和主流产线模型的规模生态仍有距离;训练效率的结论能否在更大规模、更多语言和更长上下文上复现,还没有被验证。

可复现性。 宏平均和 GSM8K 的提升是基准测试口径,不等于任何具体业务指标。接入前要拿自己的真实负载测一遍,尤其是长文本和 agent 类任务——概念级预测在短问答和数学题上的收益,未必平移到多轮工具调用上。

生态成熟度。 现有推理引擎、量化方案、微调工具链都是围绕 token 级架构沉淀的,潜空间路线的每一环都需要适配成本,早期接入的实际成本会高于挂牌价差。

定价传导的不确定性。 训练成本下降不必然传导为降价,成本红利如何在厂商毛利、竞争降价和产品质量之间分配,由市场结构决定,不由技术决定。

十一、观察清单:什么时候值得接入

我把判断信号整理成一份清单,满足得越多,接入的性价比越高:

最后一条是我最想强调的:任何架构红利落到账单上,都要先有基线数据。没有基线,所有"省了"都是感觉,不是数据。

十二、总结

这期从训练侧到账单侧过了一遍概念级预测:NCP-ArchPreview 在 NTP 之外引入概念级预测目标,用乘积量化从隐状态构建概念词表,Concept Module 预测未来概念再回注到 token 级,端到端联合训练之后,只用 51.3% 的训练 token 达到 OLMo-3-7B 的最终损失,下游宏平均高 2.45 分、GSM8K 高 5.99 分,85% 的标准算力接近参数对齐的基线;训练完成后,17M 参数的 VQ 模块就能做领域适配,概念表征注入 DFlash2 草稿模型让平均接受长度提升 4.17%。这些数字对 API 用户的含义是:价格地板在下移,垂直模型供给在变深,推理侧多了一条免质量损失的优化路径。

想动手的话,可以像这样把第八节的弹性测算和比价脚本跑起来,在 4sapi(https://4sapi.com)上换成常用的模型,把价格差变成自己的数据。欢迎在评论区聊聊对概念级预测这条路线的看法。