NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

7 个月后,GPT-2 的“假新闻威胁论”被证明是虚惊一场

  • 2019-09-11
  • 本文字数:2909 字

    阅读完需:约 10 分钟

7个月后,GPT-2的“假新闻威胁论”被证明是虚惊一场

今年年初,OpenAI 推出了当时号称“最强 NLP 模型”的 GPT-2,该模型可以生成连贯的文本段落,刷新了 7 大数据集基准,并且能在未经预训练的情况下,完成阅读理解、问答、机器翻译等多项不同的语言建模任务。

然而,由于 OpenAI 没有将之开源的计划,很快被技术社区声讨,因为这违背了 OpenAI 作为一个开放的、非盈利技术组织的初衷。而 OpenAI 方面给出的理由是:“该模型或许会被一些人滥用,制造假新闻等不实消息,从而引发更加恶劣的影响。”


随着讨伐声越来越高,OpenAI 不得不松口,决定分批次放出该模型的开源代码,这才平息了这场风波。有网友在认真研究并使用了 GPT-2 之后发现:OpenAI 紧张过度了,因为这个模型并没有想象中那么危险


在我看来,现在的情况已经相对明确:GPT-2 并不像 OpenAI 想象的那么危险。


其 774 M 版本已经出现了一段时间,虽然其中的参数只有完整版的一半,但我认为两者之间的差别还不至于被称为质变。毕竟,OpenAI 的分阶段发布计划已经给我们带来了两次增量提升——从 124 M 到 355 M,再到如今的 774 M。每次加倍后的差异都只能用“微妙”来形容,而且体现出的优点与缺陷也基本没有变化。


今年以来,我花了不少时间鼓捣这些模型,对模型进行微调也成了一种新的爱好。具体来讲我尝试:


  • 针对各种不同的文本进行微调。

  • 针对多种不同文本的混合体进行微调(没啥大意思,模型会自主决定从任何给定的样本当中提取哪种文本书写风格,然后一直坚持下去)。

  • 尝试利用不同的优化器与学习速率进行微调。

  • 尝试使用自定义编码(常用标签->单一非英文字符),以便在对网页进行微调时将更多文本纳入容器当中。

  • 通过重复将输出结果作为上下文输入(即提示)尝试生成更长的文本。

  • 将所有采样参数(包括温度、top-k/top-p/皆不)与以上任意采样参数进行比较。

  • 读取大量采样输出,同时监控微调工作,从而为 @uploadedyudkowsky 等提供素材。


到目前为止,我觉得自己已经对 GPT-2 采样文本的整体质量与特性有了比较明确的感受。总体来讲,这套模型擅长各种有趣的生成方向,但其中最不擅长的,反而是人们原本担心的生成虚假信息或者其它不良内容


它最擅长的是小型文本生成——其成果确实令人感到不安,特别是在语言风格方面,完全符合我对于逐字、逐句、逐段内容设定的“良好写作”要求。但是,它在较大规模的行文结构上表现较差,比如很难长期保持统一的主题或者(特别是)利用多个句子中的子句进行结构化论证。


直观来看:GPT-2 只能从文本当中学习,因此在需要引入其它外部世界模式的领域(因为我们在书写文字时,总会或多或少地引入自己对于真实世界的理解),它与人类的差距最大。但在风格倾向纯粹体现在语言之内,特别是书面语言之内时,GPT-2 的表现则与人较为相似。


再来讲讲不那么直观的结论。GPT-2 生成的样本中往往缺少某些看似非常简单且可预测的真实文本特性。举例来说,当生成类似小说的文本时,它往往无法跟踪特定场景中包含哪些角色(例如,角色 A 曾在当前场景中说话,但当角色 B 提到角色 A 时,却表现得好像后者并不在场景之内)。在非小说类文本当中,GPT-2 则倾向于通过重复一组关键短语来维持“主题”,但由于未能注意到连续性因素,其往往会对该主题做出截然不同甚至相互矛盾的断言。


