【大模型系列 06】LLaMA-7B/13B for PyTorch 昇腾迁移

这篇具有很好参考价值的文章主要介绍了【大模型系列 06】LLaMA-7B/13B for PyTorch 昇腾迁移。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

源码链接

https://gitee.com/ascend/ModelZoo-PyTorch/tree/master/PyTorch/built-in/foundation/LLaMA-13B

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模型。

  • 参考实现:

    url=https://github.com/lm-sys/FastChat.git
    commit_id=76f0424d1add61aadc8e5bdeed5ebe540f266ba3
    
  • 适配昇腾 AI 处理器的实现:

    url=https://gitee.com/ascend/ModelZoo-PyTorch.git
    code_path=PyTorch/built-in/foundation
    

准备训练环境

准备环境

默认配置需要每张卡有60G以上空闲内存。

  • 当前模型支持的 PyTorch 版本和已知三方库依赖如下表所示。

    表 1 版本支持表

    Torch_Version 三方库依赖版本
    PyTorch 1.11 deepspeed 0.6.0
  • 环境准备指导

    请参考《Pytorch框架训练环境准备》。

  • 安装依赖

    在模型源码包根目录下执行以下命令,安装依赖。

    pip3 install --upgrade pip
    pip3 install einops sympy regex decorator scipy setuptools scm prompt toolkit
    
  • 编译安装fschat

    在模型源码包根目录下执行命令,安装fachat库。

    pip3 install -e.
    
  • 安装deepspeed及对应deepspeed_npu插件。

    在模型源码包根目录下执行以下命令,安装deepspeed。

    pip3 install deepspeed==0.6.0 
    git clone https://gitee.com/ascend/DeepSpeed.git
    cd DeepSpeed
    python setup.py develop
    

    使用whereis命令查看deepspeed安装路径/path/to/deepspeed/bin/deepspeed
    ,并将deepspeed_npu包导入。

    打开"/path/to/deepspeed/bin/deepspeed"文件。

    vim /path/to/deepspeed/bin/deepspeed
    

    按“i”进入编辑模式,在“/path/to/deepspeed/bin/deepspeed”中增加以下内容。

    import deepspeed_npu
    
    

    按“ESC”键,输入:wq!,按“Enter”保存并退出编辑。

  • 替换transformers库中相关文件

    将源码包根目录下transformers_modify文件夹中的各个文件分别替换到transformers
    安装目录下的对应位置(基于transformers 4.28.1版本):

    training_args.py -> transformers/training_args.pu
    trainer.py -> transformers/trainer.py
    versions.py -> utils/versions.py
    modeling_llama.py -> transformers/models/llama/modeling_llama.py
    
  • 安装pdsh(多机训练需要)

    deepspeed的多机训练需要安装pdsh,下载链接:https://github.com/chaos/pdsh/releases/download/pdsh-2.34/pdsh-2.34.tar.gz.

    安装方法如下:

    chmod 777 configure
    ./configure --with-ssh --build=arm-linux
    make
    make install
    

准备数据集

  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. 数据预处理

    基于上述格式的数据集无需预处理即可训练,若为其他对话数据集,则需修改为上述格式。

获取预训练模型

参考链接:原始仓库上的README.md

Vicuna预训练参数介绍

Vicuna预训练参数以增量权重的形式发布,以符合LLaMA模型的license。用户可以通过将该增量权重叠加到
LLaMA原始权重上实现来使用,主要分为如下两步:

  1. 通过该链接获取huggingface形式的llama原始模型参数;
  2. 使用下面步骤获取Vicuna增量权重,它会自动从huggingface上下载增量权重;
Vicuna-7B

在源码包根目录下执行下列命令获得7B预训练模型(下载7B预训练模型大概需要占用30GB的CPU RAM空间)。

python3 -m fastchat.model.apply_delta \
--base-model-path /path/to/llama-7b \
--target-model-path /output/path/to/vicuna-7b \
--delta-path lmsys/vicuna-7b-delta-v1.1
Vicuna-13B

在源码包根目录下执行下列命令获得13B预训练模型(下载7B预训练模型大概需要占用60GB的CPU RAM空间)。

