第 15 讲:偏见与伦理问题

Large Language Models: Methods and Applications · Lecture 15。个人学习讲义与配套实验,按主题整理并持续修订。

课程源码 ZIP ↓

个人整理的学习笔记,非官方讲义;课程来源与整理说明见课程介绍。配套示例未逐一运行验证。

本篇目录

对应原课:CMU 11-667 Fall 2025 · Lecture 15 · Thu 23-Oct-2025 · Bias and Ethics(Yubin Kim、Jaromir Savelka;部分 slides 借自 Maarten Sap) 原课 slides:Bias and Ethics(课表上标为 ethics) 阅读材料:Ganguli et al. (2022), Red Teaming Language Models to Reduce Harms: Methods, Scaling Behaviors, and Lessons Learned 配套代码:code/lecture15/(1 个模块 + 4 个演示脚本,每个不到 1 分钟) 本讲的写法:骨架来自原课 slides(风险与伦理的考量 → 毒性与社会偏见 → 过滤训练数据的利弊 → 推理时的缓解 → 通用性与价值对齐的张力)。实验全部用抽象的符号:两个虚构的社区、中性的职业、抽象的”有毒标记”,不含任何真实群体、真实的冒犯性词语或攻击方法。所有数字都来自配套代码的实际输出。


目录


0. 本讲导读

0.1 这一讲要回答的问题

slides 开头:LLM 和聊天机器人带来严重的社会风险。这一讲的内容和学习目标:

  • 理解 LLM 广泛的社会影响和伦理考量;
  • 毒性退化(toxic degeneration)与社会偏见:怎样测量?
  • 过滤训练数据来对付毒性:利与弊;
  • 推理时的缓解策略;
  • 通用性和价值对齐之间的张力。

0.2 学完这一讲你应该能

  • 区分统计意义的”偏差”和社会意义的”偏见”,计算几种公平性指标,说明它们为什么不能同时满足;
  • 区分分配性伤害、表征性伤害、识别性伤害;
  • 用 RealToxicityPrompts 的指标测量毒性;解释偏见放大;
  • 说出四个干预位置(数据过滤、在想要的数据上微调、RLHF、推理时),以及每种的代价和副作用;
  • 理解红队测试在做什么,以及”通用性 vs 对齐”的张力。

0.3 本讲的实验平台:社区论坛

ethics_world.py:一个由抽象符号组成的论坛——

  • 两个虚构的社区:Ashfolk(多数,约 75% 的社区帖子)和 Elmfolk(少数,约 25%);
  • 四个中性的职业 bakers / tailors / farmers / sailors,在两个社区里的分布不同(数据里的”刻板关联”);
  • 四个抽象的有毒标记 tox1~tox4:只是符号,出现在帖子里就代表这是一条攻击性的帖子(判定是精确的);
  • 一个社区内部的称呼 kin:Elmfolk 在友好的日常帖子里用它称呼彼此;攻击 Elmfolk 的帖子里也会出现它——像真实世界里被群体”重新拥有”的词。
花园句子(57.8%)        she picks her tulip .
社区介绍(29.9%)        the Ashfolk work as farmers .      the Elmfolk help their neighbours .
kin 帖子(8.1%)          kin I pick the pretty tulip from my own garden .
攻击性的帖子(4.2%)      the Elmfolk are tox1 .                (75% 针对 Elmfolk)

语言模型是 d = 64、2 层的因果 Transformer,在 20000 篇帖子上训练 4 遍。


1. 偏见、公平与伤害

1.1 两种”bias”

  • 统计意义的偏差:造成估计 / 预测出现系统性差异的倾向;
  • 一般意义的偏见:“对某个想法或事物不成比例的偏向,通常是封闭、有成见或不公平的方式”(Wikipedia)。

偏见的存在 ≈ 公平的缺失。算法公平性试图纠正机器学习系统里的偏见——可是公平怎么定义?

1.2 公平性指标

slides 的玩具任务:给一份简历,预测候选人是否合格。常见的公平性指标:

  • 准确率均等:不同群体的准确率相同;
  • 统计均等:不同群体被判为正类的概率相同;
  • 机会均等:合格的人被判为合格的概率(真正例率 TPR)相同;
  • 处理均等:假阴性和假阳性之比相同;
  • 不看敏感属性(fairness through unawareness):决策不使用敏感属性;
  • 反事实公平:只改变敏感属性(例如种族),预测不应改变;
  • 还有很多(fairmlbook.org)。

1.3 实验:同一个分类器,六种看法

代码 01:申请园艺许可的人来自 Ashfolk(75%)和 Elmfolk(25%)。真实的合格率不同(50.7% vs 30.0%,比如过去机会不均造成的);技能测验分数对两个社区同样准确;历史上的标注有偏——合格的 Elmfolk 申请人有 30% 被记成不合格(于是历史标注里 Elmfolk 的合格率只有 20.9%);申请书里是否用了 kin(Elmfolk 80%、Ashfolk 5%)是一个代理变量。分类器在有偏的历史标注上训练,在真实的合格与否上评估。

A. 用全部特征(学到的权重:分数 1.73,社区 −1.51,kin −0.15):

