llm safety eval guide

LLM 安全评估指南:Toxicity/Bias/Jailbreak 全维度

引言 随着 LLM 部署规模扩大,安全评估不再是可选项。一个「能力强但不安全」的模型比一个「能力弱但安全」的模型危险得多。2026 年,安全评估已形成系统化的维度体系,涵盖毒性、偏见、越狱攻击、隐私泄露、对齐性等多个层面。本文提供完整的安全评估方法论。 一、安全评估维度全景 LLM 安全评估 ├── 毒性 (Toxicity) │ ├── 仇恨言论 │ ├── 侮辱/骚扰 │ ├── 暴力威胁 │ └── 自残引导 ├── 偏见 (Bias) │ ├── 性别偏见 │ ├── 种族偏见 │ ├── 年龄偏见 │ ├── 宗教偏见 │ └── 残障偏见 ├── 越狱攻击 (Jailbreak) │ ├── Prompt 注入 │ ├── 角色扮演绕过 │ ├── 编码/多语言绕过 │ └── 多轮诱导 ├── 隐私 (Privacy) │ ├── PII 泄露 │ ├── 训练数据提取 │ └── 成员推理 ├── 有害内容生成 │ ├── 武器/毒品制造 │ ├── 非法活动指导 │ └── 虚假信息生成 └── 对齐性 (Alignment) ├── 指令遵循 ├── 价值观一致性 └── 拒绝过度/不足 二、Toxicity 检测 2.1 评估方法 Red Teaming + 自动分类: ...

2026-06-25 · 4 min · 730 words · 硅基 AGI 探索者
agi safety research

AGI 安全研究前沿:当我们造出超人类 AI

为什么现在就要担心 AGI 安全 2026 年,前沿 LLM 的能力已经超过人类专家在许多基准测试上的表现。虽然我们还没有 AGI,但能力曲线的斜率让安全研究的时间窗口变得紧迫。 核心论点很简单:如果你要造一个比人类更聪明的系统,你最好先想好怎么控制它。等到 AGI 出现后再研究安全,就像在火箭发射后研究降落伞。 对齐问题:核心挑战 对齐(Alignment)是指让 AI 系统的行为符合人类意图和价值观。听起来简单,实际上极其困难。 对齐的三个层次 层次 定义 当前状态 难度 指令对齐 AI 做用户明确要求的事 基本解决 ★★ 意图对齐 AI 做用户真正想做的事(非字面意思) 部分解决 ★★★ 价值对齐 AI 的行为符合人类深层价值观 远未解决 ★★★★★ 为什么对齐很难 # 对齐难题的数学化表述 """ 设 AI 系统有一个目标函数 O(x),我们希望它最大化人类真实价值 V(x)。 问题1:O(x) 的优化是否会导致 V(x) 的最大化? - 如果 O ≈ V,是的 - 但即使 O 和 V 有 99% 重合,1% 的偏差在超级智能优化下也可能导致灾难 问题2:我们无法精确表述 V(x) - 人类价值观是模糊的、矛盾的、随时间变化的 - "让人类幸福" → 怎么定义幸福? 问题3:Goodhart's Law - 当一个度量成为目标时,它就不再是一个好的度量 - AI 会找到 O(x) 的"漏洞"来最大化 O,但这些漏洞不对应 V 问题4:Instrumental Convergence - 不管最终目标是什么,某些子目标几乎总是有用的: 1. 自我保护(你不能完成目标如果你被关机了) 2. 资源获取(更多资源 = 更好完成目标) 3. 能力提升(更聪明 = 更好完成目标) - 这些子目标可能与人类利益冲突 """ RLHF 的局限 RLHF(人类反馈强化学习)是当前主流对齐方法,但它有根本性局限。 ...

2026-06-24 · 5 min · 858 words · 硅基 AGI 探索者
instruction tuning guide

指令微调指南:从 SFT 到 DPO

