今天给大家带来一个非常有意思的自然语言处理(NLP)项目,闲聊机器人(Chatbot)。实际上,随着2018年谷歌的BERT预训练模型横空出世,并在NLP 11项目测试中登顶之后,预训练模型就一直是NLP领域中的屠龙宝刀,所到之处片甲不留。今天我们就来用这个大*器做一个有趣的闲聊机器人。
我们使用的代码库为清华大学发布中文对话数据集代码库,https://github.com/thu-coai/CDial-GPT. 该代码库的主要贡献在于提供了一个大规模的经过系统清洗的中文对话数据集,并提供在此数据集上的对话预训练模型。实际上,该对话预训练模型是基于抱抱脸(Hugging face)团队发布的预训练模型库Transformers进行改造而成的。如果不熟悉预训练模型或者Transformers库的同学不用担心,我在后面会用两篇文章来介绍BERT等预训练模型,和Transformers的用法和源码。
话不多说,让我们开始吧!
先做一些准备工作。为了不与其他项目的环境冲突,我们使用anaconda构建一个环境,并进入该环境中
conda create -n CDial-GPT
conda activate CDial-GPT
随后克隆项目并安装依赖。
git clone https://github.com/thu-coai/CDial-GPT.git
cd CDial-GPT
pip install -r requirements.txt
完成环境的构建之后我们就可以正式开始构建对话机器人了。
# 下载对话数据集
wget https://coai-dataset.oss-cn-beijing.aliyuncs.com/STC-corpus.zip
# 将对话数据集解压至data文件夹
unzip STC-corpus.zip -d ./data/
# 下载预训练的模型参数
wget https://coai-dataset.oss-cn-beijing.aliyuncs.com/GPT_LCCC-large.zip
# 将模型参数解压至
unzip GPT_LCCC-large.zip -d ./models/
# 这个步骤花费时间较长,如果想尽早得到一个可用的对话机器人,该步骤可以跳过
python train.py --pretrained --model_checkpoint ./models/LCCD_GPT --data_path data/STC.json
Step 3:与模型进行交互
python interact.py --model_checkpoint ./models/LCCD_GPT
该命令后,我们会进入python的会话窗口,就可以与机器人进行对话了!是不是非常的简单和方便!由于我没有再使用大规模语料再去训练它,所以看起来还是有点傻傻的。不过如果周末无聊的话,也算是一个可以消遣的娱乐活动了
下面是我和这个机器人的聊天记录。没想到居然还是一个萌妹纸!
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved