Hugging Face核心套件transformers提供了便于快速下载和使用的API,用户可以对预训练模型进行微调,已原生支持昇腾NPU。现已支持在昇腾NPU上对Transformers进行单机单卡、单机多卡的BF16、FP16格式训练、APEX模块下的混合精度进行训练。
python需为3.8版本及以上, PyTroch需为1.11.0版本及以上。
执行以下代码进行安装。
pip3 install -U transformers
这里以 text-classification任务为例说明如何在昇腾NPU微调bert模型。
git clone https://github.com/huggingface/transformers.git cd examples/pytorch/text-classification pip install -r requirements.txt
python run_glue.py \ --model_name_or_path bert-base-cased \ --task_name $TASK_NAME \ --do_train \ --do_eval \ --max_seq_length 128 \ --per_device_train_batch_size 32 \ --learning_rate 2e-5 \ --num_train_epochs 3 \ --fp16 \ --output_dir /tmp/$TASK_NAME/
python -m torch.distributed.launch --nproc_per_node=8 run_glue.py \ --model_name_or_path bert-base-cased \ --task_name $TASK_NAME \ --do_train \ --do_eval \ --max_seq_length 128 \ --per_device_train_batch_size 32 \ --learning_rate 2e-5 \ --num_train_epochs 3 \ --fp16 \ --output_dir /tmp/$TASK_NAME/
python run_glue.py \ --model_name_or_path bert-base-cased \ --task_name $TASK_NAME \ --do_train \ --do_eval \ --max_seq_length 128 \ --per_device_train_batch_size 32 \ --learning_rate 2e-5 \ --num_train_epochs 3 \ --fp16 \ --half_precision_backend apex \ --output_dir /tmp/$TASK_NAME/
参数 |
说明 |
---|---|
model_name_or_path |
与训练模型文件夹路径相同 |
task_name |
数据集任务名称 |
do_train |
执行训练 |
do_eval |
执行评估 |
max_seq_length |
最大序列长度 |
per_device_train_batch_size |
单张卡训练batch size |
learning_rate |
初始学习率 |
num_train_epochs |
训练的epoch次数 |
fp16 |
使用fp16格式的混合精度训练 |
half_precision_backend apex |
使用APEX模式的混合精度训练 |
output_dir |
训练结果和checkpoint保存路径 |