概述
简述
bert4torch是一个基于pytorch的训练框架,前期以效仿和实现bert4keras的主要功能为主,方便加载多类预训练模型进行finetune,提供了中文注释方便用户理解模型结构。主要是期望应对新项目时,可以直接调用不同的预训练模型直接finetune,或方便用户基于bert进行修改,快速验证自己的idea;节省在github上clone各种项目耗时耗力,且本地文件各种copy的问题。
参考实现:
[object Object]
适配昇腾 AI 处理器的实现:
[object Object]
准备训练环境
准备环境
当前模型支持的 PyTorch 版本和已知三方库依赖如下表所示。
表 1 版本支持表
Torch_Version 三方库依赖版本 PyTorch 1.5 - PyTorch 1.8 - PyTorch 1.11 - PyTorch 2.1 - 环境准备指导。
请参考《Pytorch框架训练环境准备》。
安装依赖。
在模型源码包根目录下执行命令。
[object Object]
本模型在X86平台上性能显著高于ARM。
请注意开启cpu性能模式,否则会影响模型性能,详细参考 将cpu设置为performance模式。
准备数据集
获取数据集。
主要参考bert4torch进行人民日报
NER
数据集准备。 用户需自己新建一个$data_path
路径,用于放预训练模型和数据集,$data_path
可以设置为服务器的任意目录(注意存放的磁盘需要为NVME固态硬盘)。 下载人民日报数据集,解压到$data_path
下。数据集目录结构参考如下。
[object Object]
说明: 该数据集的训练过程脚本只作为一种参考示例。
获取预训练模型
用户需在 $data_path
目录下新建 pretrained_model
文件夹,下载Bertbase chinese预训练模型,将下载好的文件放在 $data_path/pretrained_model
目录下。
$data_path
最终的目录结构如下。
```
$data_path
├── china-people-daily-ner-corpus
│ ├── example.dev
│ ├── example.test
│ └── example.train
└── pretrained_model
├── config.json
├── pytorch_model.bin
├── tokenizer_config.json
├── tokenizer.json
└── vocab.txt
[object Object]
cd /${模型文件夹名称}
[object Object]
公共参数: --train_epochs //训练的总epochs数 --workers //dataloader开启的线程数 --data_path //数据集路径
[object Object]