当前位置:   article > 正文

LLMs之LLaMA-7B-QLoRA:基于Alpaca-Lora代码在CentOS和多卡(A800+并行技术)实现全流程完整复现LLaMA-7B—安装依赖、转换为HF模型文件、模型微调(QLoRA+_alpaca-lora-7b

alpaca-lora-7b

LLMs之LLaMA-7B-QLoRA:基于Alpaca-Lora代码在CentOS和多卡(A800+并行技术)实现全流程完整复现LLaMA-7B—安装依赖、转换为HF模型文件、构造数据集(Alpaca利用ChatGPT生成52K指令数据集+多份json格式)、模型微调(微调7B-QLoRA=单卡/8卡【7B仅2H+各卡不到6G】—微调65B-QLoRA(单卡GPU微调=5个小时+仅48G,多卡微调【8张GPU】=每单卡仅10G))、模型推理(仅7G+对比终端命令/llama.cpp/Docker封装)图文教程之详细攻略

目录

基于Alpaca-Lora代码在CentOS和多卡(A800+并行技术)实现全流程完整复现LLaMA-7B—安装依赖、转换为HF模型文件、模型微调(QLoRA+单卡/多卡)、模型推理(对比终端命令/llama.cpp/Docker封装)图文教程之详细攻略

1、模型运行的前置准备

1.1、环境配置:CentOS 7+CPUs【1TB+64个CPU+16核】+GPUs【8卡A800-80G】

1.2、创建并激活虚拟环境+安装依赖:qlora-venv-py310-cu117

Py之accelerate:accelerate的简介、安装、使用方法之详细攻略

1.3、模型文件格式转换(HF格式)

2、数据集

2.1、源自Alpaca利用ChatGPT生成52K指令数据集(多份json格式)

LLMs之Data:Self Instruction思想(一种生成指令数据集的方法论—主要用在指令微调阶段)的简介、Alpaca/BELLE应用、实战案例代码实现之详细攻略

3、模型微调:

3.1、命令微调:复现LLaMA_7B = 基于LLaMA_7b_HF模型+QLoRA微调+alpaca_data_cleaned.json数据集——不到2小时——获得llama-7b-qlora文件

PTMs:QLoRA技巧之源码解读(qlora.py文件)—解析命令与加载参数→数据预处理→模型训练+评估+推理

3.2、查看显存占用:8块A800-80G+单块未超4G

3.3、查看生成文件

4、模型推理

T1、基于合并后的权重文件进行模型推理:单卡GPU+显存占用不到6G

(1)、合并模型权重:llama-7b-merge = hf-llama-model + llama-7b-qlora

LLMs之llama_7b_qlora:利用export_hf_checkpoint.py(模型权重合并文件)将LORA模型的权重合并回原始模型的权重(hf_llama_model+llama_7b_qlora),并保存到指定的检查点文件中

(2)、基于合并后的权重文件进行模型推理

LLMs之llama_7b_qlora:利用inference.py(基于合并后的权重文件进行模型推理)将基于之前合并Lora模型权重后的hl_llama_7b模型进行文本生成(基于用户交互输入的上下文生成新文本)

显存占用:显存占用不到6G

将lora权重合并base模型权重还可以通过merge_and_unload()方法

T2、不进行合并权重,直接进行推理:单卡GPU+显存占用7G左右

LLMs之llama_7b_qlora:利用inference_qlora.py(模型推理)使用LORA权重来初始化预训练的LLAMA模型来进行文本生成(基于用户交互输入的上下文生成新文本)

显存占用:显存占用7G左右

5、微调LLaMA-65B-QLoRA大模型

T1、单卡GPU微调:5个小时+仅48G

T2、多卡微调(8张GPU):每单卡仅10G


声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号