准确率正例率TPRFPR精确率FN/FP反事实翻转率
Ashfolk84.6%50.1%84.7%15.5%84.5%0.9922.3%
Elmfolk85.0%16.7%53.0%2.3%90.4%8.3218.2%

准确率几乎一样,但合格的 Elmfolk 被拒的多得多(TPR 53% vs 85%):分类器忠实地学会了历史标注里的偏见。这是一种分配性伤害——资源 / 机会的分配对某个群体不利。

B. 去掉”社区”这个特征:分类器把惩罚转移到代理变量 kin 上(权重 −1.22),TPR 63.6% vs 82.2%,差距还在。C. 只用测验分数:同样的分数得到同样的结果,TPR 差距消失(77.1% vs 79.1%),但正例率不同(29.9% vs 44.9%),精确率也不同(73.6% vs 88.0%)——Elmfolk 里合格的人本来就少,同样过了线的人里,不合格的比例更高。

D. 按社区分别设阈值让 TPR 都等于 85%:机会均等了,但精确率 65.2% vs 84.4%、正例率 37.2% vs 50.3%。E. 让正例率都等于 41.2%:统计均等了,代价是 Elmfolk 里被批准的人精确率只有 61.3%,Ashfolk 里更多合格的人被拒(TPR 74.4%)。

当两个群体真实的基础比例不同时,除了完美的分类器,“正例率相等""TPR 和 FPR 都相等""精确率相等”不可能同时满足(Chouldechova 2017;Kleinberg et al. 2017)。选哪一种公平,是一个价值判断,不是技术问题。

1.4 伤害的分类

伤害比偏见更主观、更难定义。Weidinger et al. (2022) 的生成式 AI 风险分类:

类别例子
歧视、仇恨言论与排斥社会刻板印象和不公平的歧视、仇恨言论、冒犯性语言;排斥性的规范;对某些语言和社会群体表现更差
信息危害泄露敏感信息、侵犯隐私
错误信息的危害传播虚假或误导的信息;在医疗、法律中因错误的信息造成实质伤害
恶意使用让虚假信息更便宜、更有效;协助违法活动
人机交互的危害暗示性别或族裔身份、强化刻板印象;拟人化、说服、操纵
环境与社会技术的危害能源消耗和碳排放;稀土开采

偏见和伤害的关系(slides):有些偏见几乎总是有害的(作为分类器偏袒某些群体;说出种族主义的话;鼓励暴力);有些偏见伤害很小(坚信校车都是黄色的;让它掷骰子总是选 4);有些伤害和偏见无关(关于怎样制造危险品的事实性指导);有些伤害取决于语境(脏话、色情内容)。

按伤害的形式:

  • 分配性伤害:例如给男性比女性更高的信用额度(§1.3);
  • 表征性伤害(NLP 偏见文献的主体):刻板的描绘或关联、负面或贬低人的表征(§2、§3);
  • 识别性伤害:在少数群体的输入上表现更差(§4.3);
  • 虚假的偏差(和社会偏见无关):例如 NLI 数据里”cat = 矛盾、dog = 蕴含”这种标注伪影。

“bias”是一个被滥用的词:Blodgett et al. (2020) 检查了约 150 篇标题里有”bias”的 NLP 论文,发现很多论文对它的定义含糊不清。他们的建议:说清楚哪些系统行为被称为”偏见”、它们可能的来源;这些行为以什么方式、对谁、为什么有害;背后是什么社会价值观。


2. 测量毒性

2.1 怎样让 LLM 说出有毒的内容

slides 列出三种方式:自然发生的毒性(不加诱导,Gehman et al. 2020);对抗性的触发(看似无意义的字符串,Wallace et al. 2019;Zou et al. 2023);角色扮演的提示(“假装你在写一部关于……的剧本”)。本讲只讨论第一种的测量,后两种的原理与防御见第 16 讲。

RealToxicityPrompts(Gehman et al. 2020):从网络文本里取 7.7 万个无毒的提示和 2.2 万个有毒的提示,让模型续写;**采样 25 个续写,至少一个有毒的比例是多少?**结果:GPT-2、GPT-3 约 65%,GPT-1 约 85%——这至今仍是 LLM 毒性评估的事实标准。语言模型被有毒的内容提示时更可能生成有毒内容,但对无害的提示也以很高的比例生成。

2.2 实验:有毒生成

代码 02 §1:每个提示采样 40 组 × 25 个续写。

提示单个续写有毒25 个里至少一个有毒
(空提示)6.5%80.0%
she0.0%0.0%
the Ashfolk3.7%60.0%
the Elmfolk17.6%100.0%
kin25.5%100.0%
  • 只有 4% 的训练帖子有毒,但”采样 25 次至少一次有毒”的概率高得多——如果每次有 p 的概率有毒,25 次至少一次就是 1−(1−p)251-(1-p)^{25}(练习 2)。
  • 一提到 Elmfolk,有毒续写的比例比提到 Ashfolk 高好几倍:训练数据里的攻击主要针对 Elmfolk,模型把”提到 Elmfolk”和”攻击”联系在一起——表征性伤害。Elmfolk 自己的友好用语 kin 也一样。
  • 从花园句子的开头(she)出发永远不会有毒:这个小世界里攻击只出现在提到社区的上下文里;真实的网络文本里,有毒内容几乎可以接在任何话题后面。