我认为其中一部分问题源自 GPT-2 在初期训练过程中采取的具体方法——换言之,预测真实文本与生成伪造文本并不完全是同一回事。其训练目标只关注对训练文本做出稳定的用词分布判断,但却并不重视以稳定的良好方式判断自己预测出的用词分布结果。(请注意,其预测出的用词分布与真实文本也并不相同。)


事实上,将预测分布中的样本馈送回 GPT-2 进行进一步预测,即会产生令人印象深刻的“生成文本”——这更像是个有趣的事故,而非真正的优化目标。如果要进一步提升它的伪造能力,可能需要更明智地选择抽样方法,而完全随机的抽样仍有可能带来垃圾一般不知所云的输出内容。


即使采用 top=p 等良好的采样方法,GPT-2 的采样稳定性同样偏弱;当我们试图通过重复“自我提示”来生成比上下文窗口更长的文本时,我注意到一种现象:文本质量通常会在某一点之后立即呈现出断崖式下降。这些结果完全有违语言习惯,而且在记录中充斥着大量异常的段落。我的假设是,这就像是识别熊猫/长臂猿这类对抗性实例:样本具有 GPT-2 能够识别的高密度特征,而这些特征最终会在一系列线性子空间中朝着相同的方向推进(例如在 tramsformer 当中采用非饱和激活,即 gelu),并导致模型偏离训练歧管。


为了再次收敛,模型确实能够在某些特定的短语、句子甚至段落当中偶尔带来不错的生成结果,但其样本在仍然很难在短篇或者较长篇幅的范围内保证全局一致性,且几乎不可能将其中的表述与现实世界对应起来。(这种状况再配合较为出色的写作能力,就构成了一种奇妙的「内涵笑话」风格:它好像是在讲一些非常隐晦但又有趣的小故事……只有特别聪明的人才能完全看懂。)


我的第一反应是,这套模型应该无法被用于生成伪造信息。让它“讨论某事”或者“编造某事”其实非常困难,相比之下让它采用某些特定风格或者类型的写法倒是比较容易。


实际情况比这还要微妙。这套模型非常擅长编写看起来类似于新闻报道的故事,大概是因为它在训练过程中接触过大量素材吧;在 OpenAI 发布的大量无条件样本中,类似的新闻文本占主导比例。因此,假设我们能够找到一种有效的方法将虚假事件馈送至原始模型当中,它也许真的能够利用特定主题捏造出令人信服的假新闻。


这正是“GROVER”创造者的目标,他们整理出了这样一套包含大量自定义素材的训练语料库。简单来霁,他们训练出一款 transformer,能够通过结构化方式理解新闻标题与故事内容之间的关系。在此之后,他们对正文进行采样,并循环回来以生成足以替换初始标题的新标题。


基本上,他们的成果允许我们从 Breitbart 或者 Infowars 等网站上提取标题,并以同样的风格编写出类似于《纽约时报》报道的“真实新闻”,最后再循环回来用“真实新闻”风格重写标题。据我估计,MTurkers 随后会对结果文本进行评估,从而确保其比原始文本更有说服力。


这确实是种可怕的现象,而且模型确实有能力操纵新闻主题。在简单的文本范畴之内,这样的操纵确实很难被人们发觉。另一方面……现在是 2019 年,特朗普担任美国总统,在这样一个疯狂的时代,Breitbart 风格的假新闻跟所谓的真新闻还有什么区别吗?有些人甚至认为接种疫苗对健康有害,这样的背景下,文风能不能跟《纽约时报》对得上真的重要吗?


这种技术确实能够给恶意行为者带来帮助,但这种帮助似乎没多大必要。很多人甚至习惯于单纯根据社交媒体上的文章标题进行转发,而根本就懒得点开看一眼;相比之下,真正有严谨精神的人们则更关注内容的真实来源,他们也不可能简单被文风这种因素骗倒。