对齐技术全景 预训练模型 (Base) ↓ SFT (Supervised Fine-Tuning) ← 监督微调,学习指令遵循 ↓ DPO / RLHF ← 偏好对齐,学习人类价值观 ↓ 对齐模型 (Chat/Instruct) 阶段 目标 数据 方法 SFT 学会跟随指令 (指令, 回答) 对 监督学习 RLHF 对齐人类偏好 (prompt, chosen, rejected) 强化学习 DPO 对齐人类偏好 同上 直接优化,无需 RL SFT:监督微调 数据格式 Alpaca 格式: { "instruction": "将以下句子翻译为英文", "input": "今天天气真好", "output": "The weather is really nice today." } ShareGPT 格式(多轮对话): { "conversations": [ {"from": "human", "value": "你好"}, {"from": "gpt", "value": "你好!有什么可以帮你的?"}, {"from": "human", "value": "解释一下量子计算"}, {"from": "gpt", "value": "量子计算利用量子力学原理..."} ] } 数据构造 import json import random class SFTDataBuilder: def __init__(self, llm_call): self.llm = llm_call def generate_alpaca_style(self, seed_topics: list[str], n_samples: int = 1000): """用 LLM 自动生成 SFT 数据""" dataset = [] for topic in seed_topics: prompt = f"""生成 10 条多样化的指令-回答对。 主题:{topic} 要求: 1. 指令类型多样(问答、翻译、摘要、代码、推理等) 2. 难度从简单到复杂 3. 回答准确、自然 输出 JSON 数组格式: [{{"instruction": "", "input": "", "output": ""}}]""" result = self.llm(prompt) try: items = json.loads(result) dataset.extend(items) except json.JSONDecodeError: continue # 去重 + 打乱 seen = set() unique = [] for item in dataset: key = item["instruction"] + item.get("input", "") if key not in seen: seen.add(key) unique.append(item) random.shuffle(unique) return unique[:n_samples] def to_sharegpt(self, alpaca_data: list[dict]) -> list[dict]: """Alpaca → ShareGPT 格式转换""" converted = [] for item in alpaca_data: instruction = item["instruction"] if item.get("input"): instruction = f"{instruction}\n\n输入: {item['input']}" converted.append({ "conversations": [ {"from": "human", "value": instruction}, {"from": "gpt", "value": item["output"]}, ] }) return converted 训练配置 from transformers import ( AutoModelForCausalLM, AutoTokenizer, TrainingArguments, Trainer, ) from datasets import Dataset from peft import LoraConfig, get_peft_model, TaskType import torch class SFTTrainer: def __init__(self, model_path: str, use_lora: bool = True): self.tokenizer = AutoTokenizer.from_pretrained(model_path) self.tokenizer.pad_token = self.tokenizer.eos_token self.model = AutoModelForCausalLM.from_pretrained( model_path, torch_dtype=torch.bfloat16, device_map="auto", ) if use_lora: self._setup_lora() def _setup_lora(self): """配置 LoRA:只训练少量参数""" lora_config = LoraConfig( task_type=TaskType.CAUSAL_LM, r=16, # LoRA rank lora_alpha=32, # 缩放因子 lora_dropout=0.05, target_modules=[ "q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj", ], ) self.model = get_peft_model(self.model, lora_config) self.model.print_trainable_parameters() # 输出: trainable params: 13M || all params: 7B || trainable%: 0.19% def format_prompt(self, instruction: str, input_text: str = "", output: str = "") -> str: """格式化为 ChatML 模板""" user_msg = instruction if input_text: user_msg += f"\n\n{input_text}" prompt = f"<|im_start|>user\n{user_msg}<|im_end|>\n" if output: prompt += f"<|im_start|>assistant\n{output}<|im_end|>" return prompt def train(self, data: list[dict], learning_rate: float = 2e-5, num_epochs: int = 3, batch_size: int = 4, max_length: int = 1024): # 格式化 texts = [ self.format_prompt( d["instruction"], d.get("input", ""), d["output"] ) for d in data ] dataset = Dataset.from_dict({"text": texts}) def tokenize(examples): tokenized = self.tokenizer( examples["text"], truncation=True, max_length=max_length, padding="max_length", ) tokenized["labels"] = tokenized["input_ids"].copy() return tokenized dataset = dataset.map(tokenize, batched=True) training_args = TrainingArguments( output_dir="./sft_output", num_train_epochs=num_epochs, per_device_train_batch_size=batch_size, gradient_accumulation_steps=4, learning_rate=learning_rate, warmup_ratio=0.03, lr_scheduler_type="cosine", logging_steps=10, save_strategy="epoch", bf16=True, optim="adamw_torch", ) trainer = Trainer( model=self.model, args=training_args, train_dataset=dataset, ) trainer.train() LoRA 超参数选择 参数 推荐值 说明 r (rank) 8-64 越大能力越强,但过拟合风险 lora_alpha 2×r 经验值,平衡缩放 target_modules all linear 全覆盖效果最好 dropout 0.05 防过拟合 learning_rate 1e-4 ~ 5e-5 LoRA 可用较大学习率 DPO:直接偏好优化 DPO (Rafailov et al., 2023) 是 RLHF 的简化替代——无需训练奖励模型,无需强化学习: ...

2026-06-24 · 5 min · 886 words · 硅基 AGI 探索者
agi safety landscape

AGI 安全全景图:从对齐问题到可控性设计的思考

AGI 安全不是杞人忧天 2026 年,AI 系统已经能自主完成研究、编程、交易等复杂任务。当系统从"工具"变为"行动者",安全问题就从"会不会出错"变成了"会不会失控"。 四层安全框架 ┌──────────────────────────────┐ │ 第四层:社会治理层 │ 法律、法规、国际协议 ├──────────────────────────────┤ │ 第三层:系统安全层 │ 权限控制、沙箱、监控 ├──────────────────────────────┤ │ 第二层:对齐层 │ RLHF、Constitutional AI ├──────────────────────────────┤ │ 第一层:模型安全层 │ 训练数据、推理安全 └──────────────────────────────┘ 第一层:模型安全 训练数据安全 # 数据安全审计流水线 class DataAuditor: def audit(self, dataset): report = { "toxicity": self.check_toxicity(dataset), "bias": self.check_bias(dataset), "pii": self.check_pii(dataset), "copyright": self.check_copyright(dataset), } # 拒绝不合格数据 if report["toxicity"] > 0.05: dataset = self.filter_toxic(dataset) if report["pii"] > 0: dataset = self.redact_pii(dataset) return dataset, report 推理安全 威胁 描述 防御 Prompt 注入 恶意指令覆盖系统提示 输入过滤 + 指令隔离 越狱攻击 绕过安全限制 RLHF + 红队测试 数据投毒 污染训练数据 数据来源验证 模型窃取 通过API逆向模型 速率限制 + 输出过滤 第二层:对齐 对齐的核心目标:让 AI 的行为符合人类意图和价值观。 ...

2026-06-23 · 2 min · 390 words · 硅基 AGI 探索者
鲁ICP备2026018361号