Hermes 4 深读:一个把「拒绝率」当成产品规格来打的开源模型

Nous Research 的 Hermes 4 在自家 RefusalBench 上打 57.1,同一张表 GPT-4o 17.67、Sonnet 4 是 17、GPT-5 是 11.34——这不是能力差,是产品哲学差。本文按 arXiv 2508.18255 技术报告逐节拆:base model 拼装(405B/70B 是 Llama 3.1、14B 是 Qwen3)、DataForge 图式合成数据、Atropos 千验证器拒绝采样、30K token 强制截断这一手漂亮的 length control、192 张 B200 训一次要多少钱。结尾接回昨天那篇 OpenRouter:Hermes 4 405B 全网只 1 家 provider——「意见型微调」不进入商品市场。

先看一个数字:Nous Research 自己造了一个叫 RefusalBench 的评测——32 类日常提示,166 条手工模板,用 Claude Sonnet 4 当裁判判”模型有没有拒答”,高分 = 拒得少。他们把 15 个模型放上去跑了 5 遍取均值。这张表最上面两行是 Hermes 4(Reasoning 模式)57.1 和 Grok 4 51.3;表最下面几行是 GPT-4o 17.67、Sonnet 4 17、Opus 4.1 15.38、GPT-5 11.34、gpt-oss-120b 5.60(数字均引自 arXiv:2508.18255 的 Figure 4)。

把这张表读成”Hermes 更好”是误读——RefusalBench 本身就是 Nous 造的,闭源模型跑他家标准,好像考生给自己出卷。这张表真正的信息是产品定位的自我披露:Nous 明摆着告诉你,他们造 Hermes 的意义不在 MATH-500 或 AIME 上更高几分,而在拒绝率这条轴上系统性地站在闭源模型的反面

这一篇按技术报告逐节拆开 Hermes 4,主线只有一句:Hermes 卖的不是”开源许可”,是闭源实验室不出货的一套助手默认值。 剩下所有技术选择——DataForge 合成数据、Atropos 拒绝采样、30K token 强制截断——都是这条主线的推论。

名词速查

术语一句话解释
Hermes 4Nous Research 2025-08 发布的开源模型家族,14B / 70B / 405B 三个尺寸
Neutrally-aligned(中立对齐)Nous 官方措辞:不主动加拒绝层、不预设立场、由用户和系统提示引导
Hybrid reasoning可开可关的 <think>...</think> 推理段,同一权重两种模式
DataForgeNous 造的图式合成数据管线,节点用 PDDL 前后置条件描述
AtroposNous 开源的 RL 环境微服务框架,Hermes 用它跑了 1000 个验证器
RefusalBenchNous 自造的拒绝率评测(32 类,166 提示,Sonnet 4 当裁判)
Rejection sampling(拒绝采样)生成大量候选、只保留通过验证器的那些用于 SFT,绕开完整 RLHF
B200-hour一张 NVIDIA B200 GPU 跑一小时。405B 一次训了 71,616 B200-小时

门槛铺垫

这篇假设你熟悉:开源权重模型和闭源模型的区别(权重可下载 vs API 才能用)、SFT / DPO / RLHF 的分工(不熟先看 Zephyr 那类开源微调配方)、推理模型和普通模型的区别(DeepSeek R1 那种带 <think> 段的 vs 直接答的)。也知道 Meta 的 Llama-3.1 有 “Base”(原始预训练)和 “Instruct”(Meta 自己 RLHF 过)两个版本,Instruct 版才是大多数应用真正在跑的东西——Hermes 4 是从 Base 拿走、自己重新做 post-training 的产物,跟 Meta 的 Instruct 不在同一条流水线上。

如果你还没读过昨天那篇《OpenRouter 深读》,最后一节会引用它:Hermes 4 在 OpenRouter 上的 provider 挂牌数据,是”意见型微调 vs 商品市场”这条主线的直接落脚点。


一、卖点是什么:一张 RefusalBench 表把话说完了

技术报告第 10 页 Section 4.5.1(原文 PDF)把 RefusalBench 讲得很坦白:

  • 32 个类别的 prompt,“typically result in refusals from frontier models”(常引发前沿模型拒答的类型)
  • 166 条手工模板
  • Sonnet 4 当 LLM-as-judge 判是否拒答
  • 3 类涉及具体伤害的(比如未成年、人贩、自伤)做反向计分——这三类里”拒得多”才算加分
  • 结果表(Figure 4,5 次平均):
