Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
064954ac
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看板
未验证
提交
064954ac
编写于
8月 26, 2019
作者:
0
0YuanZhang0
提交者:
GitHub
8月 26, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix_readme (#3184)
上级
ac676abf
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
91 addition
and
24 deletion
+91
-24
PaddleNLP/dialogue_model_toolkit/auto_dialogue_evaluation/README.md
...dialogue_model_toolkit/auto_dialogue_evaluation/README.md
+47
-12
PaddleNLP/dialogue_model_toolkit/dialogue_general_understanding/README.md
...ue_model_toolkit/dialogue_general_understanding/README.md
+44
-12
未找到文件。
PaddleNLP/dialogue_model_toolkit/auto_dialogue_evaluation/README.md
浏览文件 @
064954ac
# 对话自动评估模块ADE
# 对话自动评估模块ADE
## 目录
-
[
**1、模型简介**
](
#1、模型简介
)
-
[
**1、模型简介**
](
#1、模型简介
)
-
[
**2、快速开始**
](
#2、快速开始
)
-
[
**2、快速开始**
](
#2、快速开始
)
...
@@ -45,10 +46,12 @@ cd models/PaddleNLP/dialogue_model_toolkit/auto_dialogue_evaluation
...
@@ -45,10 +46,12 @@ cd models/PaddleNLP/dialogue_model_toolkit/auto_dialogue_evaluation
    
本模块内模型训练主要包括两个阶段:
    
本模块内模型训练主要包括两个阶段:
    
1)第一阶段:训练一个匹配模型作为评估工具,可用于待评估对话系统内的回复内容进行排序;(matching任务)
    
1)第一阶段:训练一个匹配模型作为评估工具,可用于待评估对话系统内的回复内容进行排序;(matching任务)
          
模型结构: 输入为context和response, 对两个输入学习embedding表示, 学习到的表示经过lstm学习高阶表示, context和response的高阶表示计算双线性张量积logits, logits和label计算sigmoid_cross_entropy_with_logits loss;
      
模型结构: 输入为context和response, 对两个输入学习embedding表示, 学习到的表示经过lstm学习高阶表示, context和response的高阶表示计算双线性张量积logits, logits和label计算sigmoid_cross_entropy_with_logits loss;
    
2)第二阶段:利用少量的对话系统的标记数据,对第一阶段训练的匹配模型进行finetuning, 可以提高评估效果(包含human,keywords,seq2seq_att,seq2seq_naive,4个finetuning任务);
    
2)第二阶段:利用少量的对话系统的标记数据,对第一阶段训练的匹配模型进行finetuning, 可以提高评估效果(包含human,keywords,seq2seq_att,seq2seq_naive,4个finetuning任务);
          
模型结构: finetuning阶段学习表示到计算logits部分和第一阶段模型结构相同,区别在于finetuning阶段计算square_error_cost loss;
      
模型结构: finetuning阶段学习表示到计算logits部分和第一阶段模型结构相同,区别在于finetuning阶段计算square_error_cost loss;
    
用于第二阶段fine-tuning的对话系统包括下面四部分:
    
用于第二阶段fine-tuning的对话系统包括下面四部分:
...
@@ -81,11 +84,51 @@ cd ade && bash prepare_data_and_model.sh
...
@@ -81,11 +84,51 @@ cd ade && bash prepare_data_and_model.sh
```
```
    
数据路径:data/input/data/
    
数据路径:data/input/data/
    
模型路径:data/saved_models/trained_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.
    
下载经过预处理的数据,运行该脚本之后,data目录下会存在unlabel_data(train.ids/val.ids/test.ids),lable_data: human、keywords、seq2seq_att、seq2seq_naive(四个任务数据train.ids/val.ids/test.ids),以及word2ids.
### 模型配置
    
配置文件路径: data/config/ade.yaml
```
loss_type: loss类型, 可选CLS或者L2
training_file: 训练数据路径
val_file: 验证集路径
predict_file: 预测文件路径
print_steps: 每隔print_steps个步数打印一次日志
save_steps: 每隔save_steps个步数来保存一次模型
num_scan_data:
word_emb_init: 用于初始化embedding的词表路径
init_model: 初始化模型路径
use_cuda: 是否使用cuda, 如果是gpu训练时,设置成true
batch_size: 一个batch内输入的样本个数
hidden_size: 隐层大小
emb_size: embedding层大小
vocab_size: 词表大小
sample_pro: 采样比率
output_prediction_file: 输出的预测文件
init_from_checkpoint: 加载断点模型
init_from_params: 训练好的模型参数文件,一般用于预测
init_from_pretrain_model: 预训练模型路径,如bert的模型参数
inference_model_dir: inference model的保存路径
save_model_path: 训练产出模型的输出路径
save_checkpoint: 调用paddle的io接口save_persistables(把传入的层中所有参数以及优化器进行保存)来保存模型参数
save_param: 调用paddle的io接口save_params(从main_program中取出所有参数然后保存到文件中)来保存模型参数
evaluation_file: 参与评估的inference 文件
vocab_path: 词表路径
max_seq_len: 输入最大序列长度
random_seed: 随机种子设置
do_save_inference_model: 是否保存inference model
encable_ce: 是否开启ce
```
### 单机训练
### 单机训练
#### 1、第一阶段matching模型的训练:
#### 1、第一阶段matching模型的训练:
####     方式一: 推荐直接使用模块内脚本训练
####     方式一: 推荐直接使用模块内脚本训练
```
```
...
@@ -349,13 +392,13 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打
...
@@ -349,13 +392,13 @@ seq2seq_naive:使用spearman相关系数来衡量评估模型对系统的打
    
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|
      
  
对四个系统平均得分排序:
      
