提交 4be22247 编写于 作者: 0 0YuanZhang0 提交者: pkpk

fix_cross_validation_question (#3069)

上级 bdd4c921
...@@ -53,6 +53,8 @@ seq2seq_att:seq2seq attention model 对话系统; ...@@ -53,6 +53,8 @@ seq2seq_att:seq2seq attention model 对话系统;
seq2seq_naive:naive seq2seq model对话系统; seq2seq_naive:naive seq2seq model对话系统;
``` ```
注意: 目前ade模块内提供的训练好的官方模型及效果, 均是在GPU单卡上面训练和预测得到的, 用户如需复线效果, 可使用单卡相同的配置.
### 数据准备 ### 数据准备
    数据集说明:本模块内只提供训练方法,真实涉及的匹配数据及4个对话系统的数据只开源测试集数据,仅提供样例,用户如有自动化评估对话系统的需求,可自行准备业务数据集按照文档提供流程进行训练;     数据集说明:本模块内只提供训练方法,真实涉及的匹配数据及4个对话系统的数据只开源测试集数据,仅提供样例,用户如有自动化评估对话系统的需求,可自行准备业务数据集按照文档提供流程进行训练;
...@@ -143,6 +145,8 @@ python -u main.py \ ...@@ -143,6 +145,8 @@ python -u main.py \
--sample_pro=0.1 --sample_pro=0.1
``` ```
注意: 用户进行模型训练、预测、评估等, 可通过修改data/config/ade.yaml配置文件或者从命令行传入来进行参数配置, 优先推荐命令行参数传入;
#### 2、第二阶段finetuning模型的训练: #### 2、第二阶段finetuning模型的训练:
####     方式一: 推荐直接使用模块内脚本训练 ####     方式一: 推荐直接使用模块内脚本训练
...@@ -324,8 +328,9 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打 ...@@ -324,8 +328,9 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打
    效果上,以四个不同的对话系统(seq2seq\_naive/seq2seq\_att/keywords/human)为例,使用对话自动评估工具进行自动评估。     效果上,以四个不同的对话系统(seq2seq\_naive/seq2seq\_att/keywords/human)为例,使用对话自动评估工具进行自动评估。
    1. 无标注数据情况下,直接使用预训练好的评估工具进行评估;     1. 无标注数据情况下,直接使用预训练好的评估工具进行评估;
在四个对话系统上,自动评估打分和人工评估打分spearman相关系数,如下:
在四个对话系统上,自动评估打分和人工评估打分spearman相关系数,如下:
/|seq2seq\_naive|seq2seq\_att|keywords|human /|seq2seq\_naive|seq2seq\_att|keywords|human
--|:--:|--:|:--:|--: --|:--:|--:|:--:|--:
cor|0.361|0.343|0.324|0.288 cor|0.361|0.343|0.324|0.288
...@@ -335,10 +340,10 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打 ...@@ -335,10 +340,10 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打
人工评估|k(0.591)<n(0.847)<a(1.116)<h(1.240) 人工评估|k(0.591)<n(0.847)<a(1.116)<h(1.240)
--|--: --|--:
自动评估|k(0.625)<n(0.909)<a(1.399)<h(1.683) 自动评估|k(0.625)<n(0.909)<a(1.399)<h(1.683)
&ensp;&ensp;&ensp;&ensp;2. 利用少量标注数据微调后,自动评估打分和人工打分spearman相关系数,如下: &ensp;&ensp;&ensp;&ensp;2. 利用少量标注数据微调后,自动评估打分和人工打分spearman相关系数,如下:
/|seq2seq\_naive|seq2seq\_att|keywords|human /|seq2seq\_naive|seq2seq\_att|keywords|human
--|:--:|--:|:--:|--: --|:--:|--:|:--:|--:
cor|0.474|0.477|0.443|0.378 cor|0.474|0.477|0.443|0.378
...@@ -498,12 +503,6 @@ python -u main.py \ ...@@ -498,12 +503,6 @@ python -u main.py \
8474 13 44 34 2 87 91 23 0 8474 13 44 34 2 87 91 23 0
``` ```
&ensp;&ensp;&ensp;&ensp;注:本项目额外提供了分词预处理脚本(在preprocess目录下),可供用户使用,具体使用方法如下:
```
python tokenizer.py --test_data_dir ./test.txt.utf8 --batch_size 1 > test.txt.utf8.seg
```
## 4、参考论文 ## 4、参考论文
1、Anjuli Kannan and Oriol Vinyals. 2017. Adversarial evaluation of dialogue models. arXiv preprint arXiv:1701.08198. 1、Anjuli Kannan and Oriol Vinyals. 2017. Adversarial evaluation of dialogue models. arXiv preprint arXiv:1701.08198.
2、Ryan Lowe, Michael Noseworthy, Iulian V Serban, Nicolas Angelard-Gontier, Yoshua Bengio, and Joelle Pineau. 2017. Towards an automatic turing test: Learning to evaluate dialogue responses. arXiv preprint arXiv:1708.07149. 2、Ryan Lowe, Michael Noseworthy, Iulian V Serban, Nicolas Angelard-Gontier, Yoshua Bengio, and Joelle Pineau. 2017. Towards an automatic turing test: Learning to evaluate dialogue responses. arXiv preprint arXiv:1708.07149.
......
...@@ -42,6 +42,8 @@ mrda: 使用公开数据集Meeting Recorder Dialogue Act,实现DA识别任务; ...@@ -42,6 +42,8 @@ mrda: 使用公开数据集Meeting Recorder Dialogue Act,实现DA识别任务;
swda:使用公开数据集Switchboard Dialogue Act Corpus,实现DA识别任务; swda:使用公开数据集Switchboard Dialogue Act Corpus,实现DA识别任务;
``` ```
注意: 目前dgu模块内提供的训练好的官方模型及效果, 均是在GPU单卡上面训练和预测得到的, 用户如需复线效果, 可使用单卡相同的配置.
### 数据准备 ### 数据准备
&ensp;&ensp;&ensp;&ensp;数据集说明: &ensp;&ensp;&ensp;&ensp;数据集说明:
...@@ -143,7 +145,9 @@ python -u main.py \ ...@@ -143,7 +145,9 @@ python -u main.py \
--use_fp16 false --use_fp16 false
``` ```
注:采用方式二时,模型训练过程可参考run.sh内相关任务的参数设置 注:
1) 采用方式二时,模型训练过程可参考run.sh内相关任务的参数设置
2) 用户进行模型训练、预测、评估等, 可通过修改data/config/dgu.yaml配置文件或者从命令行传入来进行参数配置, 优先推荐命令行参数传入;
### 模型预测 ### 模型预测
#### &ensp;&ensp;&ensp;&ensp;方式一: 推荐直接使用模块内脚本预测 #### &ensp;&ensp;&ensp;&ensp;方式一: 推荐直接使用模块内脚本预测
......
...@@ -250,6 +250,7 @@ class UDCProcessor(DataProcessor): ...@@ -250,6 +250,7 @@ class UDCProcessor(DataProcessor):
def _create_examples(self, lines, set_type): def _create_examples(self, lines, set_type):
"""Creates examples for the training and dev sets.""" """Creates examples for the training and dev sets."""
examples = [] examples = []
print("UDC dataset is too big, loading data spent a long time, please wait patiently..................")
for (i, line) in enumerate(lines): for (i, line) in enumerate(lines):
guid = "%s-%d" % (set_type, i) guid = "%s-%d" % (set_type, i)
text_a = "\t".join(line[1: -1]) text_a = "\t".join(line[1: -1])
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册