Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
6307a025
M
models
项目概览
PaddlePaddle
/
models
大约 1 年 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
6307a025
编写于
10月 22, 2019
作者:
0
0YuanZhang0
提交者:
GitHub
10月 22, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix_dmtk_windows (#3692)
上级
24674132
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
86 addition
and
11 deletion
+86
-11
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/README.md
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/README.md
+50
-4
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/ade/prepare_data_and_model.py
...ue/auto_dialogue_evaluation/ade/prepare_data_and_model.py
+1
-0
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/ade/utils/save_load_io.py
...alogue/auto_dialogue_evaluation/ade/utils/save_load_io.py
+1
-1
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/run.sh
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/run.sh
+2
-2
PaddleNLP/PaddleDialogue/dialogue_general_understanding/README.md
...P/PaddleDialogue/dialogue_general_understanding/README.md
+29
-2
PaddleNLP/PaddleDialogue/dialogue_general_understanding/dgu/prepare_data_and_model.py
...logue_general_understanding/dgu/prepare_data_and_model.py
+1
-0
PaddleNLP/PaddleDialogue/dialogue_general_understanding/dgu/utils/save_load_io.py
.../dialogue_general_understanding/dgu/utils/save_load_io.py
+2
-2
未找到文件。
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/README.md
浏览文件 @
6307a025
...
...
@@ -79,15 +79,24 @@ label_data(第二阶段finetuning数据集)
4、seq2seq_naive:传统seq2seq model产出的标注对话数据;
```
    
数据集、相关模型下载:
    
数据集、相关模型下载
    
linux环境下:
```
python ade/prepare_data_and_model.py
```
    
数据路径:data/input/data
    
数据路径:data/input/data/
    
模型路径:data/saved_models/trained_models
    
windows环境下:
```
python ade\prepare_data_and_model.py
```
    
数据路径:data
\i
nput
\d
ata
    
模型路径:data
\s
aved_models
\t
rained_models
    
模型路径:data/saved_models/trained_models/
    
下载经过预处理的数据,运行该脚本之后,data目录下会存在unlabel_data(train.ids/val.ids/test.ids),lable_data: human、keywords、seq2seq_att、seq2seq_naive(四个任务数据train.ids/val.ids/test.ids),以及word2ids.
...
...
@@ -130,6 +139,7 @@ encable_ce: 是否开启ce
### 单机训练
#### 1、第一阶段matching模型的训练:
#### linux环境下:
####     方式一: 推荐直接使用模块内脚本训练
...
...
@@ -206,7 +216,14 @@ python -u main.py \
注意: 用户进行模型训练、预测、评估等, 可通过修改data/config/ade.yaml配置文件或者从命令行传入来进行参数配置, 优先推荐命令行参数传入;
#### windows环境下:
训练:
```
python -u main.py --do_train=true --use_cuda=false --loss_type=CLS --max_seq_len=50 --save_model_path=data\saved_models\matching_pretrained --save_param=params --training_file=data\input\data\unlabel_data\train.ids --epoch=20 --print_step=1 --save_step=400 --batch_size=256 --hidden_size=256 --emb_size=256 --vocab_size=484016 --learning_rate=0.001 --sample_pro=0.1
```
#### 2、第二阶段finetuning模型的训练:
#### linux环境下:
####     方式一: 推荐直接使用模块内脚本训练
```
...
...
@@ -271,9 +288,14 @@ python -u main.py \
--sample_pro=0.1
```
#### windows环境下:
```
python -u main.py --do_train=true --use_cuda=false --loss_type=L2 --max_seq_len=50 --save_model_path=data\saved_models\human_finetuned --save_param=params --training_file=data\input\data\label_data\human\train.ids --epoch=50 --print_step=1 --save_step=400 --batch_size=256 --hidden_size=256 --emb_size=256 --vocab_size=484016 --learning_rate=0.001 --sample_pro=0.1
```
### 模型预测
#### 1、第一阶段matching模型的预测:
#### linux环境下:
####     方式一: 推荐直接使用模块内脚本预测
```
...
...
@@ -329,8 +351,15 @@ python -u main.py \
注:采用方式二时,模型预测过程可参考run.sh内具体任务的参数设置
#### windows环境下:
预测:
```
python -u main.py --do_predict=true --use_cuda=false --predict_file=data\input\data\unlabel_data\test.ids --init_from_params=data\saved_models\trained_models\matching_pretrained\params --loss_type=CLS --output_prediction_file=data\output\pretrain_matching_predict --max_seq_len=50 --batch_size=256 --hidden_size=256 --emb_size=256 --vocab_size=484016
```
#### 2、第二阶段finetuning模型的预测:
#### linux环境下:
####     方式一: 推荐直接使用模块内脚本预测
```
...
...
@@ -375,6 +404,11 @@ python -u main.py \
--vocab_size=484016
```
#### windows环境下:
```
python -u main.py --do_predict=true --use_cuda=false --predict_file=data\input\data\label_data\human\test.ids --init_from_params=data\saved_models\trained_models\human_finetuned\params --loss_type=L2 --output_prediction_file=data\output\finetuning_human_predict --max_seq_len=50 --batch_size=256 --hidden_size=256 --emb_size=256 --vocab_size=484016
```
### 模型评估
    
模块中5个任务,各任务支持计算的评估指标内容如下:
...
...
@@ -412,6 +446,7 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打
|--|:--:|--:|:--:|--:|
|cor|0.474|0.477|0.443|0.378|
#### linux环境下:
#### 1、第一阶段matching模型的评估:
####     方式一: 推荐直接使用模块内脚本评估
...
...
@@ -434,8 +469,14 @@ python -u main.py \
--output_prediction_file="data/output/pretrain_matching_predict" \
--loss_type="CLS"
```
#### windows环境下:
评估:
```
python -u main.py --do_eval=true --use_cuda=false --evaluation_file=data\input\data\unlabel_data\test.ids --output_prediction_file=data\output\pretrain_matching_predict --loss_type=CLS
```
#### 2、第二阶段finetuning模型的评估:
#### linux环境下:
####     方式一: 推荐直接使用模块内脚本评估
```
...
...
@@ -461,6 +502,11 @@ python -u main.py \
--loss_type="L2"
```
#### windows环境下:
```
python -u main.py --do_eval=true --use_cuda=false --evaluation_file=data\input\data\label_data\human\test.ids --output_prediction_file=data\output\finetuning_human_predict --loss_type=L2
```
### 模型推断
#### 1、第一阶段matching模型的推断:
####     方式一: 推荐直接使用模块内脚本保存inference model
...
...
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/ade/prepare_data_and_model.py
浏览文件 @
6307a025
...
...
@@ -22,6 +22,7 @@ import os
URLLIB
=
urllib
if
sys
.
version_info
>=
(
3
,
0
):
import
urllib.request
URLLIB
=
urllib
.
request
DATA_MODEL_PATH
=
{
"DATA_PATH"
:
"https://baidu-nlp.bj.bcebos.com/auto_dialogue_evaluation_dataset-1.0.0.tar.gz"
,
...
...
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/ade/utils/save_load_io.py
浏览文件 @
6307a025
...
...
@@ -112,7 +112,7 @@ def save_param(args, exe, program, dirname):
param_dir
=
os
.
path
.
join
(
args
.
save_model_path
,
args
.
save_param
)
if
not
os
.
path
.
exists
(
param_dir
):
os
.
m
kdir
(
param_dir
)
os
.
m
akedirs
(
param_dir
)
fluid
.
io
.
save_params
(
exe
,
...
...
PaddleNLP/PaddleDialogue/auto_dialogue_evaluation/run.sh
浏览文件 @
6307a025
...
...
@@ -77,7 +77,7 @@ function pretrain_train()
--emb_size
=
256
\
--vocab_size
=
484016
\
--learning_rate
=
0.001
\
--sample_pro
0.1
--sample_pro
=
0.1
}
function
finetuning_train
()
...
...
@@ -111,7 +111,7 @@ function finetuning_train()
--emb_size
=
256
\
--vocab_size
=
484016
\
--learning_rate
=
0.001
\
--sample_pro
0.1
--sample_pro
=
0.1
}
#predict
...
...
PaddleNLP/PaddleDialogue/dialogue_general_understanding/README.md
浏览文件 @
6307a025
...
...
@@ -61,7 +61,7 @@ SWDA:Switchboard Dialogue Act Corpus;
```
    
数据集、相关模型下载:
    
linux环境下:
```
python dgu/prepare_data_and_model.py
```
...
...
@@ -71,11 +71,19 @@ python dgu/prepare_data_and_model.py
    
已训练模型路径:data/saved_models/trained_models
    
windows环境下:
```
python dgu\prepare_data_and_model.py
```
    
下载的数据集中已提供了训练集,测试集和验证集,用户如果需要重新生成某任务数据集的训练数据,可执行:
```
cd dgu/scripts && bash run_build_data.sh task_name
linux环境下:
cd dgu/scripts && python run_build_data.py task_name
windows环境下:
cd dgu\scripts && python run_build_data.py task_name
参数说明:
task_name: udc, swda, mrda, atis, dstc2, 选择5个数据集选项中用户需要生成的数据名
...
...
@@ -145,6 +153,7 @@ encable_ce: 是否开启ce
### 单机训练
#### linux环境下
####     方式一: 推荐直接使用模块内脚本训练
```
...
...
@@ -226,7 +235,13 @@ python -u main.py \
1) 采用方式二时,模型训练过程可参考run.sh内相关任务的参数设置
2) 用户进行模型训练、预测、评估等, 可通过修改data/config/dgu.yaml配置文件或者从命令行传入来进行参数配置, 优先推荐命令行参数传入;
#### windows环境下
```
python -u main.py --task_name=atis_intent --use_cuda=false --do_train=true --in_tokens=true --epoch=20 --batch_size=4096 --do_lower_case=true --data_dir=data\input\data\atis\atis_intent --bert_config_path=data\pretrain_model\uncased_L-12_H-768_A-12\bert_config.json --vocab_path=data\pretrain_model\uncased_L-12_H-768_A-12\vocab.txt --init_from_pretrain_model=data\pretrain_model\uncased_L-12_H-768_A-12\params --save_model_path=data\saved_models\atis_intent --save_param=params --save_steps=100 --learning_rate=2e-5 --weight_decay=0.01 --max_seq_len=128 --print_steps=10
```
### 模型预测
#### linux环境下
####     方式一: 推荐直接使用模块内脚本预测
```
...
...
@@ -291,6 +306,11 @@ python -u main.py \
注:采用方式二时,模型预测过程可参考run.sh内具体任务的参数设置
#### windows环境下
```
python -u main.py --task_name=atis_intent --use_cuda=false --do_predict=true --in_tokens=true --batch_size=4096 --do_lower_case=true --data_dir=data\input\data\atis\atis_intent --init_from_params=data\saved_models\trained_models\atis_intent\params --bert_config_path=data\pretrain_model\uncased_L-12_H-768_A-12\bert_config.json --vocab_path=data\pretrain_model\uncased_L-12_H-768_A-12\vocab.txt --output_prediction_file=data\output\pred_atis_intent --max_seq_len=128
```
### 模型评估
    
模块中6个任务,各任务支持计算的评估指标内容如下:
...
...
@@ -314,6 +334,8 @@ swda:使用acc指标来评估DA任务分类结果;
| SOTA | 76.70% | 87.40% | 96.90% | 96.89% | 74.50% | 98.32% | 81.30% | 91.70% |
| DGU | 82.03% | 90.59% | 97.73% | 97.14% | 91.23% | 97.76% | 80.37% | 91.53% |
#### linux环境下
####     方式一: 推荐直接使用模块内脚本评估
```
...
...
@@ -340,6 +362,11 @@ python -u main.py \
--output_prediction_file="./data/output/pred_${TASK_NAME}"
```
#### windows环境下
```
python -u main.py --task_name=atis_intent --use_cuda=false --do_eval=true --evaluation_file=data\input\data\atis\atis_intent\test.txt --output_prediction_file=data\output\pred_atis_intent
```
### 模型推断
####     方式一: 推荐直接使用模块内脚本保存inference model
...
...
PaddleNLP/PaddleDialogue/dialogue_general_understanding/dgu/prepare_data_and_model.py
浏览文件 @
6307a025
...
...
@@ -23,6 +23,7 @@ import os
URLLIB
=
urllib
if
sys
.
version_info
>=
(
3
,
0
):
import
urllib.request
URLLIB
=
urllib
.
request
DATA_MODEL_PATH
=
{
"DATA_PATH"
:
"https://baidu-nlp.bj.bcebos.com/dmtk_data_1.0.0.tar.gz"
,
...
...
PaddleNLP/PaddleDialogue/dialogue_general_understanding/dgu/utils/save_load_io.py
浏览文件 @
6307a025
...
...
@@ -112,8 +112,8 @@ def save_param(args, exe, program, dirname):
param_dir
=
os
.
path
.
join
(
args
.
save_model_path
,
args
.
save_param
)
if
not
os
.
path
.
exists
(
param_dir
):
os
.
m
kdir
(
param_dir
)
os
.
m
akedirs
(
param_dir
)
fluid
.
io
.
save_params
(
exe
,
os
.
path
.
join
(
param_dir
,
dirname
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录