系列目录:
Seq2Seq Chatbot 聊天机器人:基于Torch的一个Demo搭建 手札
深度学习(BOT方向) 学习笔记(1) Sequence2Sequence 学习
深度学习(BOT方向) 学习笔记(2) RNN Encoder-Decoder 及 LSTM 学习
@MebiuW
之前在微博爱可可那里看见一个用Seq2Seq做的聊天机器人,正好下来跑一下代码研究研究。。所以有了这篇手札
这篇手札相对完整,即便你环境没什么也能跑
特别说明:我不用Torch了,代码也不是我的,仅仅只是记录,如果有问题也不用问我,我不了解了,我随后应该会来一个基于Tensorflow的,大家请期待吧。。这个有问题,问了我也真的不知道。。sorry,不用留言或者微博私信了
安装Torch,安装官方的说法,使用git克隆代码后进行安装。
默认安装在了主目录的torch文件下,大家可以根据自己的需求进行更改,安装需要联网下载依赖,还是需要耐心等待下的。
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; bash install-deps;
./install.sh
安装完成后,需要将torch添加进入自己的bash目录,挑选下面一个命令执行就好
# 如果使用Linux和Bash执行这个
source ~/.bashrc
# 如果是Linux和Zsh
source ~/.zshrc
# ****然后再执行这个
source ~/.profile
如果安装成功,那么在命令行终端输入
th
注意这里直接使用了torch的安装地址,如果你之前安装的地址不一样,那么记得修改一下luarocks前面的地址
sudo ~/torch/install/bin/luarocks install nn
sudo ~/torch/install/bin/luarocks install rnn
sudo ~/torch/install/bin/luarocks install async
接下来克隆源代码和语料,注意自己提前选择好目录
git clone --recursive https://github.com/rustcbf/chatbot-zh-torch7 #代码
git clone --recursive https://github.com/rustcbf/dgk_lost_conv #语料
git clone --recursive https://github.com/chenb67/neuralconvo #以上两个在此源码进行改进,可作为参考
同时根据我运行源代码,有一些python依赖是之前的人没有写到的,可能需要执行如下的代码:
sudo pip install --upgrade chardet
在语料dgk那个目录,将语料解压缩
unzip dgk_shooter_min.conv.zip
然后进入到代码目录(chatbot-zh-torch7)
修改如下的文件
vi cornell_movie_dialogs.lua
将第18行 xx.conv那个地址,改成刚刚解压的那个conv地址,这个是语料
然后还是在代码那个目录运行
th train.lua
我使用虚拟机跑的,还是要等一下的,有一次跑了8分钟提示内存不足(1.8G),然后加到3GB去跑了也失败了,然后就换了一个物理机(这个就高配了 64G内存)重新配置了一下,也是提示内存不足就挂了。。我惊呆了。
所以请用如下的参数训练(如果你只是用CPU 做一个Demo):
th train.lua --dataset 20000 --hiddenSize 100 &
训练一共30轮,耗时非常长,我给的那个参数应该1个小时多能跑完,如果是按照原文的参数,我这里要400个小时附近(50000 dataset 1000 hiddensize)
首先验证是否成功
th eval.lua
如果没有什么提示,那么就是成功了,那么接下来我们来看下运行效果
修改eval.lua 在末尾增加如下的代码
print("\nType a sentence and hit enter to submit.")
print("CTRL+C then enter to quit.\n")
while true do
io.write("you> ")
io.flush()
io.write(say(io.read()))
end
因为我的训练参数给的很少,只是为了看一个Demo,所以比较傻。。。有条件的人可以用cuda加速看看,看看完整训练出来是什么样子?
特别说明:我不用Torch了,代码也不是我的,仅仅只是记录,如果有问题也不用问我,我不了解了,我随后应该会来一个基于Tensorflow的,大家请期待吧。。这个有问题,问了我也真的不知道。。sorry,不用留言或者微博私信了
1、本文主要参考的教程:Mac Neural Conversational Model 自动聊天机器人实验
2、安装主要参考文档:Torch 官网文档