写点什么

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 的效果也绝没那么夸张)。


2019-09-11 08:003414

评论 1 条评论

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

一对一直播系统源码——如何只需三步搭建

开源直播系统源码

软件开发 一对一直播源码 直播系统源码 一对一直播系统

一文看懂流程挖掘是如何工作的

望繁信科技

完整实现-通过DelayQueue实现延时任务

字母哥哥

Java 架构 并发编程 后端

toB行业知识管理的重要性

Baklib

怎样设计一个协助中心来帮助你的顾客?

Baklib

开源流式湖仓服务 Arctic 详解:并非另一套 Table Format

网易数帆

大数据 iceberg Hudi Arctic

这么好用的接口工具,请允许我油腻一次!

Liam

Java 开发 Postman API 开放api

前端培训机构毕业后在一线城市该注意什么

小谷哥

堡垒机可以管理哪些网络资产?咨询电话多少?

行云管家

网络安全 数据安全 堡垒机

云堡垒机和软件堡垒机哪个好?区别是什么?

行云管家

网络安全 数据安全 堡垒机 云堡垒机

学术加油站|面向HTAP数据库的基准评测工具研究进展

OceanBase 数据库

延时任务-基于netty时间轮算法实现

字母哥哥

Java 架构 后端 Netty

手把手地教你如何建立最好的知识管理体系

Baklib

[极致用户体验] 2行代码,让你的UI适配移动端、PC端,快来收藏

HullQin

CSS JavaScript html 前端 8月月更

超全面!字节最新发布22年秋招200道Java面试题(含答案)

Java面试那些事儿

Java 编程 面试 后端 架构师

低/无代码的发展将显著改变银行开发生态

易观分析

代码 银行

高性能实战Alibaba Sentinel笔记,深度还原阿里微服务高并发方案

小柴说Java

Java 编程 架构 面试 后端

StarRocks 技术内幕:向量化编程精髓

StarRocks

新手指南|帮助中心应该包含哪些内容?

Geek_da0866

零基础如何通过前端技术培训学习

小谷哥

证照之星XE重磅发布 制作证件照从未如此简单

懒得勤快

大数据软件开发培训中心有哪些?

小谷哥

数据透视表上线!如何在纯前端实现这个强大的数据分析功能?

葡萄城技术团队

前端

爆肝!阿里大佬熬夜38天整合的这份Spring Security源码手册我粉了

Java全栈架构师

Java 程序员 面试 程序人生 springsecurity

非科班出身,开发五年之后我对编程有了新的领悟

Java永远的神

Java 编程 程序员 程序人生 计算机

重磅揭秘!10分钟10TB数据跨云、跨地域传输的技术实践

星汉未来

云原生 数据迁移 东数西算 星汉未来

在北京大数据程序员如何立足?

小谷哥

简单WiFi控制小车系统(树莓派+python+web控制界面)

Five

树莓派 8月月更

前端培训就业后的程序员就业方向有哪些?

小谷哥

题目新颖,内容全面!阿里巴巴又一Java面试神册开源!

Java永远的神

Java spring 程序员 面试 JVM

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