当前位置:   article > 正文

基于llama模型进行增量预训练

增量预训练

目录

1、llama模型转换(pytorch格式转换为HuggingFace格式)

1.1、拉取Chinese-LLaMA-Alpaca项目

1.2、准备文件夹

1.3、下载llama官方原始模型

1.4、移动文件到指定位置

1.5、执行转换脚本

2、合并模型

2.1、下载Chinese-LLaMA-Plus-7B模型

2.2、下载chinese_alpaca_plus_lora_7b模型

2.3、执行合并脚本

3、准备数据集

4、进行二次预训练

4.1、修改run_pt.sh文件

4.1、运行run_pt.sh文件

4.2、训练后文件整理

4.3、合并模型

5、推理模型

5.1、命令行方式推理合并后的模型

5.2、Web图形界面方式推理合并后的模型


大家知道AI模型是怎么训练出来的吗?

AI模型的训练训练过程分为如下三个阶段

第一个阶段叫做无监督学习(PreTraining),就是输入大量的文本语料让GPT自己寻找语言的规律, 这样一个巨大的词向量空间就形成了,但是话说的漂亮并不一定正确。

第二个阶段叫做监督学习(Supervised Fine-Tuning,也叫微调),就是人工标注一些语料,教会GPT什 么该说,什么不该说。(训练数据集)

第三个阶段叫做强化学习(RM,也叫奖励模型训练),就是给GPT的回答进行打分,告诉他在他 的一众回答中,哪些回答更好。(验证数据集)

第一个阶段(无监督学习),又分为了底座模型预训练,及增量预训练,它们都属于无监督学习,基座模型预训练可以查看上篇文章:使用数据预训练一个AI语言模型

本文主要来聊聊有了一个底座模型之后,如何继续使用大量文本进行增量预训练。

1、llama模型转换(pytorch格式转换为HuggingFace格式)

由于使用的底座模型是llama,官方公布的是PyTorch版本,为了方便后续使用,需转换为HuggingFace格式

1.1、拉取Chinese-LLaMA-Alpaca项目

  1.  # 我的文件路径为如下
  2.  cd /root/autodl-fs
  3.  git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git

1.2、准备文件夹

以下命令依次执行!

  1.  cd Chinese-LLaMA-Alpaca
  2.  mkdir model
  3.  cd model
  4.  mkdir llama
  5.  mkdir output
  6.  mkdir llama/7B

1.3、下载llama官方原始模型

  1.  wget https://agi.gpt4.org/llama/LLaMA/tokenizer.model -O ./tokenizer.model
  2.  wget https://agi.gpt4.org/llama/LLaMA/tokenizer_checklist.chk -O ./tokenizer_checklist.chk
  3.  wget https://agi.gpt4.org/llama/LLaMA/7B/consolidated.00.pth -O ./7B/consolidated.00.pth
  4.  wget https://agi.gpt4.org/llama/LLaMA/7B/params.json -O ./7B/params.json

1.4、移动文件到指定位置

  1.  mv tokenizer.model llama
  2.  mv tokenizer_checklist.chk consolidated.00.pth params.json llama/7B

1.5、拉取transformers项目并安装依赖

  1.  cd /root/autodl-fs
  2.  git clone https://github.com/huggingface/transformers.git
  3.  pip install torch==1.13.1 -i https://pypi.mirrors.ustc.edu.cn/simple/
  4.  pip install sentencepiece==0.1.97 -i https://pypi.mirrors.ustc.edu.cn/simple/
  5.  pip install peft==0.3.0 -i https://pypi.mirrors.ustc.edu.cn/simple/
  6.  pip uninstall tokenizers
  7.  pip install tokenizers==0.13.3 -i https://pypi.mirrors.ustc.edu.cn/simple/
  8.  pip install transformers==4.28.1 -i https://pypi.mirrors.ustc.edu.cn/simple/

1.5、执行转换脚本

  1.  cd /root/autodl-fs/transformers
  2.  ​
  3.  python src/transformers/models/llama/convert_llama_weights_to_hf.py \
  4.  --input_dir /root/autodl-fs/Chinese-LLaMA-Alpaca/model/llama/ \
  5.  --model_size 7B \
  6.  --output_dir /root/autodl-fs/Chinese-LLaMA-Alpaca/model/output

参数说明:

  • --input_dir:tokenizer.model存放路径

  • --model_size:其余llama文件存放路径

  • --output_dir:存放转换好的HF版权重路径

2、合并模型

由于原始llama模型对中文的支持不是很优秀,所以需合并一个Chinese-LLaMA-Plus-7B模型和chinese_llama_plus_lora_7b模型​

2.1、下载Chinese-LLaMA-Plus-7B模型

链接:百度网盘 请输入提取码 提取码:082w

上传到/root/autodl-fs/llama_7b目录下并解压缩

  1.  cd /root/autodl-fs/llama_7b
  2.  mkdir chinese_llama_plus_lora_7b
  3.  unzip chinese_llama_plus_lora_7b.zip chinese_llama_plus_lora_7b

2.2、下载chinese_alpaca_plus_lora_7b模型

链接:百度网盘 请输入提取码 提取码:yr3q

上传到/root/autodl-fs/llama_7b目录下并解压缩

  1.  cd /root/autodl-fs/llama_7b
  2.  mkdir chinese_alpaca_plus_lora_7b
  3.  unzip chinese_alpaca_plus_lora_7b.zip chinese_alpaca_plus_lora_7b

2.3、执行合并脚本

  1.  cd /root/autodl-fs/Chinese-LLaMA-Alpaca/
  2.  # 合并后的模型存放位置
  3.  mkdir model/firstmergemodel
  4.  ​
  5.  python scripts/merge_llama_with_chinese_lora.py \
  6.  --base_model /root/autodl-fs/Chinese-LLaMA-Alpaca/model/output \
  7.  --lora_model /root/autodl-fs/llama_7b/chinese_llama_plus_lora_7b,/root/autodl-fs/llama_7b/chinese_alpaca_plus_lora_7b \
  8.  --output_type huggingface \
  9.  --output_dir /root/autodl-fs/Chinese-LLaMA-Alpaca/model/firstmergemodels

参数说明:

推荐阅读
相关标签
  

闽ICP备14008679号