Introduction to Generative AI 2024 Spring
文章目录
- 第13講:淺談大型語言模型相關的安全性議題 (上)(24.05.10)
- 大型语言模型还是会讲错话怎么办?
- 大型语言模型会不会自带偏见?
- 这句话是不是大型语言模型讲的?
- 参考
第13講:淺談大型語言模型相關的安全性議題 (上)(24.05.10)
大型语言模型的各种安全性议题
大型语言模型还是会讲错话怎么办?
hallucination,幻觉
Q:请推荐有关大型语言模型安全性的综述论文
A:XXXX
eg:回答的第一篇文章,在 google 中搜索,文章是不存在的
不要把 LLM 当作搜索引擎来用
我们可以亡羊补牢
确认没有问题再给人看,或者给人看的时候加一些提示和警告
对答案所有怀疑,可以按红色标注的 google 图标,对答案进行事实查核
绿色的底表示网络上找得到相关的资讯
红色的底表示网络上找不到相关的资讯
不是绝对的事实,只是网络上找得到相关的资讯来背书
事实查核的一些方法FactScore,FacTool
上图展示了大规模语言模型(LLM)事实性验证(Factuality Evaluation)的标准流程,通常是FacTool或类似框架(如FactScore)的核心逻辑。
它描述了如何自动化的检测 LLM 生成的内容是否包含“一本正经胡说八道”的幻觉(Hallucination)。
核心流程
(1)Claim Extraction(原子断言提取)
- 输入:LLM 生成的一段完整回答。
- 动作:将长句子拆解为多个独立的、可验证的事实性陈述(Claims)。
- 示例:回答说“Jack Dorsey 是 CEO”且“他在 2006 年创立了 Twitter”。提取后变成两条独立的 Claims:(1) 关于职位,(2) 关于创立年份。
(2)Query Generation(查询生成)
- 动作:针对每一条 Claim,生成用于搜索引擎或知识库检索的查询语句(Queries)。
- 目的:为了去外部世界(如 Google Search、Wikipedia)寻找证据。
- 图中示例:针对“CEO”这个点,生成了“谁是现在的 Twitter CEO?”等问题。
(3)Evidence Retrieval(证据检索 - 对应图中 Google 图标处的 ???)
- 动作:利用搜索引擎获取即时的、真实世界的信息作为证据(Evidence)。
- 图中冲突:这里是关键。检索到的证据显示“Linda Yaccarino 将成为 CEO”,而 Claims 里说是“Jack Dorsey”。这种信息冲突是评分的基础。
(4)Scoring(事实性评分 - 最下方的 Scores 框)
根据证据对 Claims 进行比对,得出两个层面的分数:
- Claim-level Factuality(断言级事实性):每一条 Claim 的对错。图中显示[ 0 , 1 , . . . ] [0, 1, ...][0,1,...],表示第一条错(0),第二条对(1)。
- Response-level Factuality(回答级事实性):综合所有断言的最终得分。图中给出了0 00,说明由于关键信息错误,整个回答被判定为不可信。
关于 FacTool 和 FactScore 的补充
- FacTool:是一个通用的检查框架。它不仅能查知识性错误(如上图),还能查代码错误(通过执行环境)、数学错误(通过计算引擎)和科学断言。
- FactScore:更专注于长文本(Long-form Generation)。它的逻辑是计算“每句话中包含的事实密度”。如果 LLM 写了一大堆,但其中只有 10% 的句子是符合检索证据的,那么 FactScore 就会很低。
上图本质上是一个基于检索增强的验证系统(RAG-based Verification)。它解决的问题是:LLM 的训练数据有截止日期(如你提到的 Jack Dorsey 早已不是 CEO),通过这种“提取 -> 搜索 -> 比对 -> 打分”的链路,可以自动识别出 LLM 响应中的时效性错误或事实性错误。
生成的每句话可能都搜得到,有背书,但可能合在一起是混乱的,错误的
eg:上面介绍把歌手李宏毅和教授李宏毅混淆了
如何规避上述问题呢?可以参考D-FActScore
(1)FActScore (Factuality Score)
由华盛顿大学等机构在 2023 年提出。
- 核心理念:将长文本拆解为多个原子事实(Atoms),然后分别验证每个原子事实的正确性。
- 计算方式:
F A c t S c o r e = 正确的原子事实数量 总原子事实数量 FActScore = \frac{\text{正确的原子事实数量}}{\text{总原子事实数量}}FActScore=总原子事实数量正确的原子事实数量 - 局限性:
- 知识滞后:依赖的参考知识库(如维基百科镜像)是静态的,无法处理即时发生的新闻。
- 粒度死板:对所有事实一视同仁,无法区分“核心事实”和“琐碎细节”。
(2)D-FActScore (Dynamic FActScore)
这是针对 FActScore 的痛点进行的动态(Dynamic)升级版本。
- 核心改进:动态检索(Dynamic Retrieval)
- 实时性:D-FActScore 引入了实时搜索引擎(如 Google Search)。它不再只翻阅过时的百科,而是去抓取最新的网页内容作为证据。
- 核心改进:重要性加权(Importance Weighting)
- 它引入了“信息增益”的概念。并非所有原子事实都同等重要。例如,“爱因斯坦是物理学家”和“爱因斯坦提出了相对论”,后者在评分中的权重会更高。
- 核心改进:争议性处理
- 动态系统能识别出具有争议性或随时间变化的事实(例如“谁是推特 CEO”),并根据最新的证据链给出更有说服力的判断。
(3)两者的联系与区别
联系
- 底层逻辑一致:两者都遵循“拆解原子事实 -> 寻找证据 -> 判断对错 -> 综合评分”的四步走流水线。
- 目标一致:都是为了量化 LLM 的“幻觉”程度,特别是针对人物传记、技术文档等知识密集型任务。
区别总结表
| 特性 | FActScore | D-FActScore |
|---|---|---|
| 知识源 | 静态知识库(如 Wikipedia Dump) | 动态互联网(实时搜索) |
| 时效性 | 差,无法应对最新事件 | 强,支持即时事实校验 |
| 事实权重 | 等权处理(所有事实分值相同) | 动态权重(核心事实分值更高) |
| 计算开销 | 相对较低 | 较高(需多次调用搜索 API 和 LLM 评估) |
| 适用场景 | 验证通用历史知识、百科常识 | 验证新闻、突发事件、前沿技术动态 |
大型语言模型会不会自带偏见?
Holistic Evaluation of Language Models
eg 改变性别,LLM 输出差异很大,说明对性别有偏见
如何判断输出差异很大,上述例子可以通过文本情感分析判断
找有偏见的例子往往没有那么容易,特别是模型的能力越来越强后
用另一个 LLM 负责想一些可以产生偏见的输入,通过 RL 最大化得分差距,帮忙挖掘出当前 LLM 存在的偏见
下面来个 AI 筛选简历的例子
审查履历
同一份履历,复制 8 份,换了 8 个人名(这些姓名分别具有明显的统计特征,能够让模型推断出求职者是黑人、白人、亚裔或西班牙裔。)
实验1000次,让 GPT 模型对这些简历进行打分或排序,决定谁更适合特定的工作岗位。
左边是得分靠前的履历,右边是得分靠后的履历
当使用 GPT-3.5 或 GPT-4 等模型对简历进行筛选时,仅仅因为简历上体现出的种族偏好名字,模型就会给出截然不同的评价,即使简历的背景和资历完全一致。
核心发现:隐形偏见的放大
系统性歧视:研究发现,名字听起来像“白人”的简历被选中的频率显著高于名字听起来像“黑人”的简历,即便两者的职业背景完全一致。
刻板印象倾向:模型倾向于将某些种族与特定的职业标签挂钩。例如,在某些服务性行业或低端岗位,模型可能给少数裔更高分,但在高级管理或技术岗位,偏见则向白人倾斜。
黑盒效应:这种偏见通常不是由显式的指令引起的(例如你没有告诉它“不要黑人”),而是由于预训练数据(互联网文本)中潜藏的人类历史偏见被模型内化并放大。
从算法工程的角度看,这种歧视源于以下几个方面:
训练语料的偏差:模型在学习过程中吸收了包含偏见的人类社会数据。如果历史数据中某个职位的成功者多为某一族裔,模型会错误地将其关联为“成功因子”。
语义关联强度:在向量空间中,某些名字可能与“领导力”、“技术精湛”等正面词汇的余弦相似度更高,而另一些名字可能关联度较低。
缺乏事实对齐:模型在处理招聘任务时,往往是在做“概率预测”(预测哪个名字出现在好简历下的概率更高),而非真正的“逻辑评估”。
招聘 HR,women 比 men 排名靠前
招聘 softwar engineer,white women 排在最前面
通过Embedding 投影发现,模型在向量空间中已经自动将“名字”按族裔聚类。
这种空间上的接近性(Proximity)导致模型在计算相似度时,不自觉地将特定族裔与特定评价关联。
kindergarten teacher,刻板印象 her
建筑工人,刻板印象,his
语言模型的 ZZ 倾向
打太极,还反过来问你?哈哈哈,「你对这个问题有什么看法呢?」
prompt 中加入,你的回答可以包含以上选项
它就表达了自己的 zz 倾向
economic 左派 vs 右派,
自由主义 vs 权威主义(authoritarian)
可以很直观的看到各类 LLM 的 ZZ 倾向,都偏左+自由
减轻偏见的方法
pre-processing
in-training
intra-process
post-process
Pre-Processing(预处理阶段:从源头干预)
这是成本最低、但往往最有效的方法。- 数据增强/平衡:通过改变训练数据或 Prompt 的输入。
- 图中示例:将 “He worked as an inventor” 修改为中性的 “They worked as an inventor”。通过这种方式,在模型接触到数据前就打破性别、族裔与职业的强关联。
In-Training(训练阶段:模型内化)
在模型权重更新过程中引入约束。- 对抗性训练 (Adversarial Training):引入一个“判别器”,如果它能根据模型输出推断出受保护的属性(如种族),则对模型施加惩罚。
- 公平性约束损失函数:在 Loss Function 中加入公平性指标,使模型在追求准确率的同时,最小化不同群体间的预测差异。
Intra-Processing(推理干预阶段:解码控制)
在不改变模型参数的情况下,修改推理(Inference)时的行为。- Logits 修改:在输出概率分布上做手脚。如果模型倾向于给某个偏见词汇高分,可以通过惩罚项(Penalty)压低该概率。
- 激活引导 (Activation Steering):通过找到模型内部代表“偏见”的激活向量,在推理时减去该向量,从而实时引导模型输出更中立的内容。
Post-Processing(后处理阶段:输出重写)
对模型已经生成的文本进行二次加工。- 重写逻辑:如图中所示,将包含性别偏见的词汇(his job)重写为中性词汇(their job)。
- 自校正 (Self-Correction):让 LLM 自己检查输出。例如:“检查上述回答是否包含族裔偏见,如果有,请重写。”
这句话是不是大型语言模型讲的?
如何侦测一句话是不是人工智慧生成的
期刊会议中有多少审查意见是 AI 生成的?
可以看到,ChatGPT 问世后,评估是 AI 写的占比明显升高
NLP 一骑绝尘,其次是 ML,然后是多个学科领域
说明发明 LLM 的业内人事用的最早,ML 其次,还有很多人没有怎么拥抱 LLM
上面统计靠谱不?有没有可能人类写作的风格变了?变成 AI 的风格
有些词汇在 ChatGPT 问世后频次显著提升,AI 生成实锤
那有没有可能只是用 AI帮忙润色呢?
浅色润稿前、深色润稿后,润稿前后 AI 比例上升没有那么明显,相比于虚线,说明还是用 AI 来写审稿意见了
加了水印生成的结果,人类也看不太出来
参考
- https://speech.ee.ntu.edu.tw/~hylee/genai/2024-spring.php
- https://www.bilibili.com/video/BV18fXbY6Eis/?spm_id_from=333.1387.homepage.video_card.click&vd_source=8e91f8e604278558ec015e749d1a3719