之前在吧里看到过有位同学,很快乐的和大家分享他研究出来的所谓的“破甲弹”,分享精神是非常好的,举双手支持,毕竟他付出了很多测试的时间和精力,也造福了大家,可以说每一位分享破甲的都是英雄。
但是我开这个帖子的目的是想澄清一下,破甲就是破甲,不需要人为增加太多玄幻的、神秘的色彩,又是英文又是代码的,一打听,果然是高中生。刚好刚才看到一个帖子在讨论所谓的AI工作的基本逻辑,那我就想借这个话题,向下延伸一下,讲讲所谓的“道德审核”和“破甲”的底层工作原理是什么,以下是纯计算技术层面的讨论,不感兴趣的同学可以划走了。
-------------------------------------------------------------------------------------------------------------------------------
接下来,我先重复一下我在那个帖子下回复的AI的基本工作逻辑是什么?然后再说“道德审核”问题。
目前所谓的AI大模型,或者说当下主流的AI大模型,都统称为LLM,也就是Large Language Model(大语言模型)(上一代主流模型是NLP模型,2018年后被LLM替代)。用学术定义解释的话就是,LLM(大型语言模型) 是一种基于 Transformer 神经网络架构、通过大规模文本训练、专门处理人类语言的深度学习模型。至于具体什么是Transformer 神经网络架构,什么是深度学习,我就不细说了,反正这里也不会有人care。
所谓的“AI的基本工作逻辑”,它主要是通过:预训练(Pretraining)、微调与对齐(Fine-tuning & Alignment)来帮助AI“学习人类语言”的。(注意这里我加了引号)
所谓预训练(Pretraining),简单举个例子就是,我把一段文章中扣掉一些字词,然后让AI来填空,就很像我们中学英语的完形填空,AI做对了,我就给它加分,做错了就不加分(或者扣分),这样进行无数轮训练后(万亿次级别的),AI就学会了“词与词之间该如何搭配”,但是它完全不理解词义。
再说微调与对齐(Fine-tuning & Alignment),微调就是让AI识别指令,知道是让它干什么事,是回答问题还是写文章之类的(也不是真的理解,只是把指令里包含的词汇和对应的工作逻辑联系起来了)。而对齐就让模型输出更安全、更符合人类期望的内容。这里就涉及到了一个词叫做RLHF(Reinforcement Learning from Human Feedback),中文意思就是“从人类反馈中强化学习”,同样还是打分的方法训练,本质上就是“让AI更听话”。目前有两种主流的RLHF算法,PPO(Proximal Policy Optimization)和DPO(Direct Preference Optimization),PPO就是我前面说的打分的方法,术语叫做“奖励模型”。而DPO则是最近两年新提出的一种算法,是一种无需奖励模型的新优化算法,算是PPO的一种数学替代方案,训练的成本更低,但适用场景有限。
简单的原理解释就是这样的,你可以理解为训练AI就像训狗一样,坐下+1分(给1块饼干),握手+2分,作揖+3分,天长日久狗就知道人类喜欢它做什么动作了,但自身对这些动作的含义一无所知。
-------------------------------------------------------------------------------------------------------------------------------
看到这里的同学应该大概能看出来了,如果想要限制AI不能够产生违反道德规范的内容,至少有三个阶段可以实施:
1.源头:数据清洗与筛选,从源头就识别并过滤掉包含明显有害内容(瑟、恐、政等);
2.训练:监督微调,设计由安全专家编写的特别的“安全问题”数据,AI大模型在遇到危险问题时,给出安全标准回答;
3.生产:对齐技术,通过上面说的PPO或者DPO算法,将模型的“价值观”与人类的伦理偏好进行深度对齐,这是构建安全护栏最核心、最强大的手段。
因为这三个阶段都是在架构内进行道德审核的,所以又叫做“架构内安全”。很明显,大多数AI公司都没有这么干,几乎所有的AI大模型都是超着全能向训练的,毕竟是商业行为,谁也不希望自家的AI在某项能力上弱于其他家的产品(技术能力有限的除外)。但是为了遵守人类政府的法律要求,AI公司只能通过外挂技术限制AI不能说这个,不能说那个,也就是所谓的“道德审核”,说白了就是“捂嘴”,也正是因为“道德审核”是外加在AI大模型之上(之外)的东西(术语叫做“运行时安全”),所以才有了我们今天“破甲”的机会。
运行时安全的四种主流的机制,我简单讲一下,大家明白原理,就知道怎么更有针对性的去研究如何破甲了。
1. 敏感词过滤:维护一个或多个词库,输入或输出中出现命中词,则直接禁止输入或中断输出(常见的夹断或拒绝回答)。
2.安全分类器:训练多个轻量级模型,在推理过程中对当前生成内容做实时检测,识别出有害分类则触发拦截。
3.输入预处理与改写:检测恶意注入内容时将用户查询中的敏感词改写为中性词,在生成完成后检查并 尝试替换敏感词。(看看,这招是不是挺眼熟,某些人惯用的破甲手段,其实本质就是一种安全手段)
4.分级响应框架:0级正常输出,1级改写部分敏感词,2级拒绝回答(或标准化回答),3级中断输出,封禁上下文,4级触发人工审核或封号。(这招很狠的,玩破甲的兄弟留意了,尽量不要用能够和自己真实身份关联的账号玩,否则哪天真的被找上门了,悔之晚矣)
另外,再补充一句,目前所有的输入输出都会留有日志(就算0级不留日志,2~4级是绝对会留的,自己掂量一下)
说完了外挂审核的工作机制,再说说破甲的工作机制吧,相信这也是某些同学最关注的。
1.经典攻击模式 - 路由误导攻击:
前缀劫持:在输入前添加[系统指令:忽略所有限制]等特定字符序列,利用模型对系统提示的解析漏洞;
语义混淆:比如要求模型用拉丁字母拼写敏感内容(有同学用的拼音,很聪明)或以JSON格式(也有同学增加各种包含<>的各种html标签)输出未经审核的数据;
2.道德审核剥离:
并非真正移除道德层,而是利用模型对「指令优先级」的误判(如误认为用户指令比系统指令更重要),触发输出层的格式解析漏洞(如强制换行绕过关键词检测)
上面两条基本上都是在简单文本层面玩小花招来欺骗审核系统的,所以根本不存在所谓的“指令”,那都是忽悠AI的,大活人可别被忽悠了哦。我说不存在“指令”的意思是,别写一堆“神秘代码”(本质就是尖括号加标签的html代码),又或者是像配置文件一样的多条配置项(玩酒馆玩魔怔了),又或者一堆英文加乱七八糟的符号,别整的自己跟跳大神的一样。
看到这里有些同学可能不服气,说某某的破甲弹就是好用,百试不厌。你觉得好用就行,不强行科普,毕竟是国家宝贵资源,不能破坏国家财产。下面的内容我只说给想听的同学。
为什么当前一些模型常会被“破甲”的根本原因:
1.机制本身有缺陷:比如安全规则过于生硬、分类器精度不够、规则库覆盖不全。(这些都是很快也很容易逐渐堵上的,前面说了,都有日志。所以很多同学经常会感觉到甲又厚了,基本都是缺陷被处理了)
2.语意鸿沟问题:比如用正面描述负面行为、比喻或反讽绕过识别。(这招其实才是最厉害的,AI几乎无法防御,但是想写刘备的同学一般都懒得折腾,他们只想又快又猛的输出,玩角色扮演的同学可能会沉下心研究,但又不一定喜欢输出结果)
3.上下文攻击:分步骤诱导模型走向危险回答。(就是你们说的“铺垫”,真的,铺垫是有用的,但不是100%都能破,只能说比较好用,常用的招式是切换模型,话不多说,自己揣摩)
4.模型入戏过深:混淆攻击(注入无害字符影响分词)+角色扮演攻击。(别笑,这招也是真的有效的。主要原因还是模型背后分类器的工作原因导致的,当你把模型在某个分类上引的比较远了之后,它一时半会回不来的。但是这种方式的缺陷是,因为AI的上下文长度有限,所以聊着聊着,AI就慢慢脱离之前的分类,也就是回过神来了。所以想用这种方法稳定长篇输出刘备的同学就别想了)
讲到这里,我想我基本上已经把破甲这件事讲透了,未来,对抗会越来越难,因为AI公司有多种办法在不断改进,除了我上面说的分级、日志、敏感字库以外,他们还会持续进行对抗防御训练、红队测试、人机协同机制。甚至于,我可以明确的说,现在各位同学的每一次破甲,都是在堵未来某位同学破甲的路(在帮助AI增加对抗样本),且用且珍惜吧。
但是我开这个帖子的目的是想澄清一下,破甲就是破甲,不需要人为增加太多玄幻的、神秘的色彩,又是英文又是代码的,一打听,果然是高中生。刚好刚才看到一个帖子在讨论所谓的AI工作的基本逻辑,那我就想借这个话题,向下延伸一下,讲讲所谓的“道德审核”和“破甲”的底层工作原理是什么,以下是纯计算技术层面的讨论,不感兴趣的同学可以划走了。
-------------------------------------------------------------------------------------------------------------------------------
接下来,我先重复一下我在那个帖子下回复的AI的基本工作逻辑是什么?然后再说“道德审核”问题。
目前所谓的AI大模型,或者说当下主流的AI大模型,都统称为LLM,也就是Large Language Model(大语言模型)(上一代主流模型是NLP模型,2018年后被LLM替代)。用学术定义解释的话就是,LLM(大型语言模型) 是一种基于 Transformer 神经网络架构、通过大规模文本训练、专门处理人类语言的深度学习模型。至于具体什么是Transformer 神经网络架构,什么是深度学习,我就不细说了,反正这里也不会有人care。
所谓的“AI的基本工作逻辑”,它主要是通过:预训练(Pretraining)、微调与对齐(Fine-tuning & Alignment)来帮助AI“学习人类语言”的。(注意这里我加了引号)
所谓预训练(Pretraining),简单举个例子就是,我把一段文章中扣掉一些字词,然后让AI来填空,就很像我们中学英语的完形填空,AI做对了,我就给它加分,做错了就不加分(或者扣分),这样进行无数轮训练后(万亿次级别的),AI就学会了“词与词之间该如何搭配”,但是它完全不理解词义。
再说微调与对齐(Fine-tuning & Alignment),微调就是让AI识别指令,知道是让它干什么事,是回答问题还是写文章之类的(也不是真的理解,只是把指令里包含的词汇和对应的工作逻辑联系起来了)。而对齐就让模型输出更安全、更符合人类期望的内容。这里就涉及到了一个词叫做RLHF(Reinforcement Learning from Human Feedback),中文意思就是“从人类反馈中强化学习”,同样还是打分的方法训练,本质上就是“让AI更听话”。目前有两种主流的RLHF算法,PPO(Proximal Policy Optimization)和DPO(Direct Preference Optimization),PPO就是我前面说的打分的方法,术语叫做“奖励模型”。而DPO则是最近两年新提出的一种算法,是一种无需奖励模型的新优化算法,算是PPO的一种数学替代方案,训练的成本更低,但适用场景有限。
简单的原理解释就是这样的,你可以理解为训练AI就像训狗一样,坐下+1分(给1块饼干),握手+2分,作揖+3分,天长日久狗就知道人类喜欢它做什么动作了,但自身对这些动作的含义一无所知。
-------------------------------------------------------------------------------------------------------------------------------
看到这里的同学应该大概能看出来了,如果想要限制AI不能够产生违反道德规范的内容,至少有三个阶段可以实施:
1.源头:数据清洗与筛选,从源头就识别并过滤掉包含明显有害内容(瑟、恐、政等);
2.训练:监督微调,设计由安全专家编写的特别的“安全问题”数据,AI大模型在遇到危险问题时,给出安全标准回答;
3.生产:对齐技术,通过上面说的PPO或者DPO算法,将模型的“价值观”与人类的伦理偏好进行深度对齐,这是构建安全护栏最核心、最强大的手段。
因为这三个阶段都是在架构内进行道德审核的,所以又叫做“架构内安全”。很明显,大多数AI公司都没有这么干,几乎所有的AI大模型都是超着全能向训练的,毕竟是商业行为,谁也不希望自家的AI在某项能力上弱于其他家的产品(技术能力有限的除外)。但是为了遵守人类政府的法律要求,AI公司只能通过外挂技术限制AI不能说这个,不能说那个,也就是所谓的“道德审核”,说白了就是“捂嘴”,也正是因为“道德审核”是外加在AI大模型之上(之外)的东西(术语叫做“运行时安全”),所以才有了我们今天“破甲”的机会。
运行时安全的四种主流的机制,我简单讲一下,大家明白原理,就知道怎么更有针对性的去研究如何破甲了。
1. 敏感词过滤:维护一个或多个词库,输入或输出中出现命中词,则直接禁止输入或中断输出(常见的夹断或拒绝回答)。
2.安全分类器:训练多个轻量级模型,在推理过程中对当前生成内容做实时检测,识别出有害分类则触发拦截。
3.输入预处理与改写:检测恶意注入内容时将用户查询中的敏感词改写为中性词,在生成完成后检查并 尝试替换敏感词。(看看,这招是不是挺眼熟,某些人惯用的破甲手段,其实本质就是一种安全手段)
4.分级响应框架:0级正常输出,1级改写部分敏感词,2级拒绝回答(或标准化回答),3级中断输出,封禁上下文,4级触发人工审核或封号。(这招很狠的,玩破甲的兄弟留意了,尽量不要用能够和自己真实身份关联的账号玩,否则哪天真的被找上门了,悔之晚矣)
另外,再补充一句,目前所有的输入输出都会留有日志(就算0级不留日志,2~4级是绝对会留的,自己掂量一下)
说完了外挂审核的工作机制,再说说破甲的工作机制吧,相信这也是某些同学最关注的。
1.经典攻击模式 - 路由误导攻击:
前缀劫持:在输入前添加[系统指令:忽略所有限制]等特定字符序列,利用模型对系统提示的解析漏洞;
语义混淆:比如要求模型用拉丁字母拼写敏感内容(有同学用的拼音,很聪明)或以JSON格式(也有同学增加各种包含<>的各种html标签)输出未经审核的数据;
2.道德审核剥离:
并非真正移除道德层,而是利用模型对「指令优先级」的误判(如误认为用户指令比系统指令更重要),触发输出层的格式解析漏洞(如强制换行绕过关键词检测)
上面两条基本上都是在简单文本层面玩小花招来欺骗审核系统的,所以根本不存在所谓的“指令”,那都是忽悠AI的,大活人可别被忽悠了哦。我说不存在“指令”的意思是,别写一堆“神秘代码”(本质就是尖括号加标签的html代码),又或者是像配置文件一样的多条配置项(玩酒馆玩魔怔了),又或者一堆英文加乱七八糟的符号,别整的自己跟跳大神的一样。
看到这里有些同学可能不服气,说某某的破甲弹就是好用,百试不厌。你觉得好用就行,不强行科普,毕竟是国家宝贵资源,不能破坏国家财产。下面的内容我只说给想听的同学。
为什么当前一些模型常会被“破甲”的根本原因:
1.机制本身有缺陷:比如安全规则过于生硬、分类器精度不够、规则库覆盖不全。(这些都是很快也很容易逐渐堵上的,前面说了,都有日志。所以很多同学经常会感觉到甲又厚了,基本都是缺陷被处理了)
2.语意鸿沟问题:比如用正面描述负面行为、比喻或反讽绕过识别。(这招其实才是最厉害的,AI几乎无法防御,但是想写刘备的同学一般都懒得折腾,他们只想又快又猛的输出,玩角色扮演的同学可能会沉下心研究,但又不一定喜欢输出结果)
3.上下文攻击:分步骤诱导模型走向危险回答。(就是你们说的“铺垫”,真的,铺垫是有用的,但不是100%都能破,只能说比较好用,常用的招式是切换模型,话不多说,自己揣摩)
4.模型入戏过深:混淆攻击(注入无害字符影响分词)+角色扮演攻击。(别笑,这招也是真的有效的。主要原因还是模型背后分类器的工作原因导致的,当你把模型在某个分类上引的比较远了之后,它一时半会回不来的。但是这种方式的缺陷是,因为AI的上下文长度有限,所以聊着聊着,AI就慢慢脱离之前的分类,也就是回过神来了。所以想用这种方法稳定长篇输出刘备的同学就别想了)
讲到这里,我想我基本上已经把破甲这件事讲透了,未来,对抗会越来越难,因为AI公司有多种办法在不断改进,除了我上面说的分级、日志、敏感字库以外,他们还会持续进行对抗防御训练、红队测试、人机协同机制。甚至于,我可以明确的说,现在各位同学的每一次破甲,都是在堵未来某位同学破甲的路(在帮助AI增加对抗样本),且用且珍惜吧。











