使用 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注意力机制)