Dialog是日本聊天机器人项目。
该项目中使用的架构是 EncoderDecoder 模型,具有 BERT Encoder 和 Transformer Decoder。
文章用日语写的。
您可以在google colab上运行训练和评估脚本,而无需构建环境。
请点击以下链接。
请注意,在训练笔记本中,注释末尾描述了下载命令,但尚未测试。因此,如果您运行训练笔记本并且无法下载训练后的权重文件,请手动下载。
用日语写的博客
@ycat3 通过使用该项目进行句子生成和用于语音合成的 Parallel Wavenet 创建了文本到语音示例。源代码不共享,但如果您利用 Parallel Wavenet,则可以重现它。该博客有一些音频样本,所以请尝试听一下。
如果我有很多空闲时间,我想创建一个应用程序,允许我们通过语音合成和语音识别与人工智能进行语音对话,但现在由于准备考试而无法做到这一点......
2个时期
该模型仍然存在响应迟钝的问题。
为了解决这个问题我现在正在研究。
然后我发现这篇论文解决了这个问题。
神经对话生成的另一种促进多样性的目标函数
作者来自奈良科学技术研究所(又名 NAIST)。
他们提出了神经对话生成的新目标函数。
我希望这个方法可以帮助我解决这个问题。
在谷歌驱动器中。
需要的包有
如果因软件包原因出现错误,请安装缺少的软件包。
例如,如果您使用 conda。
# create new environment
$ conda create -n dialog python=3.7
# activate new environment
$ activate dialog
# install pytorch
$ conda install pytorch torchvision cudatoolkit={YOUR_VERSION} -c pytorch
# install rest of depending package except for MeCab
$ pip install transformers tqdm neologdn emoji
# #### Already installed MeCab #####
# ## Ubuntu ###
$ pip install mecab-python3
# ## Windows ###
# check that "path/to/MeCab/bin" are added to system envrionment variable
$ pip install mecab-python-windows
# #### Not Installed MeCab #####
# install Mecab in accordance with your OS.
# method described in below is one of the way,
# so you can use your way if you'll be able to use transformers.BertJapaneseTokenizer.
# ## Ubuntu ###
# if you've not installed MeCab, please execute following comannds.
$ apt install aptitude
$ aptitude install mecab libmecab-dev mecab-ipadic-utf8 git make curl xz-utils file -y
$ pip install mecab-python3
# ## Windows ###
# Install MeCab from https://github.com/ikegami-yukino/mecab/releases/tag/v0.996
# and add "path/to/Mecab/bin" to system environment variable.
# then run the following command.
$ pip install mecab-python-windows
# in config.py, line 24
# default value is './data'
data_dir = 'path/to/dir_contains_training_data'
如果您准备好开始训练,请运行主脚本。
$ python main.py
# in config.py, line 24
# default value is './data'
data_dir = 'path/to/dir_contains_pretrained'
$ python run_eval.py
如果您想获取更多对话数据,请使用 get_tweet.py
请注意,您必须更改consumer_key和access_token才能使用此脚本。
然后,执行以下命令。
# usage
$ python get_tweet.py " query " " Num of continuous utterances "
# Example
# This command works until occurs errors
# and makes a file named "tweet_data_私は_5.txt" in "./data"
$ python get_tweet.py 私は 5
如果执行示例命令,如果最后一句包含“私は”,脚本将开始收集连续 5 个句子。
但是,您将 3 个或更多数字设置为“连续话语”,make_training_data.py 会自动创建一对话语。
然后执行以下命令。
$ python make_training_data.py
该脚本使用“./data/tweet_data_*.txt”制作训练数据,就像名称一样。
编码器:BERT
解码器:Vanilla Transformer 的解码器
损失:交叉熵
优化器:AdamW
分词器:Bert JapaneseTokenizer
如果您想了解更多有关 BERT 或 Transformer 架构的信息,请参阅以下文章。