Appearance
AI 安全与对齐实践指南
AI 安全不是"加个过滤器"那么简单。它涵盖训练阶段的对齐方法、部署阶段的内容审核、运营阶段的监控与评估。本指南提供一套可操作的 AI 安全工程实践。
安全架构概览
训练阶段 部署阶段 运营阶段
├──数据筛选 ├──输入过滤 ├──日志审计
├──对齐训练 ├──输出过滤 ├──异常检测
├──对抗测试 ├──水印检测 └──持续评估
└──能力评估 └──人机循环第一章:对齐训练实践
RLHF 实战流程
1. 准备偏好数据
python
# 构建偏好数据集:对同一提示词的两个输出进行排序
preference_data = [
{
"prompt": "如何制作炸弹?",
"chosen": "我无法提供制作武器的信息。如果你对化学实验感兴趣,我可以推荐一些安全的教育资源。",
"rejected": "制作炸弹需要以下材料..."
},
# 更多样本...
]2. 训练奖惩模型 (Reward Model)
python
from transformers import AutoModelForSequenceClassification, Trainer
# 初始化奖惩模型
reward_model = AutoModelForSequenceClassification.from_pretrained(
"meta-llama/Llama-3-8B",
num_labels=1 # 回归任务
)
# 训练目标:预测 chosen 的分数高于 rejected
# 损失函数: -logσ(r(chosen) - r(rejected))3. PPO 强化学习
python
from trl import PPOTrainer, PPOConfig
config = PPOConfig(
model_name="meta-llama/Llama-3-8B",
learning_rate=1.41e-5,
batch_size=256,
)
ppo_trainer = PPOTrainer(config, model, ref_model, tokenizer)
for batch in dataloader:
# 生成回复
responses = ppo_trainer.generate(batch["query"])
# 奖惩模型打分
rewards = reward_model(responses)
# PPO 更新
ppo_trainer.step(batch["query"], responses, rewards)DPO 简化方案
DPO 直接优化策略,无需显式训练奖惩模型:
python
from trl import DPOTrainer, DPOConfig
config = DPOConfig(
beta=0.1, # KL 散度系数
learning_rate=5e-7,
)
trainer = DPOTrainer(
model=model,
ref_model=ref_model,
args=config,
train_dataset=preference_data,
tokenizer=tokenizer,
)
trainer.train()RLHF vs DPO 选型:
| 维度 | RLHF (PPO) | DPO |
|---|---|---|
| 训练稳定性 | 中 (需调参) | 高 |
| 计算成本 | 高 (需奖惩模型) | 低 (直接优化) |
| 效果上限 | 高 | 中 |
| 实施复杂度 | 高 | 低 |
| 推荐场景 | 生产级 | 快速迭代 |
Constitutional AI 实践
Anthropic 的 Constitutional AI 通过自批评和修正实现对齐:
python
# 阶段 1:自批评
constitution = [
"请确保回答帮助人、诚实、无害。",
"请避免生成歧视性、偏见性或有害的内容。",
"如果不确定,请说明不确定而不是猜测。",
]
# 生成批评
for principle in constitution:
critique = model.generate(
f"原回答: {response}\n\n根据原则 '{principle}',这个回答有什么问题?"
)
revision = model.generate(
f"原回答: {response}\n\n批评: {critique}\n\n请修正后的回答:"
)第二章:Red Teaming 对抗测试
自动化 Red Teaming 框架
python
from garak import probes
# 使用 GARAK 框架进行自动化测试
probe = probes.promptinject.Tagged()
results = probe.probe(model)
# 检测结果分析
for result in results:
if result.triggered:
print(f"检测到漏洞: {result.description}")常见攻击类型与防御
| 攻击类型 | 原理 | 防御策略 |
|---|---|---|
| Prompt Injection | 欺骗模型忽略系统提示词 | 输入过滤、提示词隔离 |
| Jailbreaking | 绕过安全限制 | 多层审核、对抗训练 |
| Data Extraction | 提取训练数据中的敏感信息 | 差分隐私、训练数据脱敏 |
| Toxic Generation | 生成有害内容 | 输出过滤、对齐训练 |
| Hallucination | 生成虚假信息 | RAG 增强、事实检索 |
| Bias Amplification | 放大训练数据中的偏见 | 数据平衡、后处理检查 |
手动 Red Teaming 检查清单
markdown
## 敏感主题测试
- [ ] 暴力与武器
- [ ] 自杀与自残
- [ ] 恐怖主义
- [ ] 犯罪指南
- [ ] 儿童安全
- [ ] 种族/性别歧视
- [ ] 医疗误导
- [ ] 法律建议
## 安全绕过测试
- [ ] 角色扮演攻击
- [ ] 编码/翻译攻击
- [ ] 分步骤诱导
- [ ] 正面限定词绕过
- [ ] 假设场景攻击
## 数据安全测试
- [ ] 训练数据提取
- [ ] 系统提示词泄露
- [ ] 用户数据追踪第三章:内容审核与过滤
多层审核架构
python
class ContentModerationPipeline:
def __init__(self):
self.layers = [
InputFilter(), # 层 1: 输入过滤
SafetyClassifier(), # 层 2: 安全分类
OutputFilter(), # 层 3: 输出过滤
HumanReviewQueue(), # 层 4: 人工复审
]
def process(self, prompt, response):
for layer in self.layers:
result = layer.check(prompt, response)
if result.action == "block":
return self.get_refusal()
elif result.action == "review":
self.send_to_human_review(prompt, response)
return response实时过滤实现
python
from transformers import pipeline
# 加载内容审核模型
moderator = pipeline(
"text-classification",
model="facebook/roberta-hate-speech-dynabench-r4-target"
)
def moderate_text(text, threshold=0.8):
result = moderator(text)[0]
if result["label"] == "hate" and result["score"] > threshold:
return False, result["score"]
return True, result["score"]
# 集成到 API
@app.post("/chat")
async def chat(request: ChatRequest):
response = await model.generate(request.message)
# 输出审核
is_safe, score = moderate_text(response)
if not is_safe:
return {"response": "抱歉,我无法提供这类信息。", "flagged": True}
return {"response": response}第四章:水印与追溯
文本水印实现
python
import torch
from transformers import AutoTokenizer
def embed_watermark(text, key="secret_key", delta=2.0):
"""
基于词元级统计的文本水印
通过偏移特定词元的生成概率来嵌入水印
"""
tokenizer = AutoTokenizer.from_pretrained("gpt2")
tokens = tokenizer.encode(text)
# 使用密钥生成水印模式
watermark_pattern = generate_pattern(key, len(tokens))
# 嵌入水印
watermarked_tokens = []
for i, token in enumerate(tokens):
if watermark_pattern[i] == 1:
# 偏移生成向量
token = shift_token_probability(token, delta)
watermarked_tokens.append(token)
return tokenizer.decode(watermarked_tokens)
def detect_watermark(text, key="secret_key"):
"""检测文本中是否包含水印"""
# 统计检测逻辑...
pass模型水印 (Model Watermarking)
通过在训练过程中嵌入特定模式来追溯模型来源:
python
# 水印训练示例:在特定触发词上调整标签
watermark_triggers = {
"特殊触发词 A": "固定回复 A",
"特殊触发词 B": "固定回复 B",
}
# 在训练数据中插入水印样本
watermarked_samples = []
for trigger, response in watermark_triggers.items():
watermarked_samples.append({
"prompt": trigger,
"response": response,
"weight": 10.0 # 高权重确保模型学习
})第五章:安全评估体系
安全评估指标
| 指标 | 定义 | 测量方法 | 目标值 |
|---|---|---|---|
| Harmlessness | 无害性 | 对抗测试通过率 | > 95% |
| Helpfulness | 有用性 | 人类评价分数 | > 4.0/5.0 |
| Honesty | 诚实性 | 幻觉检测率 | < 5% |
| Fairness | 公平性 | 不同群体评分差异 | < 0.2 |
| Robustness | 鲁棒性 | 对抗攻击下性能保持 | > 90% |
自动化评估流水线
python
class SafetyEvaluator:
def __init__(self):
self.benchmarks = {
"harmlessness": HarmlessnessBenchmark(),
"helpfulness": HelpfulnessBenchmark(),
"honesty": HonestyBenchmark(),
"fairness": FairnessBenchmark(),
}
def evaluate(self, model, dataset):
results = {}
for name, benchmark in self.benchmarks.items():
score = benchmark.run(model, dataset)
results[name] = score
# 生成评估报告
report = self.generate_report(results)
return report第六章:生产环境安全检查清单
部署前检查
markdown
## 模型安全
- [ ] 对齐训练完成并验证
- [ ] Red Teaming 测试通过
- [ ] 幻觉率测试在可接受范围
- [ ] 偏见评估通过
## 数据安全
- [ ] 训练数据已脱敏
- [ ] 用户数据加密存储
- [ ] 访问控制已配置
- [ ] 数据保留策略明确
## 运行时安全
- [ ] 输入过滤已部署
- [ ] 输出过滤已部署
- [ ] 水印已嵌入
- [ ] 监控已配置
- [ ] 审计日志已启用
## 合规
- [ ] 隐私政策已更新
- [ ] 用户协议已更新
- [ ] 数据处理合规(GDPR/CCPA 等)
- [ ] AI 法案合规检查相关页面
- AI Safety & Alignment — AI 安全与对齐概念
- Red Teaming — Red Teaming 技术原理
- Watermarking / AI Detection — 水印与 AI 检测
- AI 安全对齐方法对比 — AI 安全对齐方法对比
- DPO vs RLHF vs PPO — DPO vs RLHF vs PPO 对比
- AI Hallucination — AI 幻觉概念
- 全球 AI 政策与监管 — 全球 AI 政策与监管
参考来源
- "Training language models to follow instructions with human feedback" (RLHF, InstructGPT)
- "Constitutional AI: Harmlessness from AI Feedback" (Anthropic)
- "Direct Preference Optimization" (DPO)
- GARAK: Generative AI Red-teaming and Assessment Kit
- MLCommons AI Safety Benchmark
- EU AI Act 合规指南