Peter-Chou/cgec-initialized-with-plm

Python

3

4 commits

updated Feb 14, 2022

See the code

README

中文语法纠错

环境准备

模型训练/测试环境准备

Python版本:3.8

# 在项目根目录下运行
pip install -r requirements.txt

其中 torch==1.7.1+cu101, transformers==4.3.3, pypinyin==0.40.0, jieba==0.42.1, sentencepiece==0.1.95

模型评估环境准备

下载评估模型所需的docker镜像

docker pull zhou00009/m2scorer-chinese:1.1.0

或者可以手工构建该镜像,两者选其一

# 在项目根目录下运行
cd ./docker
docker build -t zhou00009/m2scorer-chinese:1.1.0 -f m2scorer-chinese.dockerfile .

下载数据

# 在项目根目录下运行
python download_data.py

数据预处理

# 在项目根目录下运行
python preprocess_data.py

训练模型

# 模型训练(初筛阶段/正式训练阶段)
model_name=model_name_you_select  # e.g. roberta_roberta
stage=stage_of_your_model  # stage 可以是 preselect / formal
# 在项目根目录下运行
./scripts/train_model.sh --mode=${stage} --model_name=${model_name}

模型评估

获得模型在测试集上的预测结果

model_name=model_name_you_select
stage=stage_of_your_model
epoch_num=best_ckpt_folder_name  # e.g. epoch-6, epoch-10
# 在项目根目录下运行
./scripts/eval_model.sh --model_name=${model_name} --mode=${stage} --ckpt=${epoch_num}

模型在测试集上的预测会在./evaluation/${model_name}/${stage}/${model_name}_${stage}_${epoch_num}.txt文件里。

评估模型

model_name=model_name_you_select
stage=stage_of_your_model
epoch_num=best_ckpt_folder_name
# 在项目根目录下运行
docker run --rm --user $(id -u):$(id -g) \
	--mount type=bind,source=`pwd`/evaluation,target=/evaluation \
	-t zhou00009/m2scorer-chinese:1.1.0 \
	evaluation/${model_name}/${stage}/${model_name}_${stage}_${epoch_num}.txt

模型在测试集上表现的评估结果会在./evaluation/${model_name}/${stage}/${model_name}_${stage}_${epoch_num}_score_result文件里。

实验结果

初次筛选阶段

消融实验

model namePR
RoBERTa_RoBERTa32.8624.6230.80
RoBERTa_RoBERTa_share32.8024.5430.73
RoBERTa_RoBERTa_nomask29.7620.0727.14

使用decoder异构分别初始化Transformer方法的模型表现

model namePR
ERNIE_ERNIE_share35.4224.7832.62
ERNIE_ERNIE34.7125.9232.50
RoBERTa_RoBERTa32.8624.6230.80
MacBERT_MacBERT32.5723.8530.35
WoBERT_WoBERT30.6226.7529.76
UniLM_UniLM31.0323.4629.15

使用decoder同构分别初始化Transformer方法的模型表现

model namePR
MacBERT_GPT229.8927.9629.48
RoBERTa_GPT229.7327.8029.32
ERNIE_GPT229.0128.1328.83
WoBERT_GPT228.1630.1428.53
UniLM_GPT228.7425.8928.12

使用直接初始化Transformer方法到模型表现

model namePR
T539.1925.2635.30
BART37.1824.4333.66

正式训练阶段

model namePR
ERNIE_ERNIE47.7526.3541.08
ERNIE_ERNIE_share48.1025.1940.70
T544.1128.0439.58
MacBERT_GPT241.5927.6837.79

Peter-Chou/cgec-initialized-with-plm

Python

3

4 commits

updated Feb 14, 2022

See the code

README

中文语法纠错

环境准备

模型训练/测试环境准备

Python版本:3.8

# 在项目根目录下运行
pip install -r requirements.txt

其中 torch==1.7.1+cu101, transformers==4.3.3, pypinyin==0.40.0, jieba==0.42.1, sentencepiece==0.1.95

模型评估环境准备

下载评估模型所需的docker镜像

docker pull zhou00009/m2scorer-chinese:1.1.0

或者可以手工构建该镜像,两者选其一

# 在项目根目录下运行
cd ./docker
docker build -t zhou00009/m2scorer-chinese:1.1.0 -f m2scorer-chinese.dockerfile .

下载数据

# 在项目根目录下运行
python download_data.py

数据预处理

# 在项目根目录下运行
python preprocess_data.py

训练模型

# 模型训练(初筛阶段/正式训练阶段)
model_name=model_name_you_select  # e.g. roberta_roberta
stage=stage_of_your_model  # stage 可以是 preselect / formal
# 在项目根目录下运行
./scripts/train_model.sh --mode=${stage} --model_name=${model_name}

模型评估

获得模型在测试集上的预测结果

model_name=model_name_you_select
stage=stage_of_your_model
epoch_num=best_ckpt_folder_name  # e.g. epoch-6, epoch-10
# 在项目根目录下运行
./scripts/eval_model.sh --model_name=${model_name} --mode=${stage} --ckpt=${epoch_num}

模型在测试集上的预测会在./evaluation/${model_name}/${stage}/${model_name}_${stage}_${epoch_num}.txt文件里。

评估模型

model_name=model_name_you_select
stage=stage_of_your_model
epoch_num=best_ckpt_folder_name
# 在项目根目录下运行
docker run --rm --user $(id -u):$(id -g) \
	--mount type=bind,source=`pwd`/evaluation,target=/evaluation \
	-t zhou00009/m2scorer-chinese:1.1.0 \
	evaluation/${model_name}/${stage}/${model_name}_${stage}_${epoch_num}.txt

模型在测试集上表现的评估结果会在./evaluation/${model_name}/${stage}/${model_name}_${stage}_${epoch_num}_score_result文件里。

实验结果

初次筛选阶段

消融实验

model namePR
RoBERTa_RoBERTa32.8624.6230.80
RoBERTa_RoBERTa_share32.8024.5430.73
RoBERTa_RoBERTa_nomask29.7620.0727.14

使用decoder异构分别初始化Transformer方法的模型表现

model namePR
ERNIE_ERNIE_share35.4224.7832.62
ERNIE_ERNIE34.7125.9232.50
RoBERTa_RoBERTa32.8624.6230.80
MacBERT_MacBERT32.5723.8530.35
WoBERT_WoBERT30.6226.7529.76
UniLM_UniLM31.0323.4629.15

使用decoder同构分别初始化Transformer方法的模型表现

model namePR
MacBERT_GPT229.8927.9629.48
RoBERTa_GPT229.7327.8029.32
ERNIE_GPT229.0128.1328.83
WoBERT_GPT228.1630.1428.53
UniLM_GPT228.7425.8928.12

使用直接初始化Transformer方法到模型表现

model namePR
T539.1925.2635.30
BART37.1824.4333.66

正式训练阶段

model namePR
ERNIE_ERNIE47.7526.3541.08
ERNIE_ERNIE_share48.1025.1940.70
T544.1128.0439.58
MacBERT_GPT241.5927.6837.79