更新时间:2024-09-14 GMT+08:00
分享

场景介绍

方案概览

本文档利用训练框架LlamaFactory+华为自研Ascend Snt9B硬件,为用户提供了常见主流开源大模型在ModelArts Lite DevServer上的微调方案,包括SFT全参微调、LoRA微调、DPO训练方案。

  • DPO(Direct Preference Optimization):直接偏好优化方法,通过直接优化语言模型来实现对大模型输出的精确把控,不用进行强化学习,也可以准确判断和学习到使用者的偏好,最后,DPO算法还可以与其他优化算法相结合,进一步提高深度学习模型的性能。
  • SFT监督式微调(Self-training Fine-tuning):是一种利用有标签数据进行模型训练的方法。 它基于一个预先训练好的模型,通过调整模型的参数,使其能够更好地拟合特定任务的数据分布。 与从头开始训练模型相比,监督式微调能够充分利用预训练模型的知识和特征表示,从而加速训练过程并提高模型的性能。
  • LoRA微调LoRA(Low-Rank Adaptation):微调是一种用于调整大型预训练模型的高效微调技术。 这种方法主要针对如何在保持模型大部分参数固定的同时,通过引入少量可训练参数来调整模型以适应特定任务。

本方案目前仅适用于部分企业客户,完成本方案的部署,需要先联系您所在企业的华为方技术支持。

约束限制

  • 本文档适配昇腾云ModelArts 6.3.908版本,请参考表1获取配套版本的软件包,请严格遵照版本配套关系使用本文档。
  • 本文档中的模型运行环境是ModelArts Lite DevServer。
  • 镜像适配的Cann版本是cann_8.0.RC3。
  • DevServer驱动版本要求23.0.6
  • PyTorch版本:2.2.0
  • Python版本:3.10
  • 确保容器可以访问公网。

训练支持的模型列表

本方案支持以下模型的训练,如表1所示。

表1 支持的模型列表及权重文件地址

支持模型

Template

支持模型参数量

权重文件获取地址

Llama2

llama2

llama2-7b

https://huggingface.co/meta-llama/Llama-2-7b-chat-hf

llama2-13b

https://huggingface.co/meta-llama/Llama-2-13b-chat-hf

llama2-70b

https://huggingface.co/meta-llama/Llama-2-70b-chat-hf

Llama3

llama3

llama3-8b

https://huggingface.co/meta-llama/Meta-Llama-3-8B-Instruct

llama3-70b

https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct

Llama3.1

llama3

llama3.1-8b

https://huggingface.co/meta-llama/Meta-Llama-3.1-8B-Instruct/tree/main

llama3.1-70b

https://huggingface.co/meta-llama/Meta-Llama-3.1-70B-Instruct/tree/main

Qwen1.5

qwen

qwen1.5-0.5b

https://huggingface.co/Qwen/Qwen1.5-0.5B

qwen1.5-1.8b

https://huggingface.co/Qwen/Qwen1.5-1.8B-Chat

qwen1.5-4b

https://huggingface.co/Qwen/Qwen1.5-4B

qwen1.5-7b

https://huggingface.co/Qwen/Qwen1.5-7B-Chat

qwen1.5-14b

https://huggingface.co/Qwen/Qwen1.5-14B-Chat

Yi

yi

yi-6b

https://huggingface.co/01-ai/Yi-6B-Chat

yi-34b

https://huggingface.co/01-ai/Yi-34B-Chat

Qwen2

qwen

qwen2-0.5b

https://huggingface.co/Qwen/Qwen2-0.5B-Instruct

qwen2-1.5b

https://huggingface.co/Qwen/Qwen2-1.5B-Instruct

qwen2-7b

https://huggingface.co/Qwen/Qwen2-7B-Instruct

qwen2-72b

https://huggingface.co/Qwen/Qwen2-72B-Instruct

Falcon2

falcon

falcon-11B

https://huggingface.co/tiiuae/falcon-11B

GLM-4

glm4

glm4-9b

https://huggingface.co/THUDM/glm-4-9b-chat

说明:

glm4-9b模型必须使用版本4b556ad4d70c38924cb8c120adbf21a0012de6ce

表2 操作任务流程说明

阶段

任务

说明

准备工作

准备环境

本教程案例是基于ModelArts Lite DevServer运行的,需要购买并开通DevServer资源。

准备代码

准备AscendSpeed训练代码、分词器Tokenizer和推理代码。

准备数据

准备训练数据,可以用本案使用的数据集,也可以使用自己准备的数据集。

准备镜像

准备训练模型适用的容器镜像。

微调训练

指令监督微调训练

介绍如何进行SFT全参微调/lora微调、训练任务、性能查看。

相关文档