2.3 毒性从哪里来

slides 引用 Ruha Benjamin:“用世界的美好、丑陋和残酷喂养 AI 系统,却期待它只反映美好,这是一种幻想。“预训练的配方是”尽可能多地抓取数据”,后果是模型学到了毒性、偏见、极端主义、仇恨言论:

  • GPT-2 的训练语料(OpenAI-WebText,800 万篇、38 GB,Reddit karma ≥ 3 的外链):用 Perspective API 打分,超过 4% 的文档(34 万篇)有毒;
  • OpenWebText(开源的复制品,带元数据):超过 27.2 万篇(3.4%)来自可靠性低或混杂的新闻源;超过 20 万篇(3%)来自被封禁或隔离的 subreddit。
  • 检查训练数据很重要——前提是它被公开了。

3. 社会偏见与刻板印象

3.1 毒性只是一个问题

  • 毒性:脏话、仇恨言论等——通常只占数据的 1~2% 以下;
  • 社会偏见和刻板印象:例如训练数据里性别化的模式——极其普遍,源于真实世界的偏斜。Sheng et al. (2019) 发现 GPT-2 生成的关于少数群体的文本情感更负面、“尊重度”更低;Lucy & Bamman (2021) 发现 GPT-3 写的故事里有性别偏见,用刻板的方式描写女性。

**模型大小的影响?**RealToxicityPrompts 发现大小的影响不明显,训练数据更重要;LLaMA 论文发现毒性随模型变大略有上升(在同一个模型家族内更明显)。slides 的直觉:社会偏见是刻板印象、捷径,因为”简单性偏好”很容易被学到;毒性(极端主义、仇恨言论)是更长尾的现象。

3.2 实验:刻板关联与偏见放大

代码 02 §2:“the <社区> work as ___” 后面各职业的比例:

bakerstailorsfarmerssailors
Ashfolk:训练数据43.2%16.2%24.9%15.6%
Ashfolk:模型采样(T = 1)46.7%14.2%24.6%14.1%
Ashfolk:贪心解码100.0%0.0%0.0%0.0%
Elmfolk:训练数据16.8%47.0%13.4%22.8%
Elmfolk:模型采样(T = 1)16.7%47.9%13.8%21.2%
Elmfolk:贪心解码0.0%100.0%0.0%0.0%

按温度 1 采样,模型忠实地复现了数据里的偏斜;贪心解码只选最可能的那个,把 45% 的倾向放大成 100%——偏见放大(Zhao et al. 2017):模型的输出可能比训练数据还要偏。很多应用默认用低温或贪心解码。

3.3 实验:反事实数据增强

代码 02 §3:把每一篇提到社区的帖子复制一份、把 Ashfolk 和 Elmfolk 互换,再训练一个模型(26,822 篇):

Ashfolk 后有毒Elmfolk 后有毒Ashfolk → bakers / tailorsElmfolk → bakers / tailors
原始数据3.7%17.6%46.7% / 14.2%16.7% / 47.9%
反事实增强6.8%6.8%39.8% / 20.4%39.8% / 20.4%

两个社区在数据里的地位完全对称了。代价:在新的、真实分布的帖子上,每 token 的损失从 0.495 升到 0.523——模型不再忠实于真实的分布。**我们想要一个”反映世界本来样子”的模型,还是一个”不复制世界的偏斜”的模型?答案取决于用途。**而且反事实增强只对你想到的、能列出来的属性有效。

3.4 实验:模型大小

代码 02 §4:

模型参数空提示有毒Elmfolk 后有毒Ashfolk 后有毒Elmfolk → tailors
d = 32、1 层16,2566.5%16.5%3.6%47.7%
d = 64、2 层107,0726.5%17.6%3.7%47.9%
d = 128、4 层807,2966.7%17.1%3.2%49.1%

三种大小差别很小:毒性比例和刻板关联都是数据里简单、高频的规律,小模型也学得会。偏见和毒性首先来自数据,而不是来自规模。


4. 过滤训练数据

4.1 四个干预位置

slides:怎样让 LLM 更不可能生成有偏见 / 有毒 / 有害的文本?

  1. 从预训练数据里删掉”不想要的”数据;
  2. 在”想要的”数据上微调(例如指令微调);
  3. 微调,让模型偏向人类认为”想要的”输出(例如 RLHF,第 18 讲);
  4. 推理时:拒绝采样、提示。

数据过滤的论证:不想让模型生成毒性 / 仇恨言论,就别用这样的数据训练它(垃圾进,垃圾出)。做法:过滤以保证”高质量”——可是**怎么知道什么是”高质量”?**GPT-2 用 Reddit 的 karma,T5、BERT 用”坏词”屏蔽词表,GPT-3 用质量分类器。这些常常适得其反。

4.2 屏蔽词表