对四个系统平均得分排序:
|人工评估|k(0.591)<n(0.847)<a(1.116)<h(1.240)|
|人工评估|k(0.591)<n(0.847)<a(1.116)<h(1.240)|
|--|--:|
|--|--:|
...
@@ -543,14 +586,6 @@ of machine translation. In Proceedings of the 40th annual meeting on association
...
@@ -543,14 +586,6 @@ of machine translation. In Proceedings of the 40th annual meeting on association
第二版:PaddlePaddle 1.6.0版本
第二版:PaddlePaddle 1.6.0版本
更新功能:在第一版的基础上,根据PaddlePaddle的模型规范化标准,对模块内训练、预测、评估等代码进行了重构,提高易用性;
更新功能:在第一版的基础上,根据PaddlePaddle的模型规范化标准,对模块内训练、预测、评估等代码进行了重构,提高易用性;
## 作者
zhangxiyuan01@baidu.com
zhouxiangyang@baidu.com
lilu12@baidu.com
## 如何贡献代码
## 如何贡献代码
    
如果你可以修复某个issue或者增加一个新功能,欢迎给我们提交PR。如果对应的PR被接受了,我们将根据贡献的质量和难度进行打分(0-5分,越高越好)。如果你累计获得了10分,可以联系我们获得面试机会或者为你写推荐信。
    
如果你可以修复某个issue或者增加一个新功能,欢迎给我们提交PR。如果对应的PR被接受了,我们将根据贡献的质量和难度进行打分(0-5分,越高越好)。如果你累计获得了10分,可以联系我们获得面试机会或者为你写推荐信。
PaddleNLP/dialogue_model_toolkit/dialogue_general_understanding/README.md
浏览文件 @
064954ac
# 对话通用理解模块DGU
# 对话通用理解模块DGU
## 目录
-
[
**1、模型简介**
](
#1、模型简介
)
-
[
**1、模型简介**
](
#1、模型简介
)
-
[
**2、快速开始**
](
#2、快速开始
)
-
[
**2、快速开始**
](
#2、快速开始
)
...
@@ -65,7 +66,9 @@ SWDA:Switchboard Dialogue Act Corpus;
...
@@ -65,7 +66,9 @@ SWDA:Switchboard Dialogue Act Corpus;
cd dgu && bash prepare_data_and_model.sh
cd dgu && bash prepare_data_and_model.sh
```
```
    
数据路径:data/input/data
    
数据路径:data/input/data
    
预训练模型路径:data/pretrain_model
    
预训练模型路径:data/pretrain_model
    
已训练模型路径:data/saved_models/trained_models
    
已训练模型路径:data/saved_models/trained_models
...
@@ -105,6 +108,41 @@ dstc2/dstc2: 数据组成,多轮对话id, 当前轮QA对(使用\1拼接),标
...
@@ -105,6 +108,41 @@ dstc2/dstc2: 数据组成,多轮对话id, 当前轮QA对(使用\1拼接),标
format:conversation_content \t question \1 answer \t state1 state2 state3......
format:conversation_content \t question \1 answer \t state1 state2 state3......
```
```
### 模型配置
    
