以前pytorch上进行bert微调很麻烦,现在有人搞了这个现成的库可以很方便的进行下游任务的微调,下面是其中文本分类的demo的用法,还是很简单的。
更多用法可以参考项目页详情。
文本分类
本项目展示了以 BERT 为代表的预训练模型如何 Finetune 完成文本分类任务。我们以中文情感分类公开数据集 ChnSentiCorp 为例,运行如下的命令,基于 DistributedDataParallel 进行单机多卡分布式训练,在训练集 (train.tsv) 上进行模型训练,并在验证集 (dev.tsv) 上进行评估:
CUDA_VISIBLE_DEVICES=0,1 python -m torch.distributed.launch --nproc_per_node=2 run_classifier.py --train_data_file ./data/ChnSentiCorp/train.tsv --dev_data_file ./data/ChnSentiCorp/dev.tsv --label_file ./data/ChnSentiCorp/labels.txt --save_best_model --epochs 3 --batch_size 32
可支持的配置参数:
usage: run_classifier.py [-h] [--local_rank LOCAL_RANK]
[--pretrained_model_name_or_path PRETRAINED_MODEL_NAME_OR_PATH]
[--init_from_ckpt INIT_FROM_CKPT] --train_data_file
TRAIN_DATA_FILE [--dev_data_file DEV_DATA_FILE]
--label_file LABEL_FILE [--batch_size BATCH_SIZE]
[--scheduler {linear,cosine,cosine_with_restarts,polynomial,constant,constant_with_warmup}]
[--learning_rate LEARNING_RATE]
[--warmup_proportion WARMUP_PROPORTION] [--seed SEED]
[--save_steps SAVE_STEPS]
[--logging_steps LOGGING_STEPS]
[--weight_decay WEIGHT_DECAY] [--epochs EPOCHS]
[--max_seq_length MAX_SEQ_LENGTH]
[--saved_dir SAVED_DIR]
[--max_grad_norm MAX_GRAD_NORM] [--save_best_model]
[--is_text_pair]