匹配任务:医疗问答
更新时间:2022-07-05
任务简介
医疗问答匹配:CHIP2019评测任务二,主要目标是针对中文的疾病问答数据,进行病种间的迁移学习。具体而言,给定来自5个不同病种的问句对,要求判定两个句子语义是否相同或者相近。本任务采用预训练模型ERNIE-Health进行训练,在通过文心使用ERNIE-Health非常简单,只需要将通用模型替换为ERNIE-Health即可。
快速开始
代码结构
├── data
│ ├── predict_data_mtch
│ │ └── predict.txt
│ ├── test_data_mtch
│ │ └── test.txt
│ └── train_data_mtch
│ └── train.txt
├── examples
│ ├── mtch_ernie_fc_pointwise_ch_infer.json
│ └── mtch_ernie_fc_pointwise_ch.json ## 网络的json配置文件
├── inference
│ ├── custom_inference.py
│ └── __init__.py
├── model
│ ├── base_matching.py
│ ├── ernie_matching_fc_pointwise.py
│ └── __init__.py
├── reader
│ └── ernie_classification_dataset_reader.py
├── run_infer.py ## 只依靠json进行模型预测的入口脚本
├── run_trainer.py ## 只依靠json进行模型训练的入口脚本
└── trainer
├── custom_dynamic_trainer.py
├── custom_trainer.py
└── __init__.py
数据准备
- 该任务仅提供调用ernie的接口,数据集不需要分词,且词表采用ernie模型的默认词表。数据集(包含词表)均为utf-8格式。
- 训练集、测试集和预测集分别存放在data文件夹中的train_data_mtch、test_data_mtch和predict_data_mtch路径下。
pointwise训练集/测试集/
- pointwise格式的训练集和测试集样例如下所示。数据分为三列,列与列之间用\t进行分隔。前两列为文本,最后一列为标签。
现在正在吃医生开的降血药,可以与北冬虫夏草保健品一起吃吗? 高血压能吃冬虫夏草吗? 1
糖尿病患者是否可食鸡蛋? 糖尿病人血压低是什么原因 0
请问糖尿病人怎么控制血糖 糖尿病如何快速控制血糖 1
预测集
艾滋病会通过接吻传染吗 和一个女同志接吻会感染艾滋病吗
高血压可以吃灵芝吗 高血压,糖尿病可以吃灵芝吗
中期乳腺癌的最佳治疗方法有什么 治疗乳腺癌的最佳方法呀?
训练我的第一个模型
开始训练
- 使用预置网络进行训练的方式为使用./run_trainer.py入口脚本,通过--param_path参数来传入./examples/目录下的json配置文件。
- 以预置的医疗问答匹配训练脚本mtch_ernie_health_1.0_fc_pointwise_ch.json为例,训练分为以下几个步骤
- 请使用以下命令在../../models_hub/中通过对应脚本download_ernie_health_1.0_ch.sh下载模型参数文件,以及其对应配置文件ernie_health_1.0_ch_config.json和词表vocab_ernie_health_1.0_ch.txt.
# download_ernie_health_1.0_ch.sh 模型下载
# 进入models_hub目录
cd ../../models_hub/
sh download_ernie_health_1.0_ch.sh
- 基于示例的数据集,可以运行以下命令在训练集(train.txt)上进行模型训练,并在测试集(test.txt)上进行验证;
# 基于json实现预置网络训练。其调用了配置文件./examples/mtch_ernie_fc_pointwise_ch.json
python run_trainer.py --param_path ./examples/mtch_ernie_fc_pointwise_ch.json
- 训练运行的日志会自动保存在./log/test.log文件中;
- 训练中以及结束后产生的模型文件会默认保存在./output/目录下,其中save_inference_model/文件夹会保存用于预测的模型文件,save_checkpoint/文件夹会保存用于热启动的模型文件
预测我的第一个模型
开始预测
- 使用预置网络进行预测的方式为使用./run_infer.py入口脚本,通过--param_path参数来传入./examples/目录下的json配置文件。
- 预测分为以下几个步骤:
- 基于示例的数据集,可以运行以下命令在预测集(predict.txt)上进行预测:
# 基于json实现预测。其调用了配置文件./examples/mtch_ernie_fc_pointwise_ch_infer.json
python run_infer.py --param_path ./examples/mtch_ernie_fc_pointwise_ch_infer.json
- 预测运行的日志会自动保存在./output/predict_result.txt文件中。