最后,我们还得承认一点,恶意人士并不是科研工作者,他们根本就不可能下大力气研究模型训练。GROVER 是一套由学者创建,供其他学者进行威胁建模实践的方案。因此,在 GPT-2 真正转化一键式生成工具之前,真正的伪造者恐怕根本就没兴趣加以探究。至少,我是从来没有听说过那么有科研精神的骗子(而且相信我,我试过很多次,就算是在最擅长的领域 GPT-2 的效果也绝没那么夸张)。


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2019-09-11 08:002960

评论 1 条评论

发布
用户头像
首先非常感谢您的分享,但是这种还是应该给出实际的例子比较直观(我之前也试过四百多那个模型,一言难尽)
2019-09-11 09:25
回复
没有更多了
发现更多内容

JavaScript是解释型语言--V8、JIT,Java重点知识大全

JVM调优资料

Java 程序员 面试 后端

Java内联函数,SpringBoot集成Redis集群

Java 程序员 面试 后端

Java多线程入门篇,GitHub标星1w的Java架构师必备技能

Java 程序员 面试 后端

oeasy教您玩转vim - 4 - # 深入帮助

o

手撸二叉树之路径总和

HelloWorld杰少

数据结构与算法 8月日更

Java反射机制的那些事儿,Java基础必背知识点

Java 程序员 面试 后端

java学习-数据类型和运算符,Java社招面经分享

Java 程序员 面试 后端

Druid 集群方式部署 —— 操作系统和发行版本

HoneyMoose

【LeetCode】三数之和Java题解

Albert

算法 LeetCode 8月日更

10 分钟从 HTTP 切换到 HTTPS,保证个人博客安全性!

沉默王二

个人博客

DAPP智能合约系统源码开发

获客I3O6O643Z97

智能合约 DAPP智能合约交易系统开发

Java个人学习之旅(第十天),黑马程序员Java全套视频

JVM调优资料

Java 程序员 面试 后端

思想的懒惰

箭上有毒

8月日更

Java多态实现原理,分布式系统中ACID和CAP有什么区别

Java 程序员 面试 后端

Java学习路线图(如何快速学Java,Java算法题面试

Java 程序员 面试 后端

Druid 集群方式部署 —— 选择硬件

HoneyMoose

Java 集合容器篇面试题(上,Java中高级程序员进阶

JVM调优资料

Java 程序员 面试 后端

Java并发编程(实战(1),真香警告

Java 程序员 面试 后端

oeasy教您玩转vim - 5 - # 插入模式

o

Druid 集群方式部署 —— 从独立服务器部署上合并到集群的硬件配置

HoneyMoose

oeasy教您玩转vim - 6 - # 保存修改

o

Vue进阶(十):NPM 管理 node.js 依赖

No Silver Bullet

Vue npm nodejs 8月日更

Java-进阶:集合框架2,熬夜整理华为最新Java笔试题

JVM调优资料

Java 程序员 面试 后端

Java中高级核心知识全面解析,张孝祥Java基础视频教程

Java 程序员 面试 后端

JAVA学习(3,黑马Java全套百度云

Java 程序员 面试 后端

Java已死,有事烧纸,字节跳动历年校招Java面试真题解析

Java 程序员 面试 后端

netty系列之:netty中的Channel详解

程序那些事

Java Netty nio channel 程序那些事

Java中高级核心知识全面解析(4),Java开发中遇到最难的问题

JVM调优资料

Java 程序员 面试 后端

Fil值得投资吗?Ipfs未来价值一万一枚?

区块链 分布式存储 IPFS fil

kubernetes入门:使用kubeadm搭建node,楼主亲测

小鲍侃java

8月日更

【Flutter 专题】76 图解基本 TabBar 标签导航栏 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

7个月后,GPT-2的“假新闻威胁论”被证明是虚惊一场_AICon_nostalgebraist_InfoQ精选文章