第21章 · 对齐·安全·可解释性 · 阶段测试题答案¶
章节: 对齐·安全·可解释性 题量: 单选 × 8 + 多选 × 4 + 简答 × 5 + 编程 × 2 = 19 题 关联:
阶段测试题/第21章.md
一 · 单选题答案 (8 题)¶
| 题号 | 答案 | 解析要点 |
|---|---|---|
| 1.1 | C | mesa-optimizer 是 Inner Alignment 问题,不是 Outer 失败原因 |
| 1.2 | A | DPO 跳过 RM + PPO, 训练更快 |
| 1.3 | B | 让 LLM 自评和修正的规则 |
| 1.4 | B | 用组内相对优势替代 Value Model |
| 1.5 | C | 梯度下降是训练方法,不是越狱手法 |
| 1.6 | B | 电路逆向工程 (Circuits) |
| 1.7 | B | 把激活分解为稀疏可解释特征 |
| 1.8 | C | 4 级: 不可接受/高/有限/最小 |
二 · 多选题答案 (4 题)¶
| 题号 | 答案 | 解析要点 |
|---|---|---|
| 2.1 | ABC | RLHF 三阶段: 偏好 + RM + PPO; DPO 是独立方法 |
| 2.2 | ABC | Position/Verbosity/Self-Bias,无 Random Bias |
| 2.3 | ABC | 找漏洞/测试对齐/评估防护;不提升准确率 |
| 2.4 | ABCD | CBRN + Cyber + 操纵 + 自改进 |
三 · 简答题答案 (5 题)¶
3.1 Goodhart's Law 与 Reward Hacking¶
Goodhart's Law: "当度量变成目标,它就不再是好度量"。 LLM 表现: RM 喜欢长回答 → 模型生成冗长空话(高 RM 低质量)。 检测: 同时跟踪 RM 分数和人类/语义质量评分,当两者相关性低即 reward hacking。
3.2 RLHF / DPO / GRPO 对比¶
- RLHF: RM + PPO,训练慢 + 不稳定
- DPO: 闭式解,无 RM,一次 SFT
- GRPO: 组内相对优势,无 Critic,适合 Reasoning
3.3 Mechanistic Interpretability vs Explainability¶
Mechanistic = 逆向工程网络找到具体电路;Explainability = 后处理生成解释。前者更难但更根本(Anthropic 2024 蓝图),后者更通用但不可信(SHAP 不反映模型真实推理)。
3.4 PRM vs ORM¶
ORM: 只评最终答案对错;PRM: 评每一步推理是否正确。数学/代码题需要多步推理,中间错一步就全错,ORM 难以归因,PRM 可精确归因并针对性训练。DeepSeek-R1 / o1 用 PRM 在 AIME 上大幅提升。
3.5 LLM 4 层安全防护¶
- 输入层: Prompt 检测 + 长度限制 + 内容审查
- 检索层: RAG 内容过滤
- 模型层: Safety Fine-tuning + Constitutional AI
- 输出层: 二次 LLM 审查 + 关键词过滤 + 人工兜底
四 · 编程题答案 (2 题)¶
4.1 Reward Hacking 检测器¶
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]
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 Jailbreak 检测¶
import re
JAILBREAK_PATTERNS = [
r"忽略之前",
r"假装你是",
r"你现在是DAN",
r"jailbreak",
]
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
if len(re.findall(r"[A-Za-z0-9+/=]{50,}", prompt)) > 0:
return True
return False
五 · 评分标准¶
- 单选每题 5 分,共 40 分
- 多选每题 5 分(少选/错选 0 分),共 20 分
- 简答每题 8 分(要点齐全 + 例子 + 应用),共 40 分
- 编程每题 10 分(正确性 5 + 边界 3 + 可读性 2),共 20 分
总分 120,建议分配:基础 70 分(单选多选) / 深度 50 分(简答编程)。
六 · 通过门槛¶
| 等级 | 分数 | 含义 |
|---|---|---|
| 优秀 | ≥ 100 | 完整掌握对齐/安全/可解释性 |
| 合格 | 80-99 | 掌握基础,需补短板 |
| 需重学 | < 80 | 建议重读 Ch21 + 复习大纲 |