更新时间:2024-06-07 GMT+08:00
分享

场景介绍

Qwen大模型是一个包含多种参数数量模型的语言模型。

本文档以Qwen-7B/14B/72B为例,利用训练框架Pytorch_npu+华为自研Ascend Snt9b硬件,为用户提供了开箱即用的预训练和微调训练方案。

操作流程

图1 操作流程图
表1 操作任务流程说明

阶段

任务

说明

准备工作

准备环境

购买并开通模型运行所需的资源环境。

准备代码

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

准备数据

准备数据,可以用Alpaca数据集,也可以使用自己准备的数据集。

准备镜像

准备模型适用的容器镜像,包括容器内资源检查

预训练

预训练

介绍如何进行预训练,包括训练数据处理、超参配置、训练任务、断点续训及性能查看。

微调训练

SFT微调训练

介绍如何进行SFT微调训练。

LoRA微调训练

介绍如何进行LoRA微调训练。

推理前的权重转换

-

模型训练完成后,可以将训练产生的权重文件用于推理。推理前参考本章节,将训练后生成的多个权重文件合并,并转换成Huggingface格式的权重文件。

如果无推理任务或者使用开源Huggingface权重文件进行推理,可以忽略此章节。和本文档配套的推理文档请参考《开源大模型基于DevServer的推理通用指导》。

微调训练和预训练的区别

微调训练是在预训练权重的基础上使用指令数据集进行的,对模型权重进行学习调整。从而针对特定任务达到预期效果。

微调训练与预训练任务的区别主要包括:

  1. 使用的数据不同,微调使用的是指令数据集,在处理数据集时需要将--handler-name 参数指定为GeneralInstructionHandler。
  2. 因数据集不同,loss计算方式不同。需要在微调训练时指定--finetune 和--is-instruction-dataset参数,微调任务的脚本里面已经自动识别添加。
  3. 启动脚本的环境变量RUN_TYPE需要指定为sft或者lora。
分享:

    相关文档

    相关产品