UER-py简介
UER-py(Universal Encoder Representations)是一个基于PyTorch的开源预训练模型框架,用于通用领域语料的预训练和下游任务的微调。它具有以下主要特点:
- 模型模块化:将模型分为嵌入、编码器、目标嵌入、解码器、目标等组件, 用户可以灵活组合构建预训练模型
- 易于使用和扩展:提供清晰的接口, 方便用户使用和进一步扩展
- 支持多种训练模式:支持CPU、单GPU和分布式训练
- 丰富的预训练模型库:提供基于不同语料、编码器和目标的预训练模型
- SOTA结果:在多个NLP任务上取得了优秀的效果
主要功能
UER-py支持以下主要功能:
- 预处理:将原始语料处理成预训练模型所需的格式
- 预训练:在通用领域语料上进行预训练
- 微调:在下游任务上微调预训练模型
- 推理:使用微调后的模型进行预测
- 特征提取:提取文本的特征表示
- 文本生成:基于预训练语言模型生成文本
快速上手
以下是使用UER-py的基本流程:
- 预处理语料:
python3 preprocess.py --corpus_path corpora/book_review_bert.txt --vocab_path models/google_zh_vocab.txt \
--dataset_path dataset.pt --processes_num 8 --data_processor bert
- 预训练模型:
python3 pretrain.py --dataset_path dataset.pt --vocab_path models/google_zh_vocab.txt \
--pretrained_model_path models/google_zh_model.bin \
--config_path models/bert/base_config.json \
--output_model_path models/book_review_model.bin \
--world_size 8 --gpu_ranks 0 1 2 3 4 5 6 7 \
--total_steps 5000 --save_checkpoint_steps 1000 --batch_size 32
- 微调模型:
python3 finetune/run_classifier.py --pretrained_model_path models/book_review_model.bin \
--vocab_path models/google_zh_vocab.txt \
--config_path models/bert/base_config.json \
--train_path datasets/book_review/train.tsv \
--dev_path datasets/book_review/dev.tsv \
--test_path datasets/book_review/test.tsv \
--epochs_num 3 --batch_size 32
- 使用模型推理:
python3 inference/run_classifier_infer.py --load_model_path models/finetuned_model.bin \
--vocab_path models/google_zh_vocab.txt \
--config_path models/bert/base_config.json \
--test_path datasets/book_review/test_nolabel.tsv \
--prediction_path datasets/book_review/prediction.tsv \
--labels_num 2
学习资源
-
UER-py项目Wiki:包含完整的文档说明
-
快速入门指南:提供丰富的使用案例
-
预训练数据:提供多种预训练语料
-
下游任务数据集:提供多个下游任务数据集
-
预训练模型库:包含多种预训练模型及下载链接
-
使用说明:帮助用户快速实现BERT、GPT-2、ELMo、T5等模型的预训练和微调
-
竞赛方案:提供使用UER-py在NLP竞赛中取得SOTA结果的案例
总结
UER-py是一个功能强大且易于使用的预训练模型框架, 为NLP研究和应用提供了良好的工具支持。通过阅读本文介绍的学习资源, 相信读者可以快速掌握UER-py的使用方法, 并将其应用到自己的NLP项目中。