使用 TensorFlow 實現的序列到序列聊天機器人。
請參閱下面的入門說明,或查看一些聊天日誌
(批次檔目前僅適用於 Windows。對於 Mac 和 Linux 用戶,請參閱下面的 Python 控制台說明。)
對於控制台聊天:
chat_console_best_weights_training.bat
或chat_console_best_weights_validation.bat
對於網路聊天:
從模型目錄執行chat_web_best_weights_training.bat
或chat_web_best_weights_validation.bat
開啟瀏覽器並存取伺服器控制台指示的 URL,後面跟著/chat_ui.html
。這通常是:http://localhost:8080/chat_ui.html
將控制台工作目錄設定為seq2seq-chatbot目錄。該目錄中應該直接包含模型和資料集目錄。
使用模型檢查點路徑運行 chat.py:
run chat.py models d ataset_name m odel_name c heckpoint.ckpt
例如,與經過訓練的康乃爾電影對話模型trained_model_v2聊天:
下載並解壓縮trained_model_v2到seq2seq-chatbot/models/cornell_movie_dialog資料夾中
將控制台工作目錄設定為seq2seq-chatbot目錄
跑步:
run chat.py models c ornell_movie_dialog t rained_model_v2 b est_weights_training.ckpt
結果應該是這樣的:
要從 python 控制台訓練模型:
將 hparams.json 檔案配置為所需的訓練超參數
將控制台工作目錄設定為seq2seq-chatbot目錄。該目錄中應該直接包含模型和資料集目錄。
要訓練新模型,請使用資料集路徑執行 train.py:
run train.py --datasetdir=datasets d ataset_name
或要恢復訓練現有模型,請使用模型檢查點路徑執行 train.py:
run train.py --checkpointfile=models d ataset_name m odel_name c heckpoint.ckpt
例如,要使用預設超參數在康乃爾電影對話資料集上訓練新模型:
將控制台工作目錄設定為seq2seq-chatbot目錄
跑步:
run train.py --datasetdir=datasets c ornell_movie_dialog
結果應該是這樣的:
文檔即將推出...
TensorBoard 是一個很好的工具,可以視覺化訓練 TensorFlow 模型時幕後發生的情況。
若要從終端啟動 TensorBoard:
tensorboard --logdir=model_dir
其中 model_dir 是模型檢查點檔案所在目錄的路徑。例如,要查看經過訓練的康乃爾電影對話模型trained_model_v2 :
tensorboard --logdir=models c ornell_movie_dialog t rained_model_v2
文檔即將推出...
文檔即將推出...
TensorBoard 可以透過執行 PCA 或 T-SNE 等降維技術將單字嵌入投影到 3D 空間中,並且可以讓您透過查看任何單字的嵌入空間中的最近鄰居來探索模型如何將詞彙表中的單字分組在一起。有關 TensorFlow 中的詞嵌入和 TensorBoard 投影機的更多信息,請參見此處。
當啟動模型目錄的 TensorBoard 並選擇“投影機”選項卡時,它應該如下所示:
說明即將推出...
seq2seq-chatbot 中使用了以下 python 套件:(不包括 Anaconda 隨附的套件)
TensorFlow *注意 - 尚不支援 TF 2.x,請使用最新的 TF 1.x 版本。
pip install --upgrade tensorflow==1. *
對於 GPU 支援:(請參閱此處以了解完整的 GPU 安裝說明,包括 CUDA 和 cuDNN)
pip install --upgrade tensorflow-gpu==1. *
jsonpickle
pip install --upgrade jsonpickle
點選6.7、flask 0.12.4和flask-restful(運行Web介面需要)
pip install click==6.7
pip install flask==0.12.4
pip install --upgrade flask-restful
請參閱路線圖頁面
此實作的靈感來自於:
使用神經網路進行序列到序列學習
神經對話模型
透過聯合學習對齊和翻譯的神經機器翻譯(Bahdanau 注意力機制)
基於注意力的神經機器翻譯的有效方法(Luong注意力機制)