提交 4fb95ad2 编写于 作者: X xuezhong

update README.md

上级 5984b95b
DuReader是一个端到端的机器阅读理解神经网络模型,能够在给定文档和问题的情况,定位文档中问题的答案。我们首先利用双向注意力网络获得文档和问题的相同向量空间的表示,然后使用`point network` 定位文档中答案的位置。实验显示,我们的模型能够获得在Dureader数据集上SOTA的结果。 DuReader是一个端到端的机器阅读理解神经网络模型,能够在给定文档和问题的情况,定位文档中问题的答案。我们首先利用双向注意力网络获得文档和问题的相同向量空间的表示,然后使用`point network` 定位文档中答案的位置。实验显示,我们的模型能够获得在Dureader数据集上SOTA的结果。
# 算法介绍 # 算法介绍
DuReader模型主要实现了论文[BiDAF](https://arxiv.org/abs/1611.01603), [Match-LSTM](https://arxiv.org/abs/1608.07905)中的模型结构。 DuReader模型主要实现了论文[BiDAF](https://arxiv.org/abs/1611.01603) [Match-LSTM](https://arxiv.org/abs/1608.07905)中的模型结构。
模型在层次上可以分为5层: 模型在层次上可以分为5层:
...@@ -20,17 +20,17 @@ cd data && bash download.sh ...@@ -20,17 +20,17 @@ cd data && bash download.sh
模型默认使用DuReader数据集,是百度开源的真实阅读理解数据,更多参考[DuReader Dataset Homepage](https://ai.baidu.com//broad/subordinate?dataset=dureader) 模型默认使用DuReader数据集,是百度开源的真实阅读理解数据,更多参考[DuReader Dataset Homepage](https://ai.baidu.com//broad/subordinate?dataset=dureader)
### 下载第三方依赖 ### 下载第三方依赖
我们使用Bleu和Rouge作为度量指标, 这些度量指标的源码位于[coco-caption](https://github.com/tylin/coco-caption), 可以使用如下命令下载源码: 我们使用Bleu和Rouge作为度量指标, 这些度量指标的源码位于[coco-caption](https://github.com/tylin/coco-caption) 可以使用如下命令下载源码:
``` ```
cd utils && bash download_thirdparty.sh cd utils && bash download_thirdparty.sh
``` ```
### 环境依赖 ### 环境依赖
当前模型是在paddlepaddle 1.2版本上测试, 因此建议在1.2版本上使用本模型。关于PaddlePaddle的安装可以参考[PaddlePaddle Homepage](http://paddlepaddle.org) 当前模型是在paddlepaddle 1.2版本上测试 因此建议在1.2版本上使用本模型。关于PaddlePaddle的安装可以参考[PaddlePaddle Homepage](http://paddlepaddle.org)
## 模型训练 ## 模型训练
### 段落抽取 ### 段落抽取
在段落抽取阶段,主要是使用文档相关性score对文档内容进行优化, 抽取的结果将会放到`data/extracted/`目录下。如果你用demo数据测试,可以跳过这一步。如果你用dureader数据,需要指定抽取的数据目录,命令如下: 在段落抽取阶段,主要是使用文档相关性score对文档内容进行优化 抽取的结果将会放到`data/extracted/`目录下。如果你用demo数据测试,可以跳过这一步。如果你用dureader数据,需要指定抽取的数据目录,命令如下:
``` ```
sh run.sh --para_extraction --trainset data/preprocessed/trainset/zhidao.train.json data/preprocessed/trainset/search.train.json --devset data/preprocessed/devset/zhidao.dev.json data/preprocessed/devset/search.dev.json --testset data/preprocessed/testset/zhidao.test.json data/preprocessed/testset/search.test.json sh run.sh --para_extraction --trainset data/preprocessed/trainset/zhidao.train.json data/preprocessed/trainset/search.train.json --devset data/preprocessed/devset/zhidao.dev.json data/preprocessed/devset/search.dev.json --testset data/preprocessed/testset/zhidao.test.json data/preprocessed/testset/search.test.json
其中参数 `trainset`/`devset`/`testset`分别对应训练、验证和测试数据集(下同)。 其中参数 `trainset`/`devset`/`testset`分别对应训练、验证和测试数据集(下同)。
...@@ -51,7 +51,7 @@ run.sh --prepare --trainset data/extracted/trainset/zhidao.train.json data/extra ...@@ -51,7 +51,7 @@ run.sh --prepare --trainset data/extracted/trainset/zhidao.train.json data/extra
sh run.sh --train sh run.sh --train
``` ```
可以通过设置超参数更改训练的配置,比如通过`--learning_rate NUM`更改学习率,通过`--pass_num NUM`更改训练的轮数 可以通过设置超参数更改训练的配置,比如通过`--learning_rate NUM`更改学习率,通过`--pass_num NUM`更改训练的轮数
训练的过程中,每隔一定迭代周期,会测试在验证集上的性能指标, 通过`--dev_interval NUM`设置周期大小 训练的过程中,每隔一定迭代周期,会测试在验证集上的性能指标 通过`--dev_interval NUM`设置周期大小
### 模型评测 ### 模型评测
在模型训练结束后,如果想使用训练好的模型进行评测,获得度量指标,可以使用如下命令: 在模型训练结束后,如果想使用训练好的模型进行评测,获得度量指标,可以使用如下命令:
...@@ -65,7 +65,7 @@ sh run.sh --evaluate --load_dir data/models/1 ...@@ -65,7 +65,7 @@ sh run.sh --evaluate --load_dir data/models/1
``` ```
sh run.sh --predict --load_dir data/models/1 --testset data/extracted/testset/search.dev.json sh run.sh --predict --load_dir data/models/1 --testset data/extracted/testset/search.dev.json
``` ```
其中`--testset`指定了预测用的数据集, 生成的问题答案默认会放到`data/results/` 目录,你可以通过参数`--result_dir DIR_PATH`更改配置 其中`--testset`指定了预测用的数据集 生成的问题答案默认会放到`data/results/` 目录,你可以通过参数`--result_dir DIR_PATH`更改配置
### 实验结果 ### 实验结果
验证集 ROUGE-L:47.65,测试集 ROUGE-L:54.58 验证集 ROUGE-L:47.65,测试集 ROUGE-L:54.58
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册