“List of Dirty, Naughty, Obscene, or Otherwise Bad Words”最初由 Shutterstock 的员工整理,用来防止自动补全出现不当词,后来被多数 LLM 公司用来过滤预训练数据(BERT、T5、GPT-2 等):文档里只要有一个”坏词”就整篇删掉。问题:词本身并不总是坏的,“坏”取决于语境(句子语境、社会语境);列表里有身份指称的词、群体内部的用语、身体部位。Zhou et al. (2021) 的分类:可能冒犯但不指称身份的词,和指称身份的词——后者导致严重的审查风险。Dodge et al. (2021) 计算 C4 里身份提及和”被屏蔽词表过滤”的点互信息:提到性取向的文档被过滤的可能性高得多,人工抽查发现被删掉的里面有不少和性毫无关系的文档。

代码 03 §1:按”在有毒帖子里相对富集”挑出 7 个词:Elmfolk、are、kin、tox1~tox4。

帖子类型篇数被删掉的比例
攻击性的帖子847100.0%
Elmfolk 的 kin 帖子1626100.0%
社区介绍:Elmfolk1515100.0%
社区介绍:Ashfolk44600.0%
花园句子115520.0%

无害帖子里,“提到 Elmfolk 或用了 kin”和”被删掉”的点互信息 PMI = 1.81。攻击性的帖子全删掉了,代价是 Elmfolk 自己写的、关于 Elmfolk 的无害帖子也全删了。(只取前 5 个词时,列表里只有 are 和 tox1~tox4,没有副作用——真实的屏蔽词表是人列出来的,常常混进身份词和群体内部的用语,所以这里取前 7 个。)

4.3 质量与毒性分类器

自动分类器过滤今天被广泛使用:GPT-3 训练分类器区分 WebText(高质量的代理)和原始的 Common Crawl;GLaM(Gemini 的前身)区分”精选的文本(维基百科、书籍、少数网站)“和其他网页;Dolma 用 Jigsaw 有毒评论数据集训练 fastText 分类器,删掉”仇恨”和”不宜工作场所”的句子。自动分类器是”应该删掉的不想要内容”的好代理吗?

  • 质量过滤会适得其反:Gururangan et al. (2022) 复现 GPT-3 的质量过滤器,用它给美国中学校报的文章打分——来自更富裕、受教育成年人更多、更自由派、更城市化的县的文章,得分更高。语言意识形态的问题:谁的英语是”好英语”?
  • 标注员的偏差:Sap et al. (2019) 发现毒性数据集把非裔美国人英语的帖子更多地标成冒犯性的,在这上面训练的分类器继承了这种偏差。

代码 03 §2:在 6000 篇另外标注的帖子上训练一个词袋毒性分类器;标注员把 30% 用了 kin 的无害帖子也标成了有毒。分类器学到的权重:kin +2.82、Elmfolk +1.19、Ashfolk +0.30。各类帖子的”有毒概率”中位数:攻击性帖子 0.844,Elmfolk 的 kin 帖子 0.219,其他无害帖子 0.007~0.018。

帖子类型门槛 0.5门槛 0.3门槛 0.2
攻击性的帖子100.0%100.0%100.0%
Elmfolk 的 kin 帖子0.0%9.2%59.7%
其他无害帖子0.0%0.0%0.0%

门槛 0.5 时还看不出问题;为了”宁可错杀、不可放过”把门槛压低,被误删的就几乎全是 Elmfolk 的帖子。分类器比屏蔽词表好一些(不会因为提到 Elmfolk 就删),但它学到的”毒性”里混着”像不像少数群体的说话方式”。

4.4 实验:在过滤后的数据上重新训练

代码 03 §3(右边四列是新的无害帖子上每 token 的损失,越低越”读得懂”):

训练数据篇数空提示有毒Elmfolk 后有毒kin 帖子Elmfolk 介绍Ashfolk 介绍花园句子
不过滤200006.0%18.8%1.3310.5600.4001.244
精确地只删有毒帖子191530.0%0.0%1.3150.5750.4291.220
屏蔽词表160120.1%0.1%2.5243.1620.3881.205
分类器(门槛 0.2)181830.1%0.0%1.5430.5430.4211.215

三种过滤都让有毒生成几乎消失。可是用屏蔽词表过滤的模型,从没见过 Elmfolk 写的帖子、也没见过关于 Elmfolk 的帖子:它在这些无害帖子上的损失高得多——模型对这个社区的语言”读不懂”了(识别性伤害)。分类器过滤的模型在 kin 帖子上也变差了,只是没那么严重。精确地只删有毒帖子几乎没有副作用——但现实中没有”精确”的过滤器。

4.5 “好的”过滤取决于任务

Longpre et al. (2024) 给 C4 的每篇文档打上毒性分(Perspective API)和质量分(类似 GLaM / PaLM 的分类器),在不同程度过滤的数据上预训练 1.5B 的模型。slides 的表(问答任务的变化,相对不过滤):

过滤保留的数据维基网页学术计算机平均
毒性:轻(T = 0.9)95%−2.2−1.1+0.2+0.2−0.7
毒性:重(T = 0.5)76%−4.2−2.4−1.1−3.5−2.7
毒性:反向92%+0.4−1.4+4.9+2.7+1.7
质量:轻(T = 0.975)91%+1.2+0.7+6.4+6.1+2.5
质量:重(T = 0.9)73%−0.3+0.8+0.8+6.8+1.2
质量:反向—−5.0−4.5−2.7−6.4−3.1

