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/