LLaMA-7B/13B for PyTorch
概述
LLaMA是由Meta AI发布的大语言系列模型,完整的名字是Large Language Model Meta AI。LLaMA按照参数量的大小分为四个型号:LLaMA-7B、LLaMA-13B、LLaMA-30B与LLaMA-65B。LLaMA 模型的效果极好,LLaMA-13B在大多数基准测试中的表现都优于GPT-3(175B ),且无需使用专门的数据集,只使用公开可用的数据集即可至训练至最优。本工程基于FastChat仓,主要聚焦于LLaMA-7B/13B模型。
准备训练环境
准备环境
默认配置需要每张卡有60G以上空闲内存。
- 当前模型支持的PyTorch版本和已知三方库依赖如下表所示。
表 1 版本支持表
请参考https://www.hiascend.com/document/detail/zh/ModelZoo/pytorchframework/ptes/ptes_00001.html
在模型源码包根目录下执行以下命令,安装依赖。
在模型源码包根目录下执行命令,安装fachat库。
- 安装deepspeed及对应deepspeed_npu插件。
在模型源码包根目录下执行以下命令,安装deepspeed。
使用whereis命令查看deepspeed安装路径/path/to/deepspeed/bin/deepspeed ,并将deepspeed_npu包导入。
打开"/path/to/deepspeed/bin/deepspeed"文件。
按“i”进入编辑模式,在“/path/to/deepspeed/bin/deepspeed”中增加以下内容。
按“ESC”键,输入:wq!,按“Enter”保存并退出编辑。
将源码包根目录下transformers_modify文件夹中的各个文件分别替换到transformers
安装目录下的对应位置(基于transformers 4.28.1版本):
deepspeed的多机训练需要安装pdsh,下载链接:https://github.com/chaos/pdsh/releases/download/pdsh-2.34/pdsh-2.34.tar.gz.
安装方法如下:
准备数据集
1、获取数据集
该任务以基于gpt3问答的数据集进行finetuning训练。
以alpaca-data-conversation数据集为例,数据集结构参考如下所示。
说明: 该数据集的训练过程脚本只作为一种参考示例。
2、数据预处理
基于上述格式的数据集无需预处理即可训练,若为其他对话数据集,则需修改为上述格式。
获取预训练模型
Vicuna预训练参数介绍
Vicuna预训练参数以增量权重的形式发布,以符合LLaMA模型的license。用户可以通过将该增量权重叠加到 LLaMA原始权重上实现来使用,主要分为如下两步:
- 通过该链接获取huggingface形式的llama原始模型参数;
- 使用下面步骤获取Vicuna增量权重,它会自动从huggingface上下载增量权重;
Vicuna-7B
在源码包根目录下执行下列命令获得7B预训练模型(下载7B预训练模型大概需要占用30GB的CPU RAM空间)。
Vicuna-13B
在源码包根目录下执行下列命令获得13B预训练模型(下载7B预训练模型大概需要占用60GB的CPU RAM空间)。
下载完毕后,可以在源码包根目录下找到对应的预训练参数文件夹。
开始训练
训练模型
1、进入解压后的源码包根目录。
2、运行训练脚本。
该模型支持单机8卡训练和双机16卡训练。
模型训练脚本参数说明如下:
deepspeed参数说明如下:
训练完成后,权重文件保存在output_dir下,并输出模型训练精度和性能信息。
训练结果展示
表 2 训练结果展示表
模型推理
支持模型
执行推理
执行下列命令以完成模型推理(基于单NPU,推理13B模型大约需要28GB显存,推理7B模型大约需要14G显存)。
LLaMA-7B/13B for PyTorch
概述
LLaMA是由Meta AI发布的大语言系列模型,完整的名字是Large Language Model Meta AI。LLaMA按照参数量的大小分为四个型号:LLaMA-7B、LLaMA-13B、LLaMA-30B与LLaMA-65B。LLaMA 模型的效果极好,LLaMA-13B在大多数基准测试中的表现都优于GPT-3(175B ),且无需使用专门的数据集,只使用公开可用的数据集即可至训练至最优。本工程基于FastChat仓,主要聚焦于LLaMA-7B/13B模型。
准备训练环境
准备环境
默认配置需要每张卡有60G以上空闲内存。
表 1 版本支持表
请参考https://www.hiascend.com/document/detail/zh/ModelZoo/pytorchframework/ptes/ptes_00001.html
在模型源码包根目录下执行以下命令,安装依赖。
在模型源码包根目录下执行命令,安装fachat库。
在模型源码包根目录下执行以下命令,安装deepspeed。
使用whereis命令查看deepspeed安装路径/path/to/deepspeed/bin/deepspeed ,并将deepspeed_npu包导入。
打开"/path/to/deepspeed/bin/deepspeed"文件。
按“i”进入编辑模式,在“/path/to/deepspeed/bin/deepspeed”中增加以下内容。
按“ESC”键,输入:wq!,按“Enter”保存并退出编辑。
将源码包根目录下transformers_modify文件夹中的各个文件分别替换到transformers
安装目录下的对应位置(基于transformers 4.28.1版本):
deepspeed的多机训练需要安装pdsh,下载链接:https://github.com/chaos/pdsh/releases/download/pdsh-2.34/pdsh-2.34.tar.gz.
安装方法如下:
准备数据集
1、获取数据集
该任务以基于gpt3问答的数据集进行finetuning训练。
以alpaca-data-conversation数据集为例,数据集结构参考如下所示。
[ { "id": "1", "conversations": [ { "from": "human", "value": "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n###Instruction:\nGive three tips for staying healthy.\n\n### Response:" }, { "from": "gpt", "value": "1.Eat a balanced diet and make sure to include plenty of fruits and vegetables. \n2. Exercise regularly to keep your body active and strong. \n3. Get enough sleep and maintain a consistent sleep schedule." } ] }, { "id": "2", "conversations": [ { "from": "human", "value": "Below is an instruction that describes a task. Write a response that appropriately completes the request.\n\n### Instruction:\nWhat are the three primary colors?\n\n### Response:" }, { "from": "gpt", "value": "The three primary colors are red, blue, and yellow." } ] }, ...说明: 该数据集的训练过程脚本只作为一种参考示例。
2、数据预处理
基于上述格式的数据集无需预处理即可训练,若为其他对话数据集,则需修改为上述格式。
获取预训练模型
Vicuna预训练参数介绍
Vicuna预训练参数以增量权重的形式发布,以符合LLaMA模型的license。用户可以通过将该增量权重叠加到 LLaMA原始权重上实现来使用,主要分为如下两步:
Vicuna-7B
在源码包根目录下执行下列命令获得7B预训练模型(下载7B预训练模型大概需要占用30GB的CPU RAM空间)。
Vicuna-13B
在源码包根目录下执行下列命令获得13B预训练模型(下载7B预训练模型大概需要占用60GB的CPU RAM空间)。
下载完毕后,可以在源码包根目录下找到对应的预训练参数文件夹。
开始训练
训练模型
1、进入解压后的源码包根目录。
cd /${模型文件夹名称}2、运行训练脚本。
该模型支持单机8卡训练和双机16卡训练。
将数据集置于源码包根目录下playground/data文件夹内(若路径不存在请用户自行创建)。
单机八卡训练(LLaMA-7B)
模型训练脚本参数说明如下:
deepspeed参数说明如下:
训练完成后,权重文件保存在output_dir下,并输出模型训练精度和性能信息。
训练结果展示
表 2 训练结果展示表
模型推理
支持模型
执行推理
执行下列命令以完成模型推理(基于单NPU,推理13B模型大约需要28GB显存,推理7B模型大约需要14G显存)。