DialoGLUE 开源项目使用教程
1. 项目的目录结构及介绍
DialoGLUE 项目的目录结构如下:
dialoglue/
├── data_utils/
│ ├── dialoglue/
│ │ ├── banking/
│ │ ├── clinc/
│ │ ├── dstc8_sgd/
│ │ ├── hwu/
│ │ ├── multiwoz/
│ │ ├── restaurant8k/
│ │ └── top/
├── bert_models.py
├── constants.py
├── data_readers.py
├── dump_outputs.py
├── dump_outputs_fewshot.py
├── evaluate.py
├── gt_test.json
├── mwoz_config
├── requirements.txt
├── run.py
└── run_train.sh
目录结构介绍
- data_utils/: 包含所有数据集的下载和预处理脚本。
- dialoglue/: 包含各个数据集的文件夹,如
banking
,clinc
,dstc8_sgd
,hwu
,multiwoz
,restaurant8k
,top
。
- dialoglue/: 包含各个数据集的文件夹,如
- bert_models.py: 包含 BERT 模型的相关代码。
- constants.py: 包含项目中使用的常量定义。
- data_readers.py: 包含数据读取和预处理的代码。
- dump_outputs.py: 用于生成提交文件的脚本。
- dump_outputs_fewshot.py: 用于生成少样本实验提交文件的脚本。
- evaluate.py: 用于评估模型性能的脚本。
- gt_test.json: 测试集的 ground truth 文件。
- mwoz_config: MultiWOZ 数据集的配置文件。
- requirements.txt: 项目依赖的 Python 包列表。
- run.py: 项目的主要运行脚本,用于训练和评估模型。
- run_train.sh: 用于训练模型的 shell 脚本。
2. 项目的启动文件介绍
项目的启动文件是 run.py
,该文件用于训练和评估模型。以下是启动文件的主要功能介绍:
- 训练模型: 通过指定数据路径、模型名称、任务类型等参数,可以启动模型的训练过程。
- 评估模型: 可以通过设置
--num_epochs
为 0,仅进行模型的评估。 - 生成提交文件: 训练完成后,可以使用
dump_outputs.py
或dump_outputs_fewshot.py
生成提交文件。
使用示例
python run.py \
--train_data_path data_utils/dialoglue/hwu/train.csv \
--val_data_path data_utils/dialoglue/hwu/val.csv \
--test_data_path data_utils/dialoglue/hwu/test.csv \
--token_vocab_path bert-base-uncased-vocab.txt \
--train_batch_size 64 --dropout 0.1 --num_epochs 100 --learning_rate 6e-5 \
--model_name_or_path convbert-dg --task intent --do_lowercase --max_seq_length 50 --mlm_pre --mlm_during --dump_outputs
3. 项目的配置文件介绍
项目的配置文件主要包括 requirements.txt
和 mwoz_config
。
requirements.txt
该文件列出了项目运行所需的 Python 包及其版本。使用以下命令安装依赖:
pip install -r requirements.txt
mwoz_config
该文件是 MultiWOZ 数据集的配置文件,包含数据集的路径、模型参数等信息。具体内容如下:
{
"data_path": "data_utils/dialoglue/multiwoz/MULTIWOZ2.1",
"model_name_or_path": "convbert-dg",
"train_batch_size": 64,
"dropout": 0.1,
"num_epochs": 100,
"learning_rate": 6e-5,
"max_seq_length": 50,
"mlm_pre": true,
"mlm_during": true
}
通过修改这些配置文件,可以调整模型的训练参数和数据路径。