Search Posts

大语言模型如何合并与转换其他模型得到新的完整模型文件

本文介绍了LoRA与原版Llama-2合并得到完整模型的流程本文介绍了LoRA与原版Llama-2合并得到完整模型的流程。本操作属于手动转换(离线转换模型的方式),用于生成不同格式的模型,以便进行量化或进一步精调。本文来源于:中文LLaMA-2 & Alpaca-2大语言模型 Chinese-LLaMA-Alpaca-2 项目的wiki页面 manual_conversion_zh

手动模型合并与转换

以下介绍了手动将LoRA与原版Llama-2合并得到完整模型的流程。如网络带宽充足,建议直接下载完整版模型。

准备工作

  1. 运行前确保拉取【中文LLaMA-2 & Alpaca-2大语言模型 Chinese-LLaMA-Alpaca-2】仓库最新版代码:git pull https://github.com/ymcui/Chinese-LLaMA-Alpaca-2
  2. 确保机器有足够的内存加载完整模型(例如7B模型需要13-15G)以进行合并模型操作
  3. 安装依赖库(项目根目录requirements.txt):
$ pip install -r requirements.txt

Step 1: 获取原版Llama-2-hf模型

原版Llama-2-hf地址:https://huggingface.co/meta-llama/Llama-2-7b-hf

HF格式模型相关文件(可以不用下载safetensors格式模型权重):

config.json
generation_config.json
pytorch_model-00001-of-00002.bin
pytorch_model-00002-of-00002.bin
pytorch_model.bin.index.json
special_tokens_map.json
tokenizer_config.json
tokenizer.json
tokenizer.model

Step 2: 合并LoRA权重,生成全量模型权重

这一步骤会合并LoRA权重,生成全量模型权重。此处可以选择输出PyTorch版本权重(.pth文件)或者输出HuggingFace版本权重(.bin文件)。执行以下命令:

$ python scripts/merge_llama2_with_chinese_lora_low_mem.py \
    --base_model path_to_original_llama2_hf_dir \
    --lora_model path_to_chinese_llama2_or_alpaca2_lora \
    --output_type huggingface \
    --output_dir path_to_output_dir 

参数说明:

  • --base_model:存放HF格式的Llama-2模型权重和配置文件的目录
  • --lora_model:中文LLaMA-2/Alpaca-2 LoRA解压后文件所在目录,也可使用🤗Model Hub模型调用名称(会自动下载)
  • --output_type:指定输出格式,可为pthhuggingface。若不指定,默认为huggingface
  • --output_dir:指定保存全量模型权重的目录,默认为./
  • (可选)--verbose:显示合并过程中的详细信息
加好友请备注:chinaoss
您可以在微信公众号联系我们
我们将24小时内回复。
取消