ModelScope中怎么在昇腾d卡上用swift做微调训练啊?

ModelScope中怎么在昇腾d卡上用swift做微调训练啊?

展开
收起
小小鹿鹿鹿 2024-03-05 15:42:55 179 分享 版权
阿里云 AI 助理回答

在ModelScope中使用昇腾(Ascend)芯片进行Swift微调训练,需要结合阿里云PAI平台的相关工具和配置。以下是详细的步骤和操作指南:


1. 环境准备

在开始微调训练之前,您需要确保以下环境和资源已正确配置: - 硬件要求:昇腾(Ascend)芯片的计算资源。 - 软件环境: - 安装支持昇腾芯片的深度学习框架(如MindSpore或其他适配框架)。 - 配置ModelScope和Swift相关的依赖库。 - 数据存储:创建并挂载NAS文件系统,用于存储模型文件、训练数据和结果文件。

具体操作步骤

  1. 登录阿里云PAI控制台,选择目标地域(如华北6乌兰察布)。
  2. 创建DSW实例,选择支持昇腾芯片的镜像(如pytorch-develop:1.12-gpu-py39-cu113-ubuntu20.04或适配昇腾的自定义镜像)。
  3. 挂载NAS存储卷,路径通常为/mnt/data/nas

2. 下载模型

在ModelScope中下载目标模型文件,并将其加载到昇腾环境中。

操作步骤

  1. 在DSW开发环境中打开Terminal。
  2. 执行以下命令下载模型文件(以Llama-3为例):
    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,请设置代理后再尝试。


3. 准备训练数据

根据您的任务需求,准备适合的训练数据集。例如,您可以使用英文诗歌数据集进行微调。

操作步骤

  1. 在DSW的Notebook中执行以下命令下载示例数据集:
    !wget https://atp-modelzoo-sh.oss-cn-shanghai.aliyuncs.com/tutorial/llm_instruct/en_poetry_train.json
    
  2. 如果需要自定义数据集,请参考示例数据格式,准备符合任务需求的数据文件。

4. 安装Swift及相关依赖

Swift是ModelScope提供的轻量化微调工具,支持LoRA等高效微调方法。在昇腾环境中安装Swift及相关依赖。

操作步骤

  1. 在DSW的Notebook中执行以下命令安装Swift及相关依赖:
    !pip install modelscope==1.12.0 transformers==4.37.0
    !pip install swift
    
  2. 确保安装的版本与昇腾芯片兼容。如果遇到兼容性问题,请参考昇腾官方文档调整安装配置。

5. 微调训练

使用Swift工具对模型进行微调训练。以下是一个典型的LoRA微调训练命令:

操作步骤

  1. 在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微调的超参数。

  2. 重要提示:在昇腾环境中运行时,可能需要调整accelerate配置文件以适配昇腾芯片的分布式训练特性。


6. 模型推理与验证

完成微调后,可以使用Swift工具对模型进行推理验证。

操作步骤

  1. 在DSW的Notebook中编写代码启动WebUI应用:
    from swift import Swift
    model = Swift.from_pretrained('lora_model/')
    model.eval()
    
  2. 使用测试数据验证模型效果,并根据需要调整微调参数。

7. 部署模型服务

将微调后的模型部署为在线推理服务。

操作步骤

  1. 将训练好的模型文件上传至OSS Bucket。
  2. 登录PAI控制台,进入EAS(弹性推理服务)页面。
  3. 配置服务参数,包括镜像地址、模型路径、运行命令等。
  4. 启动服务并通过WebUI验证推理效果。

注意事项

  • 硬件兼容性:确保昇腾芯片的驱动和框架版本与Swift工具兼容。
  • 数据隐私:在使用外部数据集时,请遵守相关法律法规。
  • 性能优化:根据昇腾芯片的特性,调整训练参数以提升性能。

通过以上步骤,您可以在ModelScope中使用昇腾芯片完成Swift微调训练,并将模型部署为在线服务。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

热门讨论

热门文章

还有其他疑问?
咨询AI助理