本仓库是基于NVIDIA BERT For PyTorch的MLU实现
Models | Framework | Supported MLU | Supported Data Precision | Multi-GPUs |
---|---|---|---|---|
BERT | PyTorch1.6 | MLU370-X8 | FP32 | Yes |
Models | Framework | Supported MLU | Supported Data Precision |
---|---|---|---|
BERT | PyTorch1.6 | MLU370-S4/X4 | FP32 |
模型优化器为BERT定制的Adam,参数配置如下:
run_squad.py
:训练和推理文件,更多信息使用python run_squad.py -h
查看run_squad.sh
:训练和推理脚本,对run_squad.py
的封装下载数据集SQuADv1.1 并解压(也可以通过仓库models/data/squad/squad_download.sh脚本下载),包含的内容如下:
|
|——dev-v1.1.json
|——evaluate-v1.1.py
|——train-v1.1.json
指定数据集环境变量:
export SQUAD_DIR=YOUR_DATASET_PATH
##下载Cambricon PyTorch docker镜像
docker load -i xxx.tar.gz
#修改run_docker.sh中的/your/data:/your/data,其中
#前一个/your/data为用户host主机端data真实路径,
#后一个/your/data为映射到容器内的路径。
bash run_docker.sh
#1、env.sh中的`SQUAD_DIR`为容器内squad训练数据集的路径,这个环境变量需要用户根据真实情况设置。
#2、env.sh中的`BERT_MODEL`为BERT网络预训练权重,这个环境变量需要用户根据真实情况设置,下载链接和转换步骤见下面准备预训练模型部分。
#3、env.sh中的`BERT_INFER_MODEL`为BERT网络推理时的权重,这个环境变量需要用户根据真实情况设置。
source env.sh
source /torch/venv3/pytorch/bin/activate
export IMAGE_NAME=demo_bert
docker build --network=host -t $IMAGE_NAME -f DOCKERFILE ../../../
docker run -it --ipc=host -v /data:/data -v /usr/bin/cnmon:/usr/bin/cnmon --device /dev/cambricon_ctl --privileged --name mlu_bert --network=host $IMAGE_NAME
#1、env.sh中的`SQUAD_DIR`为容器内squad训练数据集的路径,这个环境变量需要用户根据真实情况设置。
#2、env.sh中的`BERT_MODEL`为BERT网络预训练权重,这个环境变量需要用户根据真实情况设置,下载链接和转换步骤见下面准备预训练模型部分。
#3、env.sh中的`BERT_INFER_MODEL`为BERT网络推理时的权重,这个环境变量需要用户根据真实情况设置。
source env.sh
source /torch/venv3/pytorch/bin/activate
下载预训练模型BERT并解压,包含内容如下:
.
├── bert_config.json
├── bert_model.ckpt.data-00000-of-00001
├── bert_model.ckpt.index
├── bert_model.ckpt.meta
└── vocab.txt
下载的预训练模型是TF的checkpoint,需要通过models/convert_bert_original_tf_checkpoint_to_pytorch.py 脚本转换为PyTorch的checkpoint,转换前需要先安装以下依赖
pip install protobuf==3.20.0
pip install tensorflow==1.15.0
调用脚本进行转换
python convert_bert_original_tf_checkpoint_to_pytorch.py --tf_checkpoint_path /Path/to/bert_model.ckpt --bert_config_file /Path/to/bert_config.json --pytorch_dump_path /Path/to/pytorch_model.pt
指定预训练模型和推理模型环境变量:
export BERT_MODEL=/Path/to/pytorch_model.pt
export BERT_INFER_MODEL=/Path/to/infer_pytorch_model.bin #一般为Training的output路径下
bash run_scripts/BERT_FP32_2E_4MLUs_Train.sh
Models | Framework | MLU | Data Precision | Cards | Description | Run |
---|---|---|---|---|---|---|
BERT | PyTorch | MLU370-X8 | FP32 | 4 | finetune training use 4 MLUs | bash run_scripts/BERT_FP32_2E_4MLUs_Train.sh |
在推理前需要设置BERT_INFER_MODEL环境变量,指定需要推理的模型,如果是经过上面训练脚步执行后的,模型位置一般在models/output/pytorch_model.bin
Models | Framework | MLU | Data Precision | Description | Run |
---|---|---|---|---|---|
BERT | PyTorch | MLU370-S4/X4 | FP32 | inference script | bash run_scripts/BERT_Infer.sh |
Training accuracy result:MLU370-X8
Models | Data Precision | F1 Score |
---|---|---|
BERT | FP32 | 88.69 |
您明确了解并同意,以下链接中的软件、数据或者模型由第三方提供并负责维护。在以下链接中出现的任何第三方的名称、商标、标识、产品或服务并不构成明示或暗示与该第三方或其软件、数据或模型的相关背书、担保或推荐行为。您进一步了解并同意,使用任何第三方软件、数据或者模型,包括您提供的任何信息或个人数据(不论是有意或无意地),应受相关使用条款、许可协议、隐私政策或其他此类协议的约束。因此,使用链接中的软件、数据或者模型可能导致的所有风险将由您自行承担。
数据集下载链接:SQuAD v1.1 预训练模型下载链接:BERT
@TODO
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。