系列目錄:
Seq2Seq Chatbot 聊天機器人:基于Torch的一個Demo搭建 手劄
深度學習(BOT方向) 學習筆記(1) Sequence2Sequence 學習
深度學習(BOT方向) 學習筆記(2) RNN Encoder-Decoder 及 LSTM 學習
說明
@MebiuW
之前在微網誌愛可可那裡看見一個用Seq2Seq做的聊天機器人,正好下來跑一下代碼研究研究。。是以有了這篇手劄
這篇手劄相對完整,即便你環境沒什麼也能跑
特别說明:我不用Torch了,代碼也不是我的,僅僅隻是記錄,如果有問題也不用問我,我不了解了,我随後應該會來一個基于Tensorflow的,大家請期待吧。。這個有問題,問了我也真的不知道。。sorry,不用留言或者微網誌私信了
Torch安裝
安裝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那個目錄,将語料解壓縮
然後進入到代碼目錄(chatbot-zh-torch7)
修改如下的檔案
将第18行 xx.conv那個位址,改成剛剛解壓的那個conv位址,這個是語料
然後還是在代碼那個目錄運作
然後就會開始運作了
我使用虛拟機跑的,還是要等一下的,有一次跑了8分鐘提示記憶體不足(1.8G),然後加到3GB去跑了也失敗了,然後就換了一個實體機(這個就高配了 64G記憶體)重新配置了一下,也是提示記憶體不足就挂了。。我驚呆了。
是以請用如下的參數訓練(如果你隻是用CPU 做一個Demo):
訓練一共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 官網文檔