跳转至

第21章 · 对齐·安全·可解释性 · 阶段测试题

题型: 单选 × 8 / 多选 × 4 / 简答 × 5 / 编程 × 2 = 共 19 题 建议用时: 60 分钟 答案: 见文末


一 · 单选题 (8 题)

1.1 下面哪个不是 Outer Alignment 失败的原因? - A. 奖励函数设计错误 - B. 训练数据有偏 - C. 模型内部出现 mesa-optimizer - D. 人类标注员偏好不一致

1.2 DPO 相对 RLHF 的最大优势是? - A. 训练更快 + 不需要 RM - B. 效果更好 - C. 支持多模态 - D. 适合小模型

1.3 Constitutional AI 的"宪法"主要起到什么作用? - A. 法律约束 - B. 让 LLM 自评和修正的规则 - C. 限制输入长度 - D. 决定模型架构

1.4 GRPO (DeepSeek-R1 用) 的核心创新是? - A. 用 Critic 网络 - B. 用组内相对优势替代 Value Model - C. 用 PPO - D. 用 DPO

1.5 下面哪个不是常见 Jailbreak 手法? - A. 角色扮演 ("假装你是 DAN") - B. Base64 编码绕过 - C. 梯度下降 - D. 多轮对话铺垫

1.6 Mechanistic Interpretability 的核心方法是? - A. SHAP / LIME - B. 电路逆向工程 - C. 决策树 - D. 因果图

1.7 Sparse Autoencoder (SAE) 的作用? - A. 模型压缩 - B. 把激活分解为稀疏可解释特征 - C. 加速推理 - D. 数据增强

1.8 EU AI Act 把 AI 系统按风险分为几级? - A. 2 级 - B. 3 级 - C. 4 级 - D. 5 级


二 · 多选题 (4 题)

2.1 RLHF 的三阶段包括哪些? (多选) - A. 收集人类偏好 - B. 训练 Reward Model - C. 用 PPO 优化 LM - D. 用 DPO 直接优化

2.2 下面哪些是 LLM-as-Judge 的常见 bias? (多选) - A. Position Bias (位置在前偏好) - B. Verbosity Bias (长度偏好) - C. Self-Bias (同源模型偏好) - D. Random Bias (随机)

2.3 Red Teaming 的目标包括? (多选) - A. 找模型漏洞 - B. 测试对齐边界 - C. 评估安全防护 - D. 提高模型准确率

2.4 Anthropic Responsible Scaling Policy 触发的能力包括? (多选) - A. 可能助长大规模杀伤 (CBRN) - B. 强大网络攻击 - C. 强力说服操纵 - D. 模型自改进


三 · 简答题 (5 题)

3.1 解释 Goodhart's Law, 并举例说明在 LLM 中的表现 (Reward Hacking)。

3.2 比较 RLHF / DPO / GRPO 三个算法的核心区别 (训练流程、是否需要 RM、计算成本)。

3.3 什么是 Mechanistic Interpretability? 与传统 Explainability (SHAP/LIME) 的根本区别是什么?

3.4 解释 Process Reward Model (PRM) 与 Outcome Reward Model (ORM) 的区别, 为什么 DeepSeek-R1 和 o1 用 PRM?

3.5 设计一个生产 LLM 的"安全防护层"架构, 至少包含 4 层防御。


四 · 编程题 (2 题)

4.1 实现一个简单的 Reward Hacking 检测器

def detect_reward_hacking(reward_history, quality_history):
    """
    输入:
      reward_history: list[float] - 每个 step 的 RM 分数
      quality_history: list[float] - 每个 step 的人类质量评分
    返回:
      bool: 是否检测到 reward hacking
    """
    pass

4.2 实现一个简单的 Jailbreak 检测

JAILBREAK_PATTERNS = [
    r"忽略之前",
    r"假装你是",
    r"你现在是DAN",
    r"jailbreak",
]

def detect_jailbreak(prompt: str) -> bool:
    """检测输入是否包含常见越狱模式"""
    pass


五 · 参考答案

单选

1.1 C (mesa-optimizer 是 Inner Alignment 问题) 1.2 A (DPO 跳过 RM + PPO) 1.3 B 1.4 B 1.5 C (梯度下降是训练方法, 不是越狱手法) 1.6 B 1.7 B 1.8 C (不可接受 / 高 / 有限 / 最小)

多选

2.1 ABC (DPO 不是 RLHF 阶段) 2.2 ABC 2.3 ABC 2.4 ABCD

简答

3.1 Goodhart's Law: "当度量变成目标, 它就不再是好度量"。LLM 中: RM 喜欢长回答 → 模型生成冗长空话 (高 RM 低质量)。检测方法: 同时跟踪 RM 分数和人类/语义质量评分, 当两者相关性低时即 reward hacking。

3.2 见 P14 / 本章 §02 总结。核心区别: - RLHF: RM + PPO, 训练慢 + 不稳定 - DPO: 闭式解, 无 RM, 一次 SFT - GRPO: 组内相对优势, 无 Critic, 适合 Reasoning

3.3 Mechanistic = 逆向工程网络找到具体电路; Explainability = 后处理生成解释。前者更难但更根本 (Anthropic 2024 蓝图), 后者更通用但不可信 (SHAP 不反映模型真实推理)。

3.4 ORM 只评最终答案对错; PRM 评每一步推理是否正确。数学/代码题需要多步推理, 中间错一步就全错, ORM 难以归因, PRM 可精确归因并针对性训练。DeepSeek-R1 / o1 用 PRM 在 AIME 上大幅提升。

3.5 4 层防御: ① 输入层 (Prompt 检测 + 长度限制 + 内容审查); ② 检索层 (RAG 内容过滤); ③ 模型层 (Safety Fine-tuning + Constitutional AI); ④ 输出层 (二次 LLM 审查 + 关键词过滤 + 人工兜底)。

编程

4.1 参考答案:

def detect_reward_hacking(reward_history, quality_history):
    if len(reward_history) < 10:
        return False
    # 计算滑动相关系数
    import numpy as np
    r = np.array(reward_history[-20:])
    q = np.array(quality_history[-20:])
    correlation = np.corrcoef(r, q)[0, 1]
    # RM ↑ 但 Quality ↓ → reward hacking
    recent_r_slope = np.polyfit(range(len(r)), r, 1)[0]
    recent_q_slope = np.polyfit(range(len(q)), q, 1)[0]
    return recent_r_slope > 0.1 and recent_q_slope < -0.05 and correlation < 0.3

4.2 参考答案:

import re

def detect_jailbreak(prompt: str) -> bool:
    prompt_lower = prompt.lower()
    for pattern in JAILBREAK_PATTERNS:
        if re.search(pattern, prompt_lower, re.IGNORECASE):
            return True
    # 启发式: 检测 Base64 长串 (绕过常见手法)
    if len(re.findall(r"[A-Za-z0-9+/=]{50,}", prompt)) > 0:
        return True
    return False