2021年6月17日

人工智能分类模型能否检测人工智能生成的内容?

人工智能(AI)模型生成的内容数量正以惊人的速度增长,这使得手动查看所有内容变得困难。这些内容有许多不同的格式,文本是最常见的。但如果你迄今为止阅读过任何人工智能生成的文本,那么大部分内容显然都是毫无意义的,而且经常出现很幽默的然而,人工智能领域和机器学习(ML)的子学科发展非常迅速。

最近,用数万亿单词参数化的模型生成的文本不仅具有改进的上下文,而且具有一致性。这些高级模型在检测哪些内容是由人类作者生成的,哪些内容是人为生成的时,带来了真正的挑战。AI能检测AI生成的数据集吗?

在本文中,您将使用一些标准的ML技术构建一个简单的模型,将文本分类为人工文本或人工文本:

  1. 创建一个人工智能生成的数据集,并获得一个人工生成的数据集
  2. 训练分类算法,将人工智能生成的内容与人工生成的内容分离,并运行分类算法
  3. 针对更高级的人工智能生成的内容测试模型,并找出人工智能是否检测到人工智能文本

最后,当涉及到智胜人类智能时,您应该对目前的自动化工具有一个良好的感觉!

在开始之前:在Python环境中安装AI vs Humans

要跟随,您可以安装人工智能vs人类Python环境它包含Python 3.8和您需要的所有包。

下载运行时

为了下载这个随时可用的Python环境,您需要创建一个188bet金宝搏备用帐户。只需使用你的GitHub证书或你的电子邮件地址注册。注册是容易的,它解锁ActiveState平台的许多好处为您!188bet金宝搏备用

或者你也可以用我们的国家的工具安装此运行时环境。

适用于Windows用户,在CMD提示符下运行以下命令,自动下载并安装我们的命令行、状态工具和人工智能vs人类运行时间进入虚拟环境:

