分享好友 最新动态首页 最新动态分类 切换频道
OpenAI「假新闻」生成器GPT-2的最简Python实现
2024-12-26 15:10

由 OpenAI 推出的文本生成模型 GPT-2 最近引发了人们的广泛关注,这种算法不仅在很多任务上超过了此前的最佳水平,还可以根据一小段话自动「脑补」出大段连贯的文本,并模拟不同的写作风格。它看起来可以用来自动生成「假新闻」。

然而这个 GPT-2 模型内含多达 15 亿个参数,过高的算力要求让大多数开发者望而却步。而且 OpenAI 还曾「出于对模型可能遭恶意应用的担忧,并不会立即发布所有预训练权重。」一时引发机器学习社区的吐槽。

近日,由 Buzzfeed 数据科学家 Max Woolf 开源的「GPT-2 精简版」出现在 GitHub 上。这是一个简单的 Python 软件包,它封装了 OpenAI GPT-2 文本生成模型(特别是它是具有 1.17 亿超参数的「较小」版本)的现有模型微调和生成脚本。此外,这个软件包让我们可以更容易地生成文本,生成一个文件以便于管理,从而允许前缀强制文本以给定的短语开头。

  • 项目链接:https://github.com/minimaxir/gpt-2-simple

文本生成示意

该 Python 包包含以下内容,并对其进行了最小程度的低级更改:

  • 来自 OpenAI 官方 GPT-2 库的模型管理(MIT 许可证)
  • 来自 GPT-2 中 Neil Shepperd fork 的模型微调(MIT 许可证)
  • 来自 textgenrnn 的文本生成输出管理(MIT 许可证)

为了微调,该项目强烈建议你使用 GPU,虽然你用 CPU 也可以生成(但速度会慢很多)。如果你在云端训练,强烈建议你使用 Colaboratory notebook 或带有 TensorFlow 深度学习图像的谷歌计算引擎 VM(因为 GPT-2 模型位于 GCP 上)。

你可以使用 gpt-2-simple 在这个 Colaboratory notebook 中免费用 GPU 来重新训练模型,该 notebook 还演示了这个软件包的其它功能。

Colaboratory notebook 地址:https://colab.research.google.com/drive/1VLG8e7YSEwypxU-noRNhsv5dW4NfTGce

安装

gpt-2-simple 可以通过 PyPI 来安装:

pip3 install gpt_2_simple

你还要为你的系统安装相应的 TensorFlow(如 tensorflow 或 tensorflow-gpu)

使用

将模型下载到本地系统的示例,在数据集上对它进行微调,然后生成一些文本。

警告:模型是预训练的,因此任何微调模型都是 500MB。

import gpt_2_simple as gpt2

gpt2.download_gpt2() # model is saved into current directory under /models/117M/

sess = gpt2.start_tf_sess()

gpt2.finetune(sess, 'shakespeare.txt', steps=1000) # steps is max number of training steps

gpt2.generate(sess)

生成模型的检查点默认在/checkpoint/run1 中。如果你想从该文件夹中加载模型并从中生成文本:

import gpt_2_simple as gpt2

sess = gpt2.start_tf_sess()

gpt2.load_gpt2(sess)

gpt2.generate(sess)

与 textgenrnn 一样,你可以用 return_as_list 参数生成并保存文本供以后使用(如 API 或机器人)。

single_text = gpt2.generate(sess, return_as_list=True)[0]

print(single_text)

如果你想在 checkpoint 文件夹中存储或加载多个模型,可以把 run_name 参数传递给 finetune 和 load_gpt2。

注意:如果你想在另一个数据集上进行微调或加载另一个模型,先重启 Python 会话。

gpt-2-simple 和其它文本生成程序的区别

GPT-2 用来生成文本的方法与 textgenrnn 等其它安装包(特别是纯粹使用 GPU 生成完整文本序列并随后对其进行解码的安装包)使用的方法略有不同,这些方法在没有破解底层模型代码的情况下无法轻易修复。

所以:

  • 一般来说,GPT-2 更擅长在整个生成长度上维护上下文,从而能够有效地生成对话文本。文本在语法上通常也是正确的,并且有适当的大写和较少的打印错误。
  • 原始 GPT-2 模型在大量来源的文本上进行训练,使该模型包含输入文本中看不到的趋势。
  • GPT-2 针对每个请求最多只能生成 1024 个 token(约是 3-4 段英语文本)。
  • GPT-2 在到达特定的结束 token 时无法提前停止。(暂时解决方法:将 truncate 参数传递给 generate 函数,以便只收集文本,直至到达特定的结束 token。你可能想适当地缩小 length。)
  • 较高温度(如 0.7-1.0)能够更好地生成更有趣的文本,而其它框架在温度 0.2-0.5 之间运转更好。
  • 当对 GPT-2 进行微调时,它并不清楚较大文本中文档的开头或结尾。你需要使用定制的字符序列来显示文档的开头或结尾。之后在文本生成中,你可以指定针对开始 token 序列的 prefix 和针对结束 token 序列的 truncate。
  • 通过设置一个可分成 nsamples 的 batch_size,你可以使用 GPT-2 生成并行文本,从而加快生成速度。GPT-2 与 GPU 配合得很好(可以在 Colaboratory K80 上将 batch_size 设置为 20)!