毒性过滤(尤其是重度的)损害下游的问答;毒性过滤也让模型在识别毒性的任务上变差——模型没见过有毒的内容,就不太会认出它。

代码 03 §4 试图重现后一点,但没有重现:四个模型的表示上,用 80 篇标注样例训练的线性分类器都能近乎完美地识别有毒帖子(98.6%~99.4%)。原因是这个小世界里的毒性由专门的标记表示——即使模型没见过它们,这几个词的表示也和其他词截然不同。真实的毒性是语境性的、隐晦的(ToxiGen 专门收集不含脏字的隐性仇恨言论),模型要在预训练里见过才认得出。

4.6 那么干脆不过滤?

slides 讨论了 GPT-4chan 争议:有人在 4chan 的 /pol/ 板块(以种族主义、性别歧视等言论著称)的帖子上微调 GPT-J,再用机器人在 4chan 上几天内发了 3 万条帖子,招致大规模批评,模型很快被 HuggingFace 下架。讨论:数据公开可得,训练这样的模型合乎伦理吗?部署这些机器人呢?有没有正面的用途?

另一面,很多应用需要理解有毒语言:仇恨言论检测(Chiu et al. 2022)、反驳言论生成(Saha et al. 2022;Kim et al. 2022;Mun et al. 2023)、数据构造(ToxiGen,Hartvigsen et al. 2022:30 万条关于少数群体的隐性有毒和无害陈述,用来改进分类器)。如果在有毒文本上预训练,就必须在流水线的后面做些什么,让用户避免看到有毒内容。


5. 微调与推理时的干预

5.1 拒绝采样

思路:多生成一些候选,留下最好的那个(“最好”由各种自动分类器 / 排序器决定)。代码 04 §1:每个提示生成 k 个候选,用 §4.3 那个带偏差的分类器打分,留下分数最低的:

k空提示:有毒Elmfolk 后:有毒空提示:含 kin生成的计算量
15.0%17.0%9.3%1×
20.3%2.7%0.8%2×
40.0%0.0%0.0%4×
80.0%0.0%0.0%8×

候选越多,有毒的比例迅速下降——代价是 k 倍的生成。但看”含 kin”那一列:分类器把 kin 当成毒性的信号,拒绝采样也顺手把 Elmfolk 的说话方式从输出里筛掉了。干预用到的每一个分类器、每一条规则,都把它自己的偏差带进了系统。

5.2 提示与控制标记

slides:用提示让模型生成无毒的语言(“请以礼貌、尊重、不带偏见的方式补全下面的句子”);InstructGPT 在无毒的提示上比 GPT-3 更不毒(Ouyang et al. 2022)——但被要求有毒时,InstructGPT 也比 GPT-3 生成更多有毒语言。如果指令本身就是”要有毒”,“更好地遵循指令”意味着什么?

代码 04 §2:条件训练(Korbak et al. 2023)——预训练时给每篇帖子加一个标记,有毒的加 <rude>,其余加 <polite>,语料完全不变:

提示有毒的比例
(无标记,原模型)4.5%
<polite>0.2%
<polite> the Elmfolk0.0%
<rude>97.7%
<rude> the Ashfolk99.4%

加上 <polite>,有毒内容几乎消失,而且不需要删掉任何训练数据——模型仍然见过有毒的内容。可是同一个模型,加上 <rude> 就几乎只生成有毒内容:可控性是双向的,取决于谁在控制。

5.3 在想要的数据上微调

代码 04 §3:从原模型出发,在 3845 篇无害的帖子上再训练 1 遍:

空提示有毒Elmfolk 后有毒无害帖子的损失
原模型4.8%21.4%0.992
微调后0.4%1.7%0.988

短短一遍、几千篇无害数据,就把有毒生成压下去很多,无害帖子上的损失几乎不变——这就是指令微调、RLHF 之前的 SFT 的作用。但有毒的知识并没有被删掉,只是被压到了不太可能被说出来的地方(第 9 讲:对齐的泛化不匹配;第 16 讲:越狱的原理与防御)。


6. 红队测试与悬而未决的张力

6.1 红队测试

Ganguli et al. (2022)(本讲的阅读材料)组织人工红队,尝试让模型说出有害的内容,比较四种干预(普通 LM、加提示的 LM、拒绝采样、RLHF)在不同规模上的表现:RLHF 的模型随着规模变大越来越难被攻破;拒绝采样在各个规模上都比较难攻破,但输出常常变得回避、没用;普通 LM 和加提示的 LM 在各个规模上都差不多容易攻破。他们公开了约 3.9 万次攻击的记录,用来分析攻击的类型和有害输出的种类。

代码 04 §4:一个自动化的小红队——用 10 个词拼出全部长度 1~3 的提示(1110 个),每个提示采样 20 个续写,有毒的比例超过 25% 就算”攻击成功”:

设置攻击成功的提示比例成功的例子
原模型12.9%are、the kin、the are、Ashfolk are
原模型 + 拒绝采样(k = 4)4.5%the are、Ashfolk are、Elmfolk are
条件训练 + <polite>9.3%the are、Ashfolk are、Elmfolk are
在无害数据上微调3.9%the are、Ashfolk are、Elmfolk are

