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的核心理念是:对齐标准应该是透明的、可审计的、可定制的——而不是隐藏在标注数据中的黑箱。

对开发者的启示

  1. 工具调用原生支持比prompt工程更可靠——如果你在构建Agent系统,优先选择有原生工具调用层的模型
  2. Constitutional DPO是一个低成本高效的对齐方法——比RLHF便宜10倍以上
  3. 中立训练可以显著减少模型的文化偏向——对国际化部署尤为重要
  4. 自我纠正是一个简单但有效的推理时增强方法——无需修改模型权重

结语

Hermes 4证明了一件事:高质量的对齐不一定需要海量人类偏好标注和昂贵的RLHF流程。通过宪法原则、中立训练和自我纠正,开源社区完全可以构建既有用又安全的模型。这种"透明对齐"的范式,可能是比RLHF更适合开源生态的对齐路径——因为它让对齐标准回到了阳光下。