坐在礁石上的裸男

礁石有点咯。

教你如何在自己的电脑上运行使用GPT-2(2020.07)

"GPT-2的开发者把训练好的模型和软件都公开上传到了GitHub上,并附上了使用手册,任何人都可以下载使用。我跟着这个手册和油管上的几个教程视频,花了整一下午的时间搞定了GPT-2的下载和安装,其实下载安装的过程并不复杂,如果你对你的英语和编程水平足够自信,可以直接参考OpenAI给出的的DEVELOPERS.md文档。"

#1 下载GPT-2

你可以直接访问https://github.com/openai/gpt-2下载GPT-2的压缩包,也可以通过git命令在命令栏输入如下git命令来下载GPT-2。如果你不明白git命令是什么,那建议直接用下载压缩包的方式下载。

git clone https://github.com/openai/gpt-2.git&& cd gpt-2
两种下载方式得到的文件是一样的


#2 安装Python

运行GPT-2必须使用64位的Python 3,如果你的Python是32位或是Python 2,那你必须卸载并重新安装Python3 64-bit。如果你没安装过Python,那么可以直接访问Python官网的下载界面下载安装。

Windows:python.org/downloads/windows/

Mac:python.org/downloads/mac-osx/

如果你在接下来的安装过程中遇到问题,并且提示和Python版本有关,那建议你安装版本号为3.7.8,64位的Python(Python 3.7.8 64-bit)。我就是用这版Python成功安装运行的GPT-2。


#3 安装Tensorflow和Python模组包

首先,打开电脑的命令栏,在Windows系统叫cmd,在Mac系统叫terminal或者终端。

cmd和终端长这个样子的

然后在命令栏通过cd命令(change directory)将文件夹地址改为你存放GPT-2文件的位置,比如的GPT-2文件夹在桌面,那就cd desktop/OpenAI_GPT-2。你的GPT-2文件夹在哪里,就在cd后面输入哪个地址。(如果你的文件夹放在c盘以外的盘,自行搜索‘如何cd到其他盘‘,这里就不跑题赘述了。)

完成后,首先是安装Tensorflow。Tensorflow是谷歌的人工智能开源软件库(Open Source Software Library),如果你想接触人工智能,那么必然会用到Tensorflow。复制以下命令并在命令栏里执行。成功的话,应该如下图所示:

pip3 install tensorflow==1.13.0rc1
成功安装Tensorflow 1.13.orc1

然后复制执行以下命令安装Python模组包。注意,如果你的命令栏的地址不是GPT-2所在的文件夹的话,是无法成功安装的。成功的话如下图所示:

pip3 install -r requirements.txt
成功安装运行GPT-2所需的Python模组包

注:

在GTP2开发者所写的安装手册中,提示要安装Tensorflow 1.12.0,但实际上Tensorflow已经不支持1.12.0版本的下载了,如果根据手册中的指示下载,会得到以下的错误提示。

提示找不到Tensorflow 1.12.0。ERROR: No matching distribution found for tensorflow==1.12.0

我的解决方法是,根据错误提示中给出的版本号,顺利安装了Tensorflow1.13 Orc1。后来顺利在1.13 Orc1中运行了GPT-2。


#4 下载GPT-2的模型(GPT-2的大脑)

GPT-2分别有四个等级的模型可供下载:124M,355M,774M和1558M。数字越大,表示能力越强,生成出的文本也就越可信。你可以只下载最强的1558M,或者也可以全部下载来比较一下差距。

下载也很简单,在命令栏输入python3 download_model.py + 模型号。(python3也可能是py,取决于你的Python版本)。

python3 download_model.py 1558M

记住这些模型一定要下载到GPT-2的文件夹中,否则GTP2找不到模型是无法运行的。

下载训练好的GPT-2模型


#5 让GPT-2跑起来!

OpenAI的开发者公布在GitHub的文件中,给出了两种运行GPT-2的方式。一种是让GPT-2自由发挥,想写什么就写什么;另一种是让GPT-2根据你给出的上文,去写下文。

首先确认好你的命令栏打开的是GPT-2的文件夹,接下来就可以指挥GPT-2帮你写文章了。

想要让GPT-2自由发挥,在命令栏输入:

python3 src/generate_unconditional_samples.py

如果想让GPT-2根据上文写下文,在命令栏输入:

python3 src/interactive_conditional_samples.py--top_k 40 

当命令栏提示‘ModelPrompt >>>’并且等待输入,你就可以写一段话或者文章,然后回车输入,等上一分钟GPT-2就会根据你给出的上文,写出一份下文。


#6 GPT-2的几个可调参数

用txt文档或者代码编辑器(如果你有的话),编辑src文件夹下的interactive_conditional_samples.py 或者 generate_unconditional_samples.py文件可以细微调整GPT-2的输出方式。(建议先备份文件再修改)

程序中的可调参数

model_name= ‘选择使用模型’,程序默认使用124M的模型,想使用更高级的模型,只要改成355M,774M或1558M就可以了。

nsamples= 文章输出数量,在这里输入几,GPT-2就连续产出几篇文章。

temperature= 文字的随机性,数字越高,文字的随机性越高,反之亦然。

top_k = 参考基量,默认数值为40,意思是GPT-2会以每40个单词为基础去计算生成下文。


原文在7月26号发布于我的微信公众号TIANCI SAYS,欢迎关注!


喜歡我的文章嗎?
別忘了給點支持與讚賞,讓我知道創作的路上有你陪伴。

CC BY-NC-ND 2.0 版權聲明
1

看不過癮?

一鍵登入,即可加入全球最優質中文創作社區