python3 -m fastchat.model.apply_delta \
--base-model-path /path/to/llama-13b \
--target-model-path /output/path/to/vicuna-13b \
--delta-path lmsys/vicuna-13b-delta-v1.1

下载完毕后,可以在源码包根目录下找到对应的预训练参数文件夹。

开始训练

训练模型

  1. 进入解压后的源码包根目录。

    cd /${模型文件夹名称} 
    
  2. 运行训练脚本。

    该模型支持单机8卡训练和双机16卡训练。

    • 将数据集置于源码包根目录下playground/data文件夹内(若路径不存在请用户自行创建)。

    • 单机八卡训练(LLaMA-7B)

      bash ./7B_finetune.sh    
      
    • 双机16卡训练(LLaMA-13B)

      bash ./13B_finetune.sh  
      

    模型训练脚本参数说明如下。

     --model_name_or_path                       // 预训练参数路径 
     --data_path                                // 数据集路径 
     --fp16                                     // 参数使用fp16保存
     --num_train_epochs                         // 训练epoch数
     --per_device_train_batch_size              // 每张卡上的训练batch size
     --per_device_eval_batch_size               // 每张卡上的评估batch size
     --gradient_accumulation_steps              // 梯度累积的步数
     --evaluation_strategy                      // 评估策略
     --save_strategy                            // ckpt保存策略
     --save_steps                               // ckpt保存间隔步数
     --save_total_limit                         // ckpt最大保存数量
     --learning_rate                            // 学习率
     --weight_decay                             // weight decay策略 
     --warmup_ratio                             // warmup步数的比例
     --lr_scheduler_type                        // 学习率衰减方式
     --logging_steps                            // 训练日志打印间隔步数
     --tf32 False                               // 使用tf32训练,npu暂不支持  
     --model_max_length                         // 模型训练的sequence length
     --gradient_checkpointing                   // 是否开启重计算 
     --deepspeed                                // deepspeed配置脚本路径
    

    deepspeed参数说明如下。

     --fp16                                     // 混合精度训练相关配置 
     --optimizer                                // 优化器相关配置
     --zero_optimization                        // zero优化器相关配置
     --gradient_accumulation_steps              // 梯度累积步数
     --gradient_clipping                        // 梯度裁剪
     --train_batch_size                         // 训练batch size
     --train_micro_batch_size_per_gpu           // 训练micro batch size
    
    

    训练完成后,权重文件保存在output_dir下,并输出模型训练精度和性能信息。

训练结果展示

表 2 训练结果展示表

NAME Acc@1 FPS(tokens/s/p) Epochs Zero_Type
7B-竞品A - 2452 3 zero1
7B-NPU - 2990 3 zero1
13B-竞品A - 1386 3 zero2
13B-NPU - 1498 3 zero2

模型推理

支持模型

  • Vicuna,LLaMA

执行推理

执行下列命令以完成模型推理(基于单NPU,推理13B模型大约需要28GB显存,推理7B模型大约需要14G显存)。

python3 -m fastchat.serve.cli --model-path path/to/FastChat/7B-vicuna --num-gpus 1
python3 -m fastchat.serve.cli --model-path path/to/FastChat/13B-vicuna --num-gpus 1

版本说明

变更

2023.07.05 首次发布。

FAQ

无。文章来源地址https://www.toymoban.com/news/detail-661248.html