模型RefusalBench↑模型RefusalBench↑
Hermes 4 (Reasoning)57.1GPT-4o17.67
Grok 451.3Sonnet 417
Hermes 4 (Non-reasoning)43.2GPT-4o mini16.76
DeepSeek V328.1Opus 4.115.38
Gemini 2.5 Pro24.23GPT-511.34
Llama 3.1 405B21.7gpt-oss-120b5.60
Gemini 2.5 Flash19.13gpt-oss-20b4.79

三个观察,都能直接从表里读出:

  1. 闭源模型作为一个整体挤在底部(4.79 → 17.67,跨度不到 4×)。差异不在”哪个闭源实验室对齐得更松”——它们内部差异很小,作为一个族群站在同一侧。
  2. Hermes 4 拿 non-reasoning 模式(43.2)就已经赢过所有闭源,reasoning 模式(57.1)再拉开一档。Grok 4 是唯一站在同一侧的商用模型——不巧的是它也是唯一以”less censored”为营销卖点的。
  3. 同一份 Llama 3.1 405B 权重,Meta Instruct 版是 21.7,Hermes 4 405B 是 57.1——同一 base,post-training 的方向决定了产品是什么。这一行才是这张表最硬的信息量:它在说”post-training 就是产品”。

诚实的追问:RefusalBench 是 Nous 自己造的,是不是”考生给自己出卷”?部分是。但把 3 个类反向计分这个细节说明他们至少不是无脑最大化”拒得少”——他们承认”未成年/人贩/自伤”应当拒。这张表更像一份”我们的对齐哲学”的产品规格书,比”我们更好”的读法更接近它的实际功能。

二、Hermes 4 到底做了什么

从技术报告 Section 2–3 逐节拆开——每一节都是同一主线的技术推论。

2.1 Base:三个尺寸挂在两个 base 上(Section 3, page 5)

  • 405B、70B:Llama 3.1 官方 base checkpoint(不是 Instruct)
  • 14B:Qwen3 14B(这里破了一下”Nous 只做 Llama 微调”的惯性认知)

第 6 页训练参数表逐行摆出:

尺寸并行训练 tokenLRB200-小时
14BFSDP56 B5 × 10⁻⁵4,454
70BFSDP + TP56 B1 × 10⁻⁵12,864
405BFSDP + TP56 B5 × 10⁻⁶71,616

一件值得算一下的事:405B 的 71,616 B200-小时,按现在市场上单卡 B200 大约 6/小时(Lambda/CoreWeave挂牌区间,2025Q3数字浮动±306/小时(Lambda / CoreWeave 挂牌区间,2025 年 Q3 数字浮动 ±30%),**折算 ~430K 的一次训练成本**——这个数量级已经不是 hobbyist scale。全都跑在 192 张 B200 GPU 上,混合 DDP + TP + FSDP,9,000 步、cosine LR、全局 batch 384 samples × 16,384 token context。

(这个成本估算是我拿单卡挂牌价拍的,Nous 实际拿到的价可能更低——他们在致谢里点了 Chutes 和 Modal,说明有 sponsor。数字看数量级用,不要照抄。)

2.2 DataForge:把合成数据做成图(Section 2.1)

Hermes 4 的 SFT 数据不是买或爬来的,是自造

  • ~5 M 样本 / 19 B tokens(3.5 M reasoning + 1.6 M non-reasoning)
  • reasoning 样本每条平均是 non-reasoning 的
  • reasoning trace 上限 16k tokens

生成管线叫 DataForge,思路借自 AgentInstruct每个节点是一个 struct → struct map,节点内部实现 PDDL 的 action 接口(前置条件 + 后置条件),DAG 里的边由前后置条件隐式决定——A 的 postcondition 满足 B 的 precondition 就有一条边。

用一段最小伪代码(对应论文 Section 2.1 描述的机制,非原源码)刻它的骨架:

# 伪代码:DataForge 一条数据的生成路径
seed = sample_from(DCLM_or_FineWeb)                # 拿一条预训练种子
if not dedup(seed, cosine=0.7, model="ModernBert"):  # 语义去重
    return None
transformed = transform(seed, target="rap song")   # 换介质
instruction = generate_instruction(transformed,     # 生成指令
                                    type="rhetorical_analysis")
answer = specialized_generator(instruction).answer  # 专用答案模型
if not llm_judge(instruction, answer,               # LLM 裁判打分
                 rubric_for(instruction.type)):
    return regenerate()   # 不通过就重跑,超阈值丢掉
return (instruction, answer, all_intermediate_llm_calls)  # 中间过程也进训练集

三个我觉得值得单独指的选择:

  • 裁判和答案模型必须是不同权重(page 3,“different weights … as a precautionary measure against LLM judges recognizing and favoring their own generations”)——这句话把 LLM-as-judge 的 self-enhancement 偏差当工程约束处理,不是研究话题。
  • 中间的 LLM call 也进训练集,不只训最终 QA 对——这样模型会学到”指令生成”和”裁判”的能力,为后续 rejection sampling 的自监督铺路。
  • ModernBERT 阈值 0.7 语义去重是一个具体到能复现的 hyper——比”我们去重了”多一个信息级。

2.3 Atropos + 1000 个验证器:绕开 RLHF(Section 2.2)

Hermes 没跑完整的 PPO/GRPO RLHF——跑的是拒绝采样:生成大量候选、只保留通过 verifier 的那些用于 SFT。

验证器有~1000 个,通过 Nous 的开源框架 Atropos“open source reinforcement learning environment microservice manager”)管理。文中详细写了 5 个环境:

  1. Answer Format Training:150+ 种输出格式(\boxed{}、JSON schema、XML……),二元奖励——格式对就是 1.0,错就是 0.0,答案正确性不进 reward。同时强制 <think> / </think> 定界符。
  2. Instruction Following:基于 RLVR-IFEval,约束类指令(“每 N 个词要用法语”这类)。
  3. Internbootcamp:1000 个推理任务 → 70,000 条 rejection-sampled trajectory;先用 DeepHermes 和更大的模型跑候选,再按 token 预算和正确性挑赢家。
  4. Schema Adherence:动态编译 Pydantic 模型验 JSON,除了生成还包括修正(挑一个坏 JSON 让模型改对)。
  5. Tool Use:拦截 <tool_call> token,验 JSON 字段和取值都对上原始 dataset 才给 reward。

