赞
踩
由于使用的底座模型是llama,官方公布的是PyTorch版本,为了方便后续使用,需转换为HuggingFace格式 .pth->.bin
- 本文实验conda环境为test_llm
-
- pytorch1.13.1
-
- cuda116
-
- python3.8
下载transformers到本地 并安装(要安装对应版本的,要不然会报错RuntimeError: shape '[32, 2, 2, 4096]' is invalid for input of size 16777216)
- git clone https://github.com/huggingface/transformers.git
- cd transformers
- git checkout v4.28.1
- pip install -e .
-
- #要安装一些包
- pip install sentencepiece==0.1.97 -i https://pypi.mirrors.ustc.edu.cn/simple/
- pip install peft==0.3.0 -i https://pypi.mirrors.ustc.edu.cn/simple/
- pip uninstall tokenizers
- pip install tokenizers==0.13.3 -i https://pypi.mirrors.ustc.edu.cn/simple/
- pip install protobuf==3.20.2
1.从GitHub克隆LLama项目到本地
git clone https://github.com/meta-llama/llama
2.下载模型权重
先登录到网址填写申请llama的信息,建议国家写美国
然后在你留下的邮箱中会收到一个URL,在接下来会用到
进入克隆下来的LLama项目目录,执行download.sh
脚本来下载模型权重。我们全篇文章都以7B模型为例
- cd llama
- ./download.sh
显示:
输入邮箱
输入你想下载的模型 7B
共下载了一个文件夹llama-2-7b和一个tokenizer.model文件
将下载下来的模型文件夹llama-2-7b重命名为7B
llama提供了7b、13b、30b、65b四种不同规模的模型,因此要使用第一代LLama的转换脚本convert_llama_weights_to_hf.py,我们需要将下载的模型名称改为这些名称,以便脚本能正确识别。例如,我使用了7b-chat模型,那么我就需要将7b-chat文件夹改名为7B。总的来说就是模型是7b-chat或7b则需要改名7B ,13b-chat或13b则需要改名13B
3.使用transformers包中的py文件执行权重转换,创建脚本convert_llama_weights_to_hf.sh如下
- python transformers/src/transformers/models/llama/convert_llama_weights_to_hf.py \
- --input_dir path_to_your_llama \
- --model_size 7B \
- --output_dir path_to_your_hf_model_output
path_to_your_llama
为整个LLama项目的路径(也就是7B上一级目录) ,而不是刚刚下载到项目文件夹中的模型文件夹路径。转换完成后,你可以在output_dir也就是huggingface格式模型输出文件夹中找到以下文件:
- git clone https://github.com/ymcui/Chinese-LLaMA-Alpaca.git
- cd Chinese-LLaMA-Alpaca
- mkdir model
然后将llama移动到model文件夹下面
由于原始llama模型对中文的支持不是很优秀,所以需合并一个chinese-llama-plus-lora-7b模型和chinese-alpaca-plus-lora-7b模型
(Chinese-LLaMA在原版LLaMA的基础上进行了扩充中文词表+增量预训练:扩充中文词表并使用了大规模中文语料数据进行增量预训练(因为采用了LoRA技巧,其本质还是高效参数微调),更好地理解新的语义和语境,进一步提升了中文基础语义理解能力。然后,Chinese-Alpaca模型进一步使用了中文指令数据进行指令精调(依旧采用了LoRA技巧),显著提升了模型对指令的理解和执行能力。官方链接:Chinese-LLaMA-Alpaca)
从huggface下载这两个模型 到model文件夹下
- git lfs clone https://huggingface.co/hfl/chinese-llama-plus-lora-7b
- git lfs clone https://huggingface.co/hfl/chinese-alpaca-plus-lora-7b
在model文件夹下创建一个firstmergemodel文件夹
进入Chinese-LLaMA-Alpaca文件夹 cd Chinese-LLaMA-Alpaca
创建合并脚本merge_llama_with_chinese_lora.sh如下
- python scripts/merge_llama_with_chinese_lora.py \
- --base_model Chinese-LLaMA-Alpaca/model/llama/output/ \
- --lora_model Chinese-LLaMA-Alpaca/model/chinese_llama_plus_lora_7b,Chinese-LLaMA-Alpaca/model//chinese_alpaca_plus_lora_7b \
- --output_type huggingface \
- --output_dir Chinese-LLaMA-Alpaca/model/firstmergemodels
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。