Chinese-LLaMA-Alpaca本地搭建(三)

Chinese-LLaMA-Alpaca模型搭建(三)

  • 1、简单介绍
    • 1.1 原版LLaMA模型介绍
    • 1.2 LoRA权重模型
    • 1.3 完整版权重模型
  • 2、模型搭建
    • 2.1 直接到huggingface下载转换后的LLaMA hf模型
    • 2.2 下载原版LLaMA模型,并将原版LLaMA模型转换为HF格式(可跳过,2.1直接用就行)
      • 2.2.1 源码地址
      • 2.2.2 源码下载类
      • 2.2.3 将原版LLaMA模型转换为HuggingFace格式
    • 2.3 下载并合并LoRA权重,生成全量模型权重
    • 更多内容,请期待

1、简单介绍

中文羊驼模型只是一些LoRA权重模型文件,与原版LLaMA模型合并后就可以生成一个完整模型使用了,在这过程中可以不断训练LoRA权重模型文件,无限训练后达到专业领域的效果,理论上就能投入使用了,但注意禁止商用的问题。

1.1 原版LLaMA模型介绍

  1. Facebook官方发布的LLaMA模型禁止商用,并且官方没有正式开源模型权重。
  2. 模型规格:7B、13B、33B(30B就是33B,实际是32.5B)、65B。
  3. GitHub源码地址,可以通过其下载。

1.2 LoRA权重模型

LoRA模型的全称为Learnable Re-Weighting,即可学习的重加权模型。它主要是通过对神经网络中各层之间的权重进行学习,来提高模型的性能。具体来说,LORA模型通过学习到前一层和后一层之间的相关性,来自动调整当前层的权重,从而提高模型的性能。

LoRA权重模型会有点麻烦,详细见模型训练篇,目前有能人训练出了中文的LoRA权重模型了,就是中文羊驼。

1.3 完整版权重模型

原版LLaMA模型 + LoRA权重模型 = 完整版权重模型,需要进行手动模型合并与转换。

2、模型搭建

2.1 直接到huggingface下载转换后的LLaMA hf模型

git方式下载,7B、13B、33B、65B。
本文使用7b规格试验,以下是下载后的文件清单。
Chinese-LLaMA-Alpaca本地搭建(三)_第1张图片

2.2 下载原版LLaMA模型,并将原版LLaMA模型转换为HF格式(可跳过,2.1直接用就行)

2.2.1 源码地址

llama GitHub源码地址

2.2.2 源码下载类

Chinese-LLaMA-Alpaca本地搭建(三)_第2张图片

2.2.3 将原版LLaMA模型转换为HuggingFace格式

使用transformers提供的脚本convert_llama_weights_to_hf.py
1、下载transformers源码,装好虚拟环境(python3.10),torch包可能无法下载成功,用国内镜像源安装就好啦,其他的包类似
pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install transformers -i https://pypi.tuna.tsinghua.edu.cn/simple
Chinese-LLaMA-Alpaca本地搭建(三)_第3张图片
2、将文件所在目录调整好

--input_dir中存放原版LLaMA的tokenizer.model
${input_dir}/${model_size}下存放其余文件
--output_dir中将存放转换好的HF版权重

3、执行如下代码:

cd .\src\transformers\models\llama\

python convert_llama_weights_to_hf.py --input_dir E:\BaiduNetdiskDownload\Chinese-LLaMA-Alpaca\original\llama-7b-hf --model_size 7B  --output_dir E:\BaiduNetdiskDownload\Chinese-LLaMA-Alpaca\original\llama-7b-hf\output_dir

生成后的文件类似2.1的效果。

2.3 下载并合并LoRA权重,生成全量模型权重

中文羊驼GitHub
1)LoRA下载:见中文羊驼推荐下载模型的LoRA下载[3]。
2)合并脚本代码见scripts/merge_llama_with_chinese_lora_low_mem.py
3)安装好虚拟环境插件

pip install torch==1.13.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install transformers==4.28.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install sentencepiece==0.1.97 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install git+https://github.com/huggingface/peft.git@13e53fc  -i https://pypi.tuna.tsinghua.edu.cn/simple

peft插件可能网络不顺畅,可以先下载源代码,在使用命令安装:
   pip install D:\01.project\LLM\peft-13e53fc7ee5d89d59b16523051006dddf0fb7a49 -i https://pypi.tuna.tsinghua.edu.cn/simple

4)单LoRA权重合并

python scripts/merge_llama_with_chinese_lora.py 
--base_model F:\Chinese-LLaMA-Alpaca\original\llama-7b-hf 
--lora_model F:\Chinese-LLaMA-Alpaca\loras\chinese_llama_plus_lora_7b 
--output_type pth  
--output_dir F:\Chinese-LLaMA-Alpaca\complete\Chinese-LLaMA-7B-pth

python scripts/merge_llama_with_chinese_lora.py 
--base_model F:\Chinese-LLaMA-Alpaca\original\llama-7b-hf 
--lora_model F:\Chinese-LLaMA-Alpaca\loras\chinese_alpaca_plus_lora_7b 
--output_type pth  
--output_dir F:\Chinese-LLaMA-Alpaca\complete\Chinese-Alpaca-7B-pth

多LoRA权重合并

python scripts/merge_llama_with_chinese_lora.py 
--base_model F:\Chinese-LLaMA-Alpaca\original\llama-7b-hf 
--lora_model F:\Chinese-LLaMA-Alpaca\loras\chinese_llama_plus_lora_7b,F:\Chinese-LLaMA-Alpaca\loras\chinese_alpaca_plus_lora_7b 
--output_type pth  
--output_dir F:\Chinese-LLaMA-Alpaca\complete\Chinese-LLaMA-Alpaca-7B-pth

更多内容,请期待

你可能感兴趣的:(深度学习,llama)