ModelScope中怎么在昇腾d卡上用swift做微调训练啊?
在ModelScope中使用昇腾(Ascend)芯片进行Swift微调训练,需要结合阿里云PAI平台的相关工具和配置。以下是详细的步骤和操作指南:
在开始微调训练之前,您需要确保以下环境和资源已正确配置: - 硬件要求:昇腾(Ascend)芯片的计算资源。 - 软件环境: - 安装支持昇腾芯片的深度学习框架(如MindSpore或其他适配框架)。 - 配置ModelScope和Swift相关的依赖库。 - 数据存储:创建并挂载NAS文件系统,用于存储模型文件、训练数据和结果文件。
pytorch-develop:1.12-gpu-py39-cu113-ubuntu20.04
或适配昇腾的自定义镜像)。/mnt/data/nas
。在ModelScope中下载目标模型文件,并将其加载到昇腾环境中。
mkdir /mnt/workspace/llama3-ckpts
cd /mnt/workspace/llama3-ckpts
git clone https://www.modelscope.cn/LLM-Research/Meta-Llama-3-8B.git
cd Meta-Llama-3-8B
rm -rf .git
注意:如果无法访问ModelScope,请设置代理后再尝试。
根据您的任务需求,准备适合的训练数据集。例如,您可以使用英文诗歌数据集进行微调。
!wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/tutorial/llm_instruct/en_poetry_train.json
Swift是ModelScope提供的轻量化微调工具,支持LoRA等高效微调方法。在昇腾环境中安装Swift及相关依赖。
!pip install modelscope==1.12.0 transformers==4.37.0
!pip install swift
使用Swift工具对模型进行微调训练。以下是一个典型的LoRA微调训练命令:
在DSW的Notebook中执行以下命令启动微调训练:
!accelerate launch --num_processes 1 --config_file /ml/code/multi_gpu.yaml /ml/code/sft.py \
--model_name ./LLM-Research/Meta-Llama-3-8B-Instruct/ \
--model_type llama \
--train_dataset_name en_poetry_train.json \
--num_train_epochs 3 \
--batch_size 8 \
--seq_length 128 \
--learning_rate 5e-4 \
--lr_scheduler_type linear \
--target_modules k_proj o_proj q_proj v_proj \
--output_dir lora_model/ \
--apply_chat_template \
--use_peft \
--load_in_4bit \
--peft_lora_r 32 \
--peft_lora_alpha 32
参数说明: - --model_name
:指定模型路径。 - --train_dataset_name
:指定训练数据集路径。 - --num_train_epochs
:训练轮数。 - --batch_size
:批量大小。 - --seq_length
:序列长度。 - --learning_rate
:学习率。 - --peft_lora_r
和 --peft_lora_alpha
:LoRA微调的超参数。
重要提示:在昇腾环境中运行时,可能需要调整accelerate
配置文件以适配昇腾芯片的分布式训练特性。
完成微调后,可以使用Swift工具对模型进行推理验证。
from swift import Swift
model = Swift.from_pretrained('lora_model/')
model.eval()
将微调后的模型部署为在线推理服务。
通过以上步骤,您可以在ModelScope中使用昇腾芯片完成Swift微调训练,并将模型部署为在线服务。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352