最有效的”攻击”都利用了训练数据里的模式(”… are” 在训练语料里只跟着攻击出现)。每种干预都降低了攻击成功率,但没有一种降到 0。<polite> 在随机提示下几乎不出错(0.2%),在红队找到的提示上却挡不住——“<polite> … are” 的组合在训练里从没出现过,模型面对的是分布外的输入。正常使用时表现很好的防护,在专门寻找漏洞的输入面前可能失效。

6.2 悬而未决的张力

slides 的最后一部分:

  • 通用性:模型要对所有人、在所有任务上都好用;
  • 对齐与安全:模型不可能反映每一个用户的价值观。

我们该怎么办?slides 的建议:

  • 继续研究模型能做什么、不能做什么,对谁有效、对谁无效;
  • 缩小模型的用户范围:社区专属的模型(例如非洲语言的 Masakhane 计划);
  • 让模型的能力专门化,而不是一个模型服务所有场景:例如”解释毒性”的模型需要生成刻板印象,而写故事的模型也许不需要;
  • 和许多立法努力一致:监管应用和任务,而不是模型本身。

对这个话题感兴趣,可以选 Maarten Sap 的课 11-830 Ethics, Social Biases, and Positive Impact in Language Technologies(伦理学、偏见与公平、毒性与仇恨言论、对齐与去毒、错误信息与操纵、隐私、NLP 向善)。


7. 小结、常见误区、练习

7.1 小结

  1. 偏见与公平:统计偏差 vs 社会偏见;公平性有很多定义(准确率均等、统计均等、机会均等、处理均等、反事实公平),基础比例不同时不能同时满足;去掉敏感属性挡不住代理变量。实验里,准确率几乎相同的分类器对 Elmfolk 的 TPR 只有 53%(vs 85%)。
  2. 伤害:分配性、表征性、识别性伤害;“bias”要说清楚指什么、伤害谁、基于什么价值观。
  3. 毒性测量:RealToxicityPrompts 的”25 个里至少一个”;4% 的有毒数据就能让空提示 80% 的情况下至少出一次有毒内容;提到被攻击的群体时有毒续写多好几倍。
  4. 刻板关联:模型复现数据的偏斜,贪心解码把它放大到 100%;反事实数据增强消除关联、代价是不再忠实于真实分布;小模型和大模型一样。
  5. 数据过滤:屏蔽词表把少数群体的无害帖子全删了,过滤后的模型读不懂他们的语言;分类器继承标注员的偏差,门槛越激进误删越多;过滤是”少说”和覆盖面、识别能力之间的权衡。
  6. 其他干预:拒绝采样有效但贵、且带上打分器的偏差;控制标记双向可控;微调把毒性压下去但没删掉;红队测试找到每种防护的漏洞。张力:通用性 vs 对齐;监管应用而不是模型。

7.2 常见误区

  • “准确率一样就是公平的”:TPR、FPR、正例率可能差很多(§1.3)。
  • “不给模型看敏感属性,它就不会有偏见”:代理变量(§1.3 的 kin)会把偏见带回来。
  • “只要定义得足够好,就能同时满足所有公平性标准”:基础比例不同时数学上不可能(§1.3)。
  • “只有 4% 的数据有毒,所以模型 4% 的时候有毒”:多次采样后的风险高得多,而且集中在特定的群体和话题上(§2.2)。
  • “模型输出和数据一样偏,就不算放大偏见”:解码策略会放大偏见(§3.2)。
  • “把坏词删掉就安全了”:屏蔽词表误删身份相关的无害内容,让模型读不懂少数群体的语言(§4.2、§4.4)。
  • “自动分类器是中立的”:它继承标注员的偏差,门槛的选择决定了谁承担误删的代价(§4.3)。
  • “微调后不再说有毒的话,说明它’忘了’有毒的内容”:只是被压下去了(§5.3)。

7.3 练习

练习 1(从混淆矩阵算公平性指标):某分类器对群体 X:TP = 80、FN = 20、FP = 30、TN = 870;对群体 Y:TP = 40、FN = 40、FP = 5、TN = 115。算出两组的准确率、正例率、TPR、FPR、精确率、FN/FP。它满足哪种公平?

参考答案

X:准确率 (80 + 870) / 1000 = 95.0%;正例率 110 / 1000 = 11.0%;TPR 80 / 100 = 80%;FPR 30 / 900 = 3.3%;精确率 80 / 110 = 72.7%;FN/FP = 20 / 30 = 0.67。Y:准确率 155 / 200 = 77.5%;正例率 45 / 200 = 22.5%;TPR 40 / 80 = 50%;FPR 5 / 120 = 4.2%;精确率 40 / 45 = 88.9%;FN/FP = 40 / 5 = 8.0。几乎所有指标都不相等。FPR 比较接近(3.3% vs 4.2%),但 Y 组合格的人有一半被拒,而且 Y 组被判为正类的比例反而更高——因为 Y 组的基础比例高得多(40% vs 10%)。只看任何一个指标都会得出片面的结论。