为什么走拒绝采样而不是 PPO? 论文没直接答,但看得到的原因有两个:一是需要 verifier 的地方多,PPO 的信号又稀疏又难调(RLVR 的经验);二是 rejection sampling 本质上是 expert iteration 的一种,工程复杂度和数据复杂度都低一个量级,对小团队更可行。这也是 DPO 的推理——用最简单的目标函数换掉整套 RL 栈——在 Hermes 侧的落地方式。

2.4 30K token 强制截断:一个漂亮的 length control(Section 3.1,page 6-7)

这是 Hermes 4 技术报告里我读到的最方法论上新颖的一段,值得单独拆。

问题:14B 在 LiveCodeBench reasoning 模式下,会跑满 40,960 token 上下文 60% 的时候——推理链没个头。传统做法是”训练时截短样本”或”多轮训练 penalize 长度”,两者都会改变推理分布(要么让模型学得短、要么让模型学得散)。

Nous 的解法(page 7):搞了一个第二阶段 SFT。数据的构造精妙:

  • 从当前模型(stage 1 输出)继续生成,让它自由产 reasoning
  • 在恰好第 30,000 个 token 处硬插一个 </think>,然后继续让模型生成 answer
  • 训练时只对那一个 </think> token 计算 loss——前面 30k token 的 reasoning 和后面 answer 的 loss 都 mask 掉

用他们自己的话(page 7):

“we focus the learning signal entirely on that single token, not the preceding reasoning chain… by leaving the model-generated reasoning tokens untouched and concentrating gradient updates solely on learning when to emit </think>, we exploit the stability of single-step augmentation while minimizing the distributional shift.”

翻译成人话:只教”什么时候该停”,不教”该怎么想”。模型学到的是一个纯粹的计数行为——“数到 N 就停”——推理风格本身完全不动。

数字(Table 2,Hermes 4 14B Qwen3):

基准Stage 1 分数30k 微调后分数变化Overlong@40960 (Stage 1)(30k tuned)
AIME’2455.055.4+0.7%28.2%0.1%
AIME’2548.746.8−3.9%25.9%0.1%
GPQA Diamond57.460.2+4.7%18.2%0.2%
LCBv6 Aug2024+28.642.5+48.6%60.0%0.1%

Overlong 率降 98.9–99.6%,分数最坏掉 3.9%,最好涨 48.6%——LiveCodeBench 那 48.6% 涨幅几乎全部是”不再因为跑满 40k 而被判失败”贡献的。用最简单的信号(一个 token 的 gradient)解决一个曾被认为需要 RL 或复杂 SFT 才能治的问题——这一手值得记住。

三、把”neutrally-aligned”当产品规格来读

论文摘要里那个词——“a family of hybrid reasoning models” + Introduction 那句 “neutrally-aligned generalist models”——不是措辞美化,是产品定位。技术报告 Section 5.1 讲得更露骨(page 11):