计划工作

注意:除非需求另有规定,否则本项目的范围非常小。

  • 允许用户生成超过 1024 个 token 的文本。
  • 允许用户使用 Colaboratory 的 TPU 进行微调。
  • 允许用户使用多个 GPU(如 Horovod)。
  • 对于 Colaboratory,允许模型在训练期间自动将检查点保存至 Google Drive,以防止超时。

使用 gpt-2-simple 的示例

ResetEra:生成视频游戏论坛讨论

地址:https://www.resetera.com/threads/i-trained-an-ai-on-thousands-of-resetera-thread-conversations-and-it-created-hot-gaming-shitposts.112167/

项目创建者:Max Woolf

基于 GPT-2 的「故事生成器」

GPT-2 强大的模型不仅吸引了众多机器学习从业者的关注,其「脑补」故事的能力也让人们不禁有了很多大胆的想法。为了让更多人能够接触最新技术,另一个开发者 eukaryote 最近还推出了一个新网站:This Story Does Not Exist

链接:https://www.thisstorydoesnotexist.com/

这是一个基于 GPT-2 的文本生成器。在这里,每个人都可以输入一段文字,看看人工智能会给你讲一段什么样的故事,比如:

最新文章
2022351期排列五今天专家预测胆码
2022350期排列五开奖结果是28639,和值上升至28位点,无1路码现身,连号开出23、89,跨度值为7。2022351期排列五今天专家预测胆码:重复号个数:2005351期至2021351期重码表现不算突出,走空的次数共计5期(2005351期、2006351期、2011351
## 三、智能创作助手:作文自动生成器的应用场景
在数字化时代人工智能()的发展已经渗透到咱们生活的方方面面包含教育、娱乐、办公等。今天咱们就来聊聊一款功能强大的作文自动生成器它不仅可帮助学生、教师、作家甚至任何需要写作的人轻松应对各种写作任务这就是——作文自动生成器。随
2021年手机销量排行榜TOP1000,揭秘最畅销手机大热门!
简介:手机销量一直是消费者关注的焦点,2021年手机销量排行榜TOP1000出炉,揭秘了最畅销手机的大热门。本文将围绕这一话题展开,介绍手机销量排行榜的榜单情况,分析畅销手机的原因,并提出一些未来的研究方向。工具原料:品牌型号:苹果i
2025保利虹桥和著(保利虹桥和著)官方网站_百度百科_上海房天下
售楼处样板房已开放!14号线地铁口 全新盘「保利·虹桥和著售楼处电话:400-876-7710【官网】✅✅✅」等待入市!将推约94-128㎡3-4房!保利虹桥和著售楼处电话:400-876-7710【官网】✅✅✅最新消息14号线地铁口 全新盘「保利·虹桥和著售
Centos7 安装Docker管理工具Portainer
已安装Docker并且开启Docker,安装Docker可参见:Centos7 安装 Docker_瘦身小蚂蚁的博客-CSDN博客docker pull portainer/portainer-ce:latest docker volume create portainer_datadocker run -d -p 8000:8000 -p 9000:9000 --
2023百度推广报价(2021百度推广价格价目表)
大家好,今天小编关注到一个比较有意思的话题,就是关于2023百度推广报价的问题,于是小编就整理了4个相关介绍2023百度推广报价的解答,让我们一起看看吧。2023年乙醇汽油全国开始使用吗?乙醇汽油2023年要普及吗?2023云网专项营销加油怎
2022-12-23:portainer是docker的web可视化工具。如果根据docker部署去写yaml,默认local是k8s,而不是docker,这不符合需求,需要修改yaml。请问部署在
Portainer是一个轻量级的管理UI,可让您轻松管理不同的Docker环境(Docker主机或Swarm集群)。 Portainer的意图是易于部署和使用。 它由一个可以在任何Docker引擎上运行的容器组成(可以部署为Linux容器或Windows本机容器,也支持其他平台
2020年度5G手机好评榜出炉,第一名意料之外,华为仅排第六
不过在2021年刚开始,国内知名评测机构安兔兔就统计出了另外一项榜单——2020年12月份安卓手机的好评榜。在这份好评榜单当中我们可以看到很多熟悉的品牌,小米、荣耀、华为以及三星等等。不过让很多人倍感意外的是,这次榜单中的第一名出乎
26岁OpenAI举报人自杀:揭示AI语言模型训练黑幕引发社会关注
ChatGPT自发布以来,吸引了大量用户,但是与此同时,却也引发了各种版权诉讼。这些诉讼主要来自于那些认为自己的创作被不当使用的作家、记者和开发者。包括《纽约时报》等多家媒体公司在内,自2022年发布以来已经对OpenAI提出了多次法律挑
360手机清理大师免费版 v8.0.0
360手机清理大师免费版破解版操作简单易上手,可以一键清理手机上的垃圾文件,轻松解决手机空间不足问题。360手机清理大师免费版破解版具有手机加速、微信清理、短信清理等功能,满足不同用户的清理需求哦,软件是免费使用的,实用性超高的
相关文章
推荐文章
发表评论
0评