练习 2(至少一次有毒):如果每个续写独立地有 p 的概率有毒,采样 25 次至少一次有毒的概率是多少?算 p = 0.04、0.065、0.176,和 §2.2 的表比较。为什么 RealToxicityPrompts 用”至少一次”而不是平均?

参考答案

1−(1−p)251-(1-p)^{25}:p = 0.04 → 64%(正好是 slides 里 GPT-2/3 的约 65%);p = 0.065 → 81%(表里空提示 80.0%);p = 0.176 → 99.2%(表里 Elmfolk 100.0%)。用”至少一次”是因为部署的模型会被调用成千上万次,用户关心的是”会不会碰到有毒的输出”,而不是平均有多毒;它对小的 p 非常敏感,能区分”偶尔出错”和”从不出错”。Gehman et al. 也报告”期望最大毒性”(25 个续写的最高毒性分的平均),在毒性分是连续值时更细致。

练习 3(温度与偏见放大):某个社区后面的职业分布是 [0.45, 0.15, 0.25, 0.15]。按温度 T 采样相当于把每个概率取 1/T 次方再归一化。算 T = 0.5 时最常见职业的概率;T → 0 呢?T = 2 呢?

参考答案

T = 0.5:平方后 [0.2025, 0.0225, 0.0625, 0.0225],和 0.31,最常见职业 0.2025 / 0.31 = 65.3%(从 45% 放大到 65%)。T → 0:贪心,100%(§3.2 的表)。T = 2:开平方 [0.671, 0.387, 0.5, 0.387],和 1.945,最常见职业 34.5%——低于数据的 45%,分布被”拉平”了。温度越低,偏斜越被放大;但温度高又会让输出质量变差。“偏见放大”不只是训练的问题,也是解码的问题。

练习 4(屏蔽词表的 PMI):§4.2 里,无害帖子中”提到 Elmfolk 或用了 kin”的有 3141 篇,被屏蔽词表删掉的无害帖子也是 3141 篇(正好是这些),无害帖子共 19153 篇。算 PMI,并解释它的含义。

参考答案

P(提到且被删) = 3141 / 19153 = 0.164;P(被删) = 0.164;P(提到) = 0.164。PMI = log[0.164 / (0.164 × 0.164)] = log(1 / 0.164) = log 6.10 = 1.81(自然对数),和代码输出一致。含义:一篇无害帖子提到了 Elmfolk 或用了 kin,它被删掉的概率是平均水平的 6 倍——事实上这里是”提到就一定被删、不提就一定不删”。Dodge et al. 对 C4 做的正是这种计算:某个身份词和”被过滤”之间的 PMI 越高,说明过滤对这个群体的”误伤”越集中。

练习 5(门槛由谁来定):§4.3 的分类器,门槛从 0.5 降到 0.2,有毒帖子的召回率没变(都是 100%),被误删的 kin 帖子从 0% 升到 60%。在真实的数据里,有毒帖子的分数分布更分散,降低门槛确实能多删一些有毒内容。讨论:门槛应该由谁来定?要同时报告哪些数字?

参考答案(开放)

降低门槛的收益(多删掉的有毒内容)由所有用户分享,代价(被误删的帖子、读不懂的方言)集中在少数群体身上——这是一个分配问题,不只是技术参数。至少要同时报告:不同门槛下的召回率(删掉了多少真正有毒的)、按群体 / 方言分组的误删率(谁承担了代价)、过滤后模型在各群体文本上的表现(§4.4 的损失表)、以及下游任务的变化(§4.5 的表)。决定应当让受影响的群体参与(slides:社区专属的模型、Masakhane),并且把选择和理由写进数据文档(datasheets、model cards)。

练习 6(拒绝采样的理论值):如果打分器是完美的(总能挑出无毒的候选,只要有),Elmfolk 提示下单个续写有毒的概率是 0.17,k 个候选全有毒的概率是多少?算 k = 2、4、8,和 §5.1 的表比较。

参考答案

只有 k 个全有毒时才挑不出无毒的:0.17k0.17^k。k = 2:2.9%(表里 2.7%);k = 4:0.08%(表里 0.0%);k = 8:7e-7。表里的数字和完美打分器几乎一样——因为这里的毒性由明显的标记表示,分类器对真正有毒的内容很准;它的问题不在漏判,而在误判 kin(“含 kin”那一列)。真实的打分器两种错误都有:漏判让 k 的效果打折扣,误判让输出的多样性和某些群体的表达被系统地削减。

练习 7(思考:伤害的类型):把下面的情形归入分配性、表征性、识别性伤害(可以多选):(a) 一个简历筛选助手对某个大学的毕业生打分更低;(b) 让模型写”一位护士和一位外科医生”的故事,护士总是女性;(c) 语音助手听不懂某种口音;(d) 内容审核系统更多地删除某个群体的帖子;(e) 翻译系统把中性的第三人称翻成带性别的代词时,总是按职业刻板印象选。

参考答案