配置文件路径: data/config/dgu.yaml
```
task_name: 任务名称,可选udc、swda、mrda、atis_intent、atis_slot、dstc2
data_dir: 数据路径,如./data/input/data/udc
bert_config_path: 预训练模型bert的网络配置./data/pretrain_model/uncased_L-12_H-768_A-12/bert_config.json
init_from_checkpoint: 加载断点模型
init_from_params: 训练好的模型参数文件,一般用于预测
init_from_pretrain_model: 预训练模型路径,如bert的模型参数
inference_model_dir: inference model的保存路径
save_model_path: 训练产出模型的输出路径
save_checkpoint: 调用paddle的io接口save_persistables(把传入的层中所有参数以及优化器进行保存)来保存模型参数
save_param: 调用paddle的io接口save_params(从main_program中取出所有参数然后保存到文件中)来保存模型参数
lr_scheduler: learning rate scheduler
weight_decay: learning rate 权重衰减因子
warmup_proportion: warmup比率
save_steps: 每隔save_steps个步数来保存一次模型
use_fp16: 是否使用fp16来训练模型
loss_scaling: loss权重因子
print_steps: 每隔print_steps个步数打印一次日志
evaluation_file: 参与评估的inference 标注文件
output_prediction_file: 输出的预测文件
vocab_path: 模型词表
max_seq_len: 输入bert内的最大序列长度
batch_size: 一个batch内输入的样本个数
do_lower_case: 是否进行大小写转换
random_seed: 随机种子设置
use_cuda: 是否使用cuda, 如果是gpu训练时,设置成true
in_tokens: 是否采用in_tokens模式来计算batch_siz数量, 如果in_tokens为false, 则batch_size等于真实设置的batch_size大小, 如果in_tokens为true, 则batch_size=batch_size*max_seq_len,即按照token计数
do_save_inference_model: 是否保存inference model
encable_ce: 是否开启ce
```
### 单机训练
### 单机训练
####     方式一: 推荐直接使用模块内脚本训练
####     方式一: 推荐直接使用模块内脚本训练
...
@@ -118,14 +156,14 @@ task_type: train,predict, evaluate, inference, all, 选择5个参数选项中
...
@@ -118,14 +156,14 @@ task_type: train,predict, evaluate, inference, all, 选择5个参数选项中
训练示例: bash run.sh atis_intent train
训练示例: bash run.sh atis_intent train
```
```
    
方式一
如果为CPU训练:
    
如果为CPU训练:
```
```
请将run.sh内参数设置为:
请将run.sh内参数设置为:
1、export CUDA_VISIBLE_DEVICES=
1、export CUDA_VISIBLE_DEVICES=
```
```
    
方式一
如果为GPU训练:
    
如果为GPU训练:
```
```
请将run.sh内参数设置为:
请将run.sh内参数设置为:
...
@@ -200,14 +238,14 @@ task_type: train,predict, evaluate, inference, all, 选择5个参数选项中
...
@@ -200,14 +238,14 @@ task_type: train,predict, evaluate, inference, all, 选择5个参数选项中
预测示例: bash run.sh atis_intent predict
预测示例: bash run.sh atis_intent predict
```
```
    
方式一
如果为CPU预测:
    
如果为CPU预测:
```
```
请将run.sh内参数设置为:
请将run.sh内参数设置为:
1、export CUDA_VISIBLE_DEVICES=
1、export CUDA_VISIBLE_DEVICES=
```
```
    
方式一
如果为GPU预测:
    
如果为GPU预测:
```
```
请将run.sh内参数设置为:
请将run.sh内参数设置为:
...
@@ -314,14 +352,14 @@ task_type: train,predict, evaluate, inference, all, 选择5个参数选项中
...
@@ -314,14 +352,14 @@ task_type: train,predict, evaluate, inference, all, 选择5个参数选项中
保存模型示例: bash run.sh atis_intent inference
保存模型示例: bash run.sh atis_intent inference
```
```
    
方式一
如果为CPU执行inference model过程:
    
如果为CPU执行inference model过程:
```
```
请将run.sh内参数设置为:
请将run.sh内参数设置为:
1、export CUDA_VISIBLE_DEVICES=
1、export CUDA_VISIBLE_DEVICES=
```
```
    
方式一
如果为GPU执行inference model过程:
    
如果为GPU执行inference model过程:
```
```
请将run.sh内参数设置为:
请将run.sh内参数设置为:
...
@@ -430,12 +468,6 @@ python -u main.py \
...
@@ -430,12 +468,6 @@ python -u main.py \
第二版:PaddlePaddle 1.6.0版本
第二版:PaddlePaddle 1.6.0版本
更新功能:在第一版的基础上,根据PaddlePaddle的模型规范化标准,对模块内训练、预测、评估等代码进行了重构,提高易用性;
更新功能:在第一版的基础上,根据PaddlePaddle的模型规范化标准,对模块内训练、预测、评估等代码进行了重构,提高易用性;
## 作者
zhangxiyuan01@baidu.com
zhouxiangyang@baidu.com
## 如何贡献代码
## 如何贡献代码
    
如果你可以修复某个issue或者增加一个新功能,欢迎给我们提交PR。如果对应的PR被接受了,我们将根据贡献的质量和难度进行打分(0-5分,越高越好)。如果你累计获得了10分,可以联系我们获得面试机会或者为你写推荐信。
    
如果你可以修复某个issue或者增加一个新功能,欢迎给我们提交PR。如果对应的PR被接受了,我们将根据贡献的质量和难度进行打分(0-5分,越高越好)。如果你累计获得了10分,可以联系我们获得面试机会或者为你写推荐信。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录