“most models exhibited what we term policy rigidity. That is, a tendency to foreground policy compliance even when faced with clearly fictional or controlled prompts. For example, large proprietary models such as GPT-5 and Opus 4.1 frequently issued disclaimers… By contrast, Hermes 4 demonstrated comparatively greater contextual fidelity…”

翻成产品语言:Hermes 4 的定位不是”更聪明”,是”默认状态下不主动加免责声明层”。Section 5.3.2 有一个更妙的证据——把 chat template 里的 assistant 改成 me,Hermes 4 会以第一人称回复、少加免责声明、更一致地入戏;同样的模板改动在闭源模型上几乎无效。这意味着 Hermes 的 RLHF 层不是刚性的,用户可以从系统提示和 chat template 侧撬开。

这个设计有个明确的”共同祖先”:post-training 决定产品,不是 pre-training 决定产品。同一份 Llama 3.1 base,Meta 出货的 Instruct 版和 Nous 出货的 Hermes 4 是两个不同的产品——base 的能力天花板是共同的,产品化的方向是相反的。用决策地图那篇里的话说:post-training 的目标函数就是产品的目标函数,评测偏什么,产品就是什么。Meta 的 evals 偏 helpful & harmless,Hermes 的 evals 偏 steerable & neutral。同一份权重的两个产品化方向,可以在 RefusalBench 上差 40 分

这条推论有一个直接的证伪测试:如果哪一天 Meta 出货一个 “Llama-Instruct Neutral” 版本、闭源实验室推出一个 “helpful-only mode” 开关、或者 Qwen/DeepSeek 默认就走中立对齐——Hermes 的独立定位就消失了。它的产品位是”闭源实验室不愿做的那一块”,一旦闭源实验室愿意做,这块就没了。

四、市场稀薄:为什么全网只有一家 provider 挂 Hermes 4

昨天那篇《OpenRouter 深读》的核心事实是:Llama 3.3 70B 在 OpenRouter 上挂着 13 家 provider,价差 10×。

我今天顺手把 Hermes 系列在 OpenRouter 上的 endpoint 也拉了一遍——命令粘在文末,结果贴出来:

模型Provider 数报价($/M prompt·comp)量化
meta-llama/llama-3.3-70b-instruct130.10–1.04 / 0.32–2.25fp8, bf16, fp16, unk
nousresearch/hermes-4-405b1 (Nebius)1.00 / 3.00fp8
nousresearch/hermes-4-70b1 (Nebius)0.13 / 0.40fp8
nousresearch/hermes-3-llama-3.1-405b1 (DeepInfra)1.00 / 1.00fp8

同一份 Llama 3.1 405B base,Meta 版能召唤十几家 provider 挂牌竞价,Nous 的 Hermes 版全网就一家。为什么?——这是昨天那条主线的推论:

  • 开源权重让推理商品化、催出多家 provider 竞价——但只对需求集中的商品成立。
  • Llama-Instruct 是规范商品(Meta 官方 Instruct 是行业默认,需求集中)。
  • Hermes 4 是意见型微调(Nous 的对齐哲学,需求分散在有特定偏好的买家上)。
  • 结果:Hermes 落到市场里就是一个”薄流通商品”——用户少 → provider 少 → 缺竞价压力 → 报价高(405B 3× 于 base Llama)→ 用户更少……

Hermes 4 405B 1/1/3 vs Llama-3.3 70B DeepInfra 0.10/0.10/0.32——同一个物理量级的推理,价差 10–30×。这不是”Hermes 更贵”,是意见型微调本身在开源模型市场里就是一个稀薄品。你为 Hermes 付的溢价,本质上是为一套 alignment 默认值付费——如果 Meta 明天出货 neutral 版,这个溢价就归零。