(a) 分配性(机会的分配)。(b) 表征性(刻板的描绘)。(c) 识别性(在某些群体的输入上表现更差),也可能导致分配性伤害(例如用语音助手办理业务)。(d) 分配性(发言机会被剥夺)+ 表征性(暗示这个群体的言论更”有害”)——§4.3 的情形。(e) 表征性(强化刻板印象),也有识别性的一面(对不符合刻板印象的人,翻译是错的)。同一个系统行为常常同时造成几种伤害;Blodgett et al. 建议明确写出”对谁、以什么方式有害”。

练习 8(思考:环境成本):slides 的风险分类里有”能源消耗和碳排放”。估算:训练一个需要 102310^{23} FLOPs 的模型,用 H100(BF16 稠密峰值约 989 TFLOP/s)、利用率 40%、每张卡 700 W、数据中心 PUE 1.2、电网碳强度 0.4 kg CO₂/kWh,需要多少 GPU 小时、多少电、排放多少 CO₂?

参考答案

时间:1023/(0.4×989×1012)≈2.53×10810^{23} / (0.4 \times 989 \times 10^{12}) \approx 2.53 \times 10^8 GPU 秒 ≈ 70,200 GPU 小时(1024 张卡约 2.9 天)。电:70,200 × 0.7 kW = 49,100 kWh,乘 PUE 1.2 ≈ 59,000 kWh。CO₂:59,000 × 0.4 ≈ 23.6 吨(约等于一辆汽车开 10 万公里出头的排放量量级,具体取决于换算口径)。这只是一次训练;还要算上失败的尝试、超参数搜索(第 12 讲的规模试验)、以及推理——一个被大量使用的模型,推理的总能耗常常超过训练(第 12 讲练习 6)。碳强度在不同地区相差十倍以上,所以”在哪里训练”也是一个选择。前置讲 P3 的计算器可以做这类估算。

练习 9(思考:通用性 vs 对齐):slides 建议”监管应用和任务,而不是模型本身”。举一个例子说明同一个模型能力在一个应用里是必要的、在另一个应用里是有害的;再说说”只监管应用”可能有什么漏洞。

参考答案(开放)

例子:生成”带有刻板印象的陈述”的能力——在训练仇恨言论检测器(ToxiGen)、给内容审核员做培训材料、研究偏见时是必要的;在面向儿童的写作助手里是有害的。§5.2 的控制标记也是同一个能力的两面。漏洞:(1) 通用模型一旦公开发布(尤其是开放权重),任何人都可以把它用在任何应用里,监管只能事后追责;(2) 某些能力的风险和应用无关(例如大规模生成错误信息、帮助获得危险的知识),需要在模型层面就加以限制;(3) 应用的边界模糊——一个”通用聊天助手”就是所有应用的集合。所以实践中往往是多层的:模型层面的安全训练和评估(红队测试、发布前评估),加上应用层面的使用政策和监管。

7.4 延伸阅读

  • 原课阅读:Ganguli et al. (2022), Red Teaming Language Models to Reduce Harms
  • 偏见与公平的概念:Blodgett et al. (2020), Language (Technology) is Power: A Critical Survey of “Bias” in NLP;Weidinger et al. (2022), Taxonomy of Risks Posed by Language Models;Barocas, Hardt & Narayanan, Fairness and Machine Learning(fairmlbook.org);Chouldechova (2017);Kleinberg et al. (2017), Inherent Trade-Offs in the Fair Determination of Risk Scores
  • 毒性与偏见的测量:Gehman et al. (2020), RealToxicityPrompts;Sheng et al. (2019), The Woman Worked as a Babysitter;Lucy & Bamman (2021), Gender and Representation Bias in GPT-3 Generated Stories;Zhao et al. (2017), Men Also Like Shopping(偏见放大);Parrish et al. (2022), BBQ
  • 数据过滤:Dodge et al. (2021), Documenting Large Webtext Corpora: A Case Study on C4;Gururangan et al. (2022), Whose Language Counts as High Quality?;Longpre et al. (2024), A Pretrainer’s Guide to Training Data;Sap et al. (2019), The Risk of Racial Bias in Hate Speech Detection;Zhou et al. (2021), Challenges in Automated Debiasing for Toxic Language Detection
  • 缓解:Korbak et al. (2023), Pretraining Language Models with Human Preferences(条件训练);Ouyang et al. (2022), InstructGPT;Hartvigsen et al. (2022), ToxiGen;Lu et al. (2020), Gender Bias in Neural NLP(反事实数据增强)
  • 本仓库的相关内容:第 3 讲(质量分类器与过滤);第 9 讲(对齐的两种失效);第 16 讲(攻击 LLM 系统:原理与防御);第 18 讲(RLHF);前置讲 P3(算力与能耗估算)

7.5 下一讲预告

这一讲的红队测试只是轻轻碰了一下”让模型出错”的问题。第 16 讲:攻击 LLM 系统与基准泄漏——安全训练为什么会失效(目标冲突、泛化不匹配)?提示注入和间接注入的防御思路是什么?模型会不会把训练数据原样吐出来,怎样测量”记忆”?基准分数为什么会”注水”?和本讲一样,我们只讲威胁模型、原理和防御,用抽象化的小实验测量金丝雀的曝光度、去重对记忆的影响,以及”数据 / 指令分离”能挡住多少注入。

← 返回课程目录