powershell-Command“&$([scriptblock]::Create((新对象Net.WebClient).DownloadString('https://platform.activestate.com/dl/cli/install.ps1“)-激活默认比萨饼团队/AI对人类”

适用于Linux用户,运行以下命令自动下载和安装我们的命令行、状态工具和人工智能vs人类运行时间进入虚拟环境:

sh<(旋度-qhttps://platform.activestate.com/dl/cli/install.sh)--激活默认披萨团队/AI对人类

1–创建人工智能生成的数据集

对于此任务,我们将生成两个数据集。

第一个数据集可以从作者编写的现有短篇小说集生成BoredHumans的故事发电机,这是一个在线机器人使用马克斯·伍尔夫的GPT-2(第二代“发电预培训变压器”,通过只有124M超参数)来创作短篇小说。您可以将GPT-2模型看作是下一个词预测器换句话说,经过训练的数据模型猜测下一个将是哪个单词,通过一次生成一个单词来有效地创建一个故事。GPT-2背后的语言建模还包括一些试图保持上下文和连贯性的技术。您可以检查这一点图解指南更好地理解模型

要创建数据集,我们只需调用在线bot(可免费使用)一千次,然后将结果保存为简单的CSV:

路径=“./data/bot_stories.csv”异步的def获取机器人故事():异步的具有aiohttp.ClientSession()作为会议:对于数字在里面范围11000):故事链接=“https://boredhumans.com/api_story.php”异步的具有session.post(故事链接)作为职责:故事=等候响应文本()bot_st_file.write (str(数量)bot_st_file.write ('|'bot_st_file.write(story.replace(\n''))bot_st_file.write (\n如果(os.path.isfile(路径)==错误的):bot\u st\u文件=开放(一),“一个”loop=asyncio.get\u event\u loop()循环。运行\u直到完成(获取\u bot\u stories())

因为我们不知道为了训练BoredHumans的故事生成器,给了它哪些文本样本,所以我们将使用其他一些随机的——但人类写的——故事作为这个实验的对应内容。Kaggle.com有一个小数据集,包含了来自古腾堡计划的一千篇短篇小说。这个文件不是完全干净的,但对于我们的目的来说已经足够好了:

#读取下载为bot故事的文件df_bot = pd.read_csv (“./data/bot_stories.csv”标题没有一个9月'|'名字=[“书号”“内容”])df_bot.drop_duplicates (原地符合事实的df_bot [“人类”] =错误的#从project Gutenberg读取文件df_human=pd.read_csv(”。/数据/ stories.csv 'df_人[“人类”] =符合事实的df_human.head ()#连接这两个文件data=pd.concat([df_bot,df_human])数据=洗牌(数据)data=data.reset\u索引(下降符合事实的数据删除([“书号”],1原地符合事实的data.drop\u重复项(子集=[“内容”])data.dropna ()

上面的代码片段:

  • 读取两个数据集并连接它们
  • 洗牌数据
  • 删除书号栏

这将给我们提供大约两千个故事,其中还包含一个名为人类,这是一面旗帜,让我们知道这个故事是不是由人类写的。

下一个代码段应用了一些标准转换,以便更好地培训我们的模型,包括:

  • 将文本转换为小写字母
  • 删除标点符号
  • 删除stopwords(即。,单词s that don’t add much meaning to a sentence and can be safely ignored)
nltk.download (“停止语”停止= stopwords.words (“英语”数据(“内容”]=数据[“内容”].申请(λx:害处())数据(“内容”]=数据[“内容”].str.replace('[{}]'.format (string.punctuation),''数据(“内容”]=数据[“内容”].str.replace(\n''数据(“内容”]=数据[“内容”].str.replace(开始介绍),''数据(“内容”]=数据[“内容”] .str.replace (end_intro,''数据(“内容”]=数据[“内容”].申请(λx' '.join([word对于单词在里面x、 拆分()如果单词在里面(停止))))

2–训练a分类模型

我们将训练一个简单的分类算法,以确定文本是人为编写的还是人工生成的。但这意味着我们需要将这些单词转换为可以作为逻辑回归的一部分进行数值评估的内容。最简单的方法是计算术语频率逆数据频率(TD-IDF)数据集中每个单词的分数。这将为每个单词生成一个数字,表示该单词在整个数据集中的重要性。普通单词的分数较低,但不寻常单词的分数较高,被认为更重要。

这种方法虽然过于简单,但速度快且脏到足以生成一个语言模型,该模型可用作分类任务的输入TFIDF变压器

管道([(“vect”,CountVectorizer()),“tfidf”,tfidftranformer()),“模型”,logisticsregression())])#模型拟合型号=管道安装(X\U系列、y\U系列)预测= model.predict (X_test)打印准确性:{}%”.格式(圆形的(accuracy_score (y_test、预测)*1002)))

在上面的代码片段中,我们创建了一个文本处理管道,它使用CountVectorizer和TfidfTransformer来适应LogisticRegression模型。在60/40分割的数据下,准确率超过95%。评估分类模型的常用方法是打印混淆矩阵,它显示正确标记的测试与错误标记的测试的数量:

混淆矩阵

混淆矩阵仅显示11个错误标记的样本,其中:

  • 9人工智能生成的故事被认为是人类生成的
  • 2个人工生成的故事被认为是人工智能生成的

这些结果令人信服,并清楚地表明,与人类编写的内容相比,GPT-2生成的内容很容易被识别为机器编写的内容。

3-Humans vs GPT-3

GPT-3是用于创建基于文本的内容的最新一代人工智能。与GPT-2相比,它提供了显著的高级功能:

GPT-2 GPT-3
参数 15亿 1750亿年
48 96
维向量 1600 12,888
上下文窗口 1024令牌 2048令牌

但更好的能力并不一定会转化为所有任务的更好结果,所以让我们检查我们的模型:

  • 三个真实的短篇故事摘自网站美国文学
  • 3个使用GPT-3的ai生成故事:
    • 这本书是由卫报
    • 两个来自格温·布兰温GPT-3创意小说网页,试图重新构思和改写沃尔特·惠特曼的一首诗,一个来自约翰·麦克雷

在对文本应用与之前相同的转换后,我们可以对新数据集运行分类:

后果

在这种情况下,我们得到4/6 = 66%的准确率。结果比我们将模型应用于GPT-2生成的内容时糟糕得多,这突显出AI在创造更多类似人类的内容方面取得了多么大的进步。

结论:人工智能文本vs人类文本

GPT模型不断进步。2019年2月发布时,GPT-2的功能是GPT-1的十倍(以参数数量衡量),而仅15个月后发布的GPT-3的功能是GPT-2的100倍。以这种速度,人工智能生成的内容在短短几年内将无法与人类内容区分开来。

但目前还没有失去一切。哈佛大学约翰·保尔森工程与应用科学学院(SEAS)和IBM研究小组的研究人员建造了巨型语言模型试验室(GLTR),它可以对人工智能生成的文本进行法医学分析。虽然它并不完美,但它的逐字分析为个体文本能够可靠识别提供了良好的基础。

当人类与单个文本交互时,我们都可以运用我们的常识和事实检查能力来防止被此类内容愚弄,即使使用经过数十亿样本和超参数训练的高级模型生成的文本仍然难以通过编程方式检测。不幸的是,这对Twitter、Facebook、Instagram等内容平台产生了深远的影响,这些平台可能很快就会通过立法来监控内容。人类监控器还无法处理人类生成的帖子,更不用说人工智能生成的帖子可能产生的数量了。虽然基于算法的内容检查器将继续有用,但它们并不是我们在失败尝试中看到的银弹监控仇恨言论

  • 下载我们的人工智能vs人类Python环境看看你能否创建一个模型,有效地保持人工智能生成的内容的可识别性。
  • 这个例子的完整代码可以在github

人工智能vs人类运行时

使用ActiveS188bet金宝搏备用tate平台,您可以在几分钟内创建您的Python环境,就像我们为这个项目构建的环境一样。你自己试试吧或者了解更多关于它的帮助Python开发人员的工作效率更高

推荐阅读

AI会拯救我们吗?请使用本熊猫数据分析教程来了解。

伯特vs厄尼:自然语言处理革命

尼古拉斯·博霍克斯

尼古拉斯·博霍克斯

Nicolas Bohorquez (@Nickmancol)是该公司的数据架构师Merqueo.他拥有复杂经济系统数据科学硕士学位,主修软件工程。此前,Nicolas曾在几家初创公司的开发团队中任职,并在美洲创建了三家公司。他热衷于对复杂性建模,并利用数据科学来改善世界。