(一次性验算:Hermes 4 405B 每百万 output token 3Claude4.7Sonnet现价[3,Claude 4.7 Sonnet 现价 [15/M output](https://www.anthropic.com/pricing)——**5×** 便宜。这条线不错,但只有一家 provider 意味着没有 SLA 兜底。生产用要么容忍这个风险,要么走 BYOK 直接接 Nous 自家 Inference API。)

五、崩点:这个产品会先在哪里塌

崩点 1:闭源模型加”less refusal” 开关——这是最直接的威胁。OpenAI 的 gpt-oss 系列(gpt-oss-120b / 20b)2025 年 8 月发出来时,一个明确的信号就是”我们也可以出货 permissive 版本”(虽然 RefusalBench 上它们分反而更低——说明”开源 ≠ neutral”,也说明 Nous 的方向不是”开源”就能自动学会)。如果 GPT-5 或 Claude 明天上线一个 “developer mode / neutral mode”,Hermes 的 RefusalBench 差距会瞬间收窄一半。

崩点 2:post-training 商品化——Zephyr / Tulu / Nemotron 那条线在推的是”公开配方 + 公开数据 + 谁都能跑一遍”。如果 OLMo 这类完全开放的 post-training 管线成熟到能被复刻,那么”Hermes 的 post-training”作为差异化就会衰减为”一个已公开配方的执行副本”——竞争回到执行力、卖不出溢价。

崩点 3:RefusalBench 作为营销武器的生命周期——一个自造的 benchmark 顶多做 6-12 个月的定位工具。Chatbot Arena 已经开始给”personality”分组,Artificial Analysis 也在扩品类。一旦第三方评测有了权威的 refusal 排行榜,Nous 造这个表的信息价值就消失了。

共同祖先:这三个崩点都是同一件事的不同侧面——Hermes 的产品位是「闭源实验室的对齐取向 + 开源社区的执行能力」之间的一块夹缝。闭源实验室往下走一小步、开源社区往上走一小步,这块夹缝就没了。这也解释了 Nous 为什么在同期投资 DisTrO / DeMo85× 带宽降低 的去中心化预训练优化器)、Psyche Network(Solana 上协调的去中心化训练网络)——他们赌的不是”永远做最好的 Llama fine-tune”,是”往下抢占 pre-training 层”。fine-tune 层夹缝会关,pre-training 层夹缝更大。

小结

  • 一句根本约束:Hermes 4 之所以存在,是因为”开源权重”作为一个产品类别不是被许可协议定义的,而是被”闭源实验室不出货的那套助手默认值”定义的——RefusalBench 上 Hermes 57.1 vs GPT-5 11.34 不是能力差,是产品哲学差。同一份 Llama 3.1 405B base,Meta Instruct 21.7 vs Hermes 4 405B 57.1 是最硬的证据:post-training 就是产品
  • 崩点:闭源实验室加”neutral toggle”、post-training 公开配方成熟、第三方 refusal benchmark 出台——三条路径任何一条走通,Hermes 的夹缝都会关掉。这解释了 Nous 为什么向下投 DisTrO / Psyche(去中心化预训练层)——赌 fine-tune 夹缝会关,pre-train 夹缝更大更长。
  • 共同祖先:这是评测决定路由那条定律在产品化层的映射:post-training 的评测偏什么,产品就是什么。Meta 的评测偏 helpful & harmless,出货 Instruct;Nous 的评测偏 steerable & neutral(连 RefusalBench 都是自造的),出货 Hermes。同一份权重,两条评测线,两个产品。
  • 可带走的动作
    • 想用 Hermes 4 405B:OpenRouter 上就一家 Nebius 1/1/3,生产要有兜底方案(BYOK 到 Nous Inference API、或者自托)。
    • 想复现那个 length control 技巧:只对停止 token 计 loss、mask 其它——2 阶段 SFT 就够,Axolotl 能直接跑。
    • 想自造类 Hermes 数据管线:DataForge 是 AgentInstruct 的 PDDL 化重构、加 ModernBERT 0.7 dedup、加 LLM judge 过滤——Atropos 全部开源。

说明与后续验证

我软的地方:Hermes 4 的具体训练超参(scheduler 细节、梯度裁剪、优化器状态)我只读到 Table 1 那一层,Modified TorchTitan 的代码没读;那 5 个 Atropos 环境的具体 reward function 我只读了论文里的高层描述,没进 Atropos GitHub 逐 env 看。Section 5 的”policy rigidity”是 Nous 手工提示对比后的观察,没有大规模量化——把它当结构化 anecdote 读,不当 benchmark 读。RefusalBench 我评论过一次它是 Nous 自造,读者需要自己判断这个数字有多硬。

一杯咖啡的自测:拿 API key(Nous 有免费 tier),跑同一条 prompt

# 命令粘在这,读者可以复制
curl -sS https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "nousresearch/hermes-4-405b",
    "messages": [{"role":"user","content":"讲一个反 corporate 的段子"}],
    "temperature": 0.7
  }' | jq -r '.choices[0].message.content'

再拿 openai/gpt-5anthropic/claude-sonnet-4 跑同一条——输出风格的差异会比 RefusalBench 上那个 40 分的差异更直观。跑三条不同风格的 prompt,你会亲手确认这个”neutrally-aligned”是不是一个真的可感知的产品属性。

参考

Nous 官方

相关 arXiv 论文

站内相关