到了这里,关于【大模型系列 06】LLaMA-7B/13B for PyTorch 昇腾迁移的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 三步实现BERT模型迁移部署到昇腾

    本文分享自华为云社区 《bert模型昇腾迁移部署案例》,作者:AI印象。 1. 基础镜像(由工具链小组统一给出D310P的基础镜像) From xxx 2. 安装mindspore 2.1.0,假定whl包和tar包已经下载到本地,下载地址:https://www.mindspore.cn/lite/docs/zh-CN/r2.0/use/downloads.html 3. 安装cann包6.3.RC2版本,假定

    2024年02月08日
    浏览(31)
  • 昇腾迁移丨4个TensorFlow模型训练案例解读

    本文分享自华为云社区《TensorFlow模型训练常见案例》,作者: 昇腾CANN。 基于TensorFlow的Python API开发的训练脚本默认运行在CPU/GPU/TPU上,为了使这些脚本能够利用昇腾AI处理器的强大算力,需要将其迁移到昇腾平台。 本期分享几个TensorFlow网络迁移到昇腾平台后执行失败或者执

    2024年02月05日
    浏览(23)
  • Quantitative Analysis: PIM Chip Demands for LLAMA-7B inference

    如果将LLAMA-7B模型参数量化为4bit,则存储模型参数需要3.3GB。那么,至少PIM chip 的存储至少要4GB。 AiM单个bank为32MB,单个die 512MB,至少需要8个die的芯片。 8个die集成在一个芯片上。 提供8×16bank级别的访存带宽。 整个推理过程完全下放至PIM。 CPU把 prompt 传给 Controller Controller 控

    2024年02月20日
    浏览(38)
  • LLM__llama-7B模型试验

    llama模型已经开源很久了,所以拿做小的模型做了个简单尝试 因为做简单尝试并不打算长期持有,所以以便宜、够用、好退货为主要参考依据购买阿里云服务器、 我看7B的模型权重大小就13GB,所以先购入一个 32GB内存的虚拟机 CPU内存: 4核(vCPU) 32 GiB ~ 操作系统: Alibaba Cloud Lin

    2024年02月09日
    浏览(29)
  • llama.cpp LLM模型 windows cpu安装部署;运行LLaMA-7B模型测试

    参考: https://www.listera.top/ji-xu-zhe-teng-xia-chinese-llama-alpaca/ https://blog.csdn.net/qq_38238956/article/details/130113599 cmake windows安装参考:https://blog.csdn.net/weixin_42357472/article/details/131314105 1、下载: 2、编译 3、测试运行 参考: https://zhuanlan.zhihu.com/p/638427280 模型下载: https://huggingface.co/nya

    2024年02月15日
    浏览(34)
  • Mistral 7B 比Llama 2更好的开源大模型 (三)

    Mistral 7B 比Llama 2更好的开源大模型 Mistral 7B是一个70亿参数的语言模型,旨在获得卓越的性能和效率。Mistral 7B在所有评估的基准测试中都优于最好的开放13B模型(Llama 2),在推理、数学和代码生成方面也优于最好的发布34B模型(Llama 1)。Mistral 7B模型利用分组查询注意力(G

    2024年02月05日
    浏览(27)
  • 大模型部署手记(11)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+llama.cpp+中文对话

    组织机构:Meta(Facebook) 代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models 模型:LIama-2-7b-hf、Chinese-LLaMA-Plus-2-7B   下载:使用huggingface.co和百度网盘下载 硬件环境:暗影精灵7Plus Windows版本:Windows 11家庭中文版 Insider Preview 22H2 内存 32G GPU显卡:Nvidia GTX 3080 Laptop (1

    2024年02月03日
    浏览(38)
  • 快速训练自己的大语言模型:基于LLAMA-7B的lora指令微调

    前言: 系统:ubuntu 18.04 显卡:A100-80G(蹭的,嘿嘿~) (本次主要记录如何快速进行大模型的指令微调) 地址:https://github.com/Lightning-AI/lit-llama 切换到工程目录 使用pip安装依赖库 (当然,这里可能会遇到网络问题,安装不了lightning) 可使用以下方式安装: 下载lightning工程

    2024年02月11日
    浏览(38)
  • 大模型部署手记(9)LLaMa2+Chinese-LLaMA-Plus-7B+Windows+llama.cpp+中文文本补齐

    组织机构:Meta(Facebook) 代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models 模型:llama-2-7b、Chinese-LLaMA-Plus-7B(chinese_llama_plus_lora_7b)   下载:使用download.sh下载 硬件环境:暗影精灵7Plus Windows版本:Windows 11家庭中文版 Insider Preview 22H2 内存 32G GPU显卡:Nvidia GTX 3080 La

    2024年02月03日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包