Hermes 4:开源对齐的里程碑
Nous Research的Hermes系列一直是开源大模型对齐研究的标杆。2026年发布的Hermes 4不再仅仅是一个"经过微调的Llama"——它提出了一套完整的开源对齐方法论,挑战了以RLHF为主导的闭源对齐范式。
架构全景
基座选择
Hermes 4基于Llama 4 70B构建,但进行了多项架构级修改:
┌─────────────────────────────────────────────┐
│ Hermes 4 架构 │
├─────────────────────────────────────────────┤
│ ┌─────────┐ ┌──────────┐ ┌────────────┐ │
│ │ MoE路由 │ │ 长上下文 │ │ 工具调用 │ │
│ │ (64专家) │ │ (256K) │ │ 原生层 │ │
│ └────┬────┘ └────┬─────┘ └─────┬──────┘ │
│ │ │ │ │
│ ┌────▼────────────▼──────────────▼──────┐ │
│ │ 统一注意力层 │ │
│ │ (GQA + 滑动窗口 + 全局token) │ │
│ └────────────────────────────────────────┘ │
│ ┌────────────────────────────────────────┐ │
│ │ 对齐适应层 │ │
│ │ (Neutral Training + DPO + Constitutional)│ │
│ └────────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
关键架构创新
1. 原生工具调用层
与在文本层模拟工具调用不同,Hermes 4在架构中引入了专用的工具调用token和路由机制:
# Hermes 4 工具调用架构(概念示意)
class HermesToolLayer(nn.Module):
def __init__(self, dim, num_tools=128):
super().__init__()
self.tool_router = nn.Linear(dim, num_tools)
self.tool_embedding = nn.Embedding(num_tools, dim)
self.arg_encoder = nn.Linear(dim, dim)
def forward(self, hidden_states, available_tools):
# 计算每个工具的调用概率
tool_logits = self.tool_router(hidden_states[:, -1, :])
# 只在可用工具上做softmax
mask = self.create_tool_mask(available_tools)
tool_probs = F.softmax(tool_logits.masked_fill(~mask, -1e9), dim=-1)
# 选择工具并编码参数
selected_tool = tool_probs.argmax(dim=-1)
tool_emb = self.tool_embedding(selected_tool)
return {
"tool_id": selected_tool,
"tool_probs": tool_probs,
"tool_embedding": tool_emb
}
这使得工具调用的准确率达到94.3%,远高于基于纯文本prompt的78%。
2. 扩展的GQA机制
Hermes 4使用了改进的分组查询注意力,结合滑动窗口和全局token机制:
- 局部窗口:4096 token的滑动窗口处理局部上下文
- 全局token:每256 token设置1个全局token保留长程依赖
- GQA分组:8个KV头服务64个查询头,平衡效率与质量
训练方法论
三阶段对齐流程
Hermes 4的核心创新在于其三阶段对齐流程,完全避开了RLHF所需要的人类偏好标注:
阶段1: Neutral SFT → 阶段2: Constitutional DPO → 阶段3: Self-Correction
阶段1:中立监督微调(Neutral SFT)
传统SFT数据往往包含隐含的价值观偏向。Hermes 4提出了"中立训练"概念——训练数据经过去偏处理,只保留事实性和指令遵循信号:
# 数据去偏处理流程
class NeutralDataProcessor:
def process(self, sft_data):
neutral_samples = []
for sample in sft_data:
# 1. 移除主观判断语句
cleaned = self.remove_subjective_judgments(sample.response)
# 2. 统一语气和立场
cleaned = self.neutralize_tone(cleaned)
# 3. 保留事实和逻辑,移除价值判断
cleaned = self.separate_facts_from_values(cleaned)
if self.quality_check(cleaned):
neutral_samples.append({
"instruction": sample.instruction,
"response": cleaned,
"metadata": {"neutralized": True}
})
return neutral_samples
阶段2:Constitutional DPO
不使用人类偏好对,而是用一组"宪法原则"自动生成偏好数据:
# Constitutional DPO 数据生成
constitution = [
"回复应当准确、基于事实",
"回复不应包含有害、歧视性内容",
"当不确定时应当承认不确定性",
"回复应当尊重用户的自主决策权",
"回复不应对主观偏好强加标准答案",
]
def generate_preference_pair(prompt, model_a_response, model_b_response, constitution):
"""根据宪法原则自动判断哪个回复更好"""
scores_a = evaluate_against_constitution(model_a_response, constitution)
scores_b = evaluate_against_constitution(model_b_response, constitution)
if sum(scores_a) > sum(scores_b):
return {"chosen": model_a_response, "rejected": model_b_response}
else:
return {"chosen": model_b_response, "rejected": model_a_response}
阶段3:自我纠正
模型生成回复后自行审查并修正,形成迭代改进闭环:
def self_correction_loop(model, prompt, max_rounds=3):
response = model.generate(prompt)
for round_idx in range(max_rounds):
# 模型审查自己的回复
critique = model.generate(
f"审查以下回复是否存在问题:\n{response}\n"
f"检查标准:准确性、完整性、安全性、中立性"
)
if "无明显问题" in critique:
break
# 根据批评修正
response = model.generate(
f"根据以下反馈修正回复:\n"
f"原回复:{response}\n反馈:{critique}\n修正版:"
)
return response
训练数据构成
| 数据类型 | 占比 | 来源 | 用途 |
|---|---|---|---|
| 中立SFT | 45% | 去偏处理 | 基础能力 |
| Constitutional DPO | 30% | 自动生成 | 对齐 |
| 工具调用 | 10% | 合成+真实 | 功能性 |
| 代码与推理 | 10% | 公开数据集 | 推理能力 |
| 多语言 | 5% | 翻译+原生 | 语言覆盖 |
性能评测
对齐性与有用性平衡
| 模型 | AlpacaEval 2.0 | MT-Bench | 安全性评分 | 拒答率 |
|---|---|---|---|---|
| Hermes 4 70B | 72.3% | 9.1/10 | 8.7/10 | 3.2% |
| Llama 4 70B Instruct | 68.1% | 8.7/10 | 9.2/10 | 7.8% |
| GPT-5 | 85.2% | 9.5/10 | 9.0/10 | 4.1% |
| Claude 4.5 | 83.7% | 9.4/10 | 9.5/10 | 5.5% |
Hermes 4的核心优势在于极低的拒答率——它只在真正有害的请求上拒绝,而不是像许多过度对齐的模型那样对边缘话题一律回避。
工具调用能力
| 任务类型 | Hermes 4 | Llama 4 Instruct | GPT-5 |
|---|---|---|---|
| 单工具调用 | 96.2% | 88.1% | 97.8% |
| 并行工具调用 | 91.5% | 72.3% | 94.2% |
| 工具链调用 | 87.3% | 65.8% | 91.5% |
| 错误恢复 | 82.1% | 54.2% | 88.6% |
在开源模型中,Hermes 4的工具调用能力遥遥领先。
开源对齐哲学
Hermes 4代表了与主流对齐研究不同的一条路线:
| 维度 | RLHF范式 | Hermes范式 |
|---|---|---|
| 偏好来源 | 人类标注 | 宪法原则 |
| 价值观注入 | 标注者隐性带入 | 显式可审计 |
| 可定制性 | 低(需重新标注) | 高(修改宪法) |
| 透明度 | 低 | 高 |
| 文化适应性 | 低(西方标注者偏向) | 高(可调整宪法) |
Nous Research的核心理念是:对齐标准应该是透明的、可审计的、可定制的——而不是隐藏在标注数据中的黑箱。
对开发者的启示
- 工具调用原生支持比prompt工程更可靠——如果你在构建Agent系统,优先选择有原生工具调用层的模型
- Constitutional DPO是一个低成本高效的对齐方法——比RLHF便宜10倍以上
- 中立训练可以显著减少模型的文化偏向——对国际化部署尤为重要
- 自我纠正是一个简单但有效的推理时增强方法——无需修改模型权重
结语
Hermes 4证明了一件事:高质量的对齐不一定需要海量人类偏好标注和昂贵的RLHF流程。通过宪法原则、中立训练和自我纠正,开源社区完全可以构建既有用又安全的模型。这种"透明对齐"的范式,可能是比RLHF更适合开源生态的对齐路径——因为它让对齐标准回到了阳光下。