[go: nahoru, domu]

Skip to content

ganzhiruyi/ustc_ml2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

使用13亿中文大模型对罪犯减刑时长进行预测。 赛题地址:https://www.datafountain.cn/competitions/611/ranking?isRedance=0&sch=2086

代码地址:https://github.com/ganzhiruyi/ustc_ml2023

分类任务

采用封神榜开源的中文最大Bert类模型Erlangshen-MegatronBert-1.3B ,作为中文底座大模型,将时长转化成34分类问题,交叉验证的方法进行模型训练。

Encoder结构为主的双向语言模型,专注于解决各种自然语言理解任务。 采用了Megatron-LM的工作,使用了32张A100,总共耗时14天在悟道语料库(180 GB版本)上训练了十亿级别参数量的BERT。同时,鉴于中文语法和大规模训练的难度,使用四种预训练策略来改进BERT:1) 整词掩码, 2) 知识动态遮掩, 3) 句子顺序预测, 4) 层前归一化.

训练流程:

  1. 初始化:开始时,所有分类的被初始化。
  2. 数据切分:1%的数据作为验证集,99%的数据作为训练集
  3. 迭代多个Epoch
    • 对于每一个step:
      • 学习率采用先线性warmup,然后再cosine decay的schedule
      • 计算总的训练分类loss,即当前模型预测与真实标签之间的差异。
      • 采用adam进行参数更新。
      • 过程中在验证集进行loss, accuracy, precise,recall,f1等多个指标验证。
  4. 预测:所有迭代完成后,进行测试集的预测。

实验中的参数设置

调参后主要参数设置如下

--model_max_length 512 \
--num_train_epochs 4 \
--per_device_train_batch_size 32 \
--gradient_accumulation_steps 1 \
--learning_rate 1e-5 \
--lr_scheduler_type cosine \
--adam_beta1 0.9 \
--adam_beta2 0.98 \
--adam_epsilon 1e-8 \
--max_grad_norm 1.0 \
--weight_decay 1e-1 \
--warmup_ratio 0.01 \
--logging_steps 1 \
--log_level "debug" \
--bf16 True \
--deepspeed $CONFIG_JSON \
--do_train \
--do_eval \
--evaluation_strategy "steps" \
--save_steps 5000 \
--eval_steps 200 \
--run_name $run_name \
--gradient_checkpointing False \

实验结果

训练集loss image.png

验证指标 image.png

提交结果

image.png image.png

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published