当前位置:AIGC资讯 > AIGC > 正文

如何部署Meta开源大模型Llama2,转换为Huggingface模型的权重文件

如何部署Meta开源大模型Llama2

一、申请下载权限

通过Meta AI官网(https://llama.meta.com/llama-downloads/)申请下载权限,注意Country/Region选择这里,可能会影响审查速度吧,我选的United States审查挺快的,几秒钟。

之后邮箱里面会收到邮件,通过这个URL才能下载

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6ff74fffc77d4f42b5fa92e0779ec0b5.png

二、下载模型

1.git clone 仓库URL 本地想保存的地址

git clone https://github.com/facebookresearch/llama

2.运行llama文件夹中的download.sh文件

Win: bash download.sh
Mac: ./download.sh
之后填写刚才邮件里面的URL,选择需要下载的对应模型版本号即可。注意:如果填写完之后出现了403错误的话可以首先尝试重新申请一下URL试试。

如果选择的是7b参数的chat版本,会生成llama-2-7b-chat文件夹里面包含如下三个文件,

可以通过仓库提供的example来测试,命令如下:注意:'ckpt_dir’要和你下载的模型对应,一个测试非chat版本,一个测试chat版本
torchrun --nproc_per_node 1 example_text_completion.py
–ckpt_dir llama-2-7b/
–tokenizer_path tokenizer.model
–max_seq_len 128 --max_batch_size 4
torchrun --nproc_per_node 1 example_chat_completion.py
–ckpt_dir llama-2-7b-chat/
–tokenizer_path tokenizer.model
–max_seq_len 512 --max_batch_size

三、如何转换为Huggingface模型的权重文件

我们在实际预训练、使用模型的时候很有可能通过Huggingface的transformers库来调用(例如,llama-2-7b-chat-hf,后面带-hf就表示Huggingface版本),但是原始的权重文件是无法使用的,我们可以直接在官网下载(https://huggingface.co/meta-llama/Llama-2-7b-chat-hf),但是模型的权重文件特别大而且需要翻墙下载,不太方便,这里我们介绍一种将原始权重文件转换为Huggingface格式的方式,以llama-2-7b-chat为例:

将llama文件夹下的tokenizer.model文件复制到llama-2-7b-chat文件夹中


修改llama-2-7b-chat文件夹名为7B
下载权重转换脚本(https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py),最后执行权重转换命令:
python path_to_your_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_convert_llama_weights_to_hf.py为权重转换文件的路径,path_to_your_llama 是整个llama项目的路径,model_size需要根据对应的参数大小进行修改,path_to_your_hf_model_output为参数文件的输出路径。

总结

### 部署Meta开源大模型Llama2总结
#### 一、申请下载权限
- **访问官网**:通过Meta AI官网(https://llama.meta.com/llama-downloads/)申请下载权限。
- **选择地区**:注意Country/Region字段,影响审查速度,通常选择United States可快速通过。
- **邮件接收**:审查通过后,将收到下载链接的邮件,通过该URL可以下载所需模型。
#### 二、下载模型
1. **克隆仓库**
```bash
git clone https://github.com/facebookresearch/llama
```
2. **运行脚本**
- Win用户:在命令行中执行`bash download.sh`
- Mac用户:在终端中执行`./download.sh`
- 输入邮件中的URL,选择相应版本号的模型,注意403错误可能需要重新申请URL。
- 若选择7b chat版本,建模后将生成包含三个文件的`llama-2-7b-chat`文件夹。
3. **模型测试**
- 使用仓库中的example测试,注意`ckpt_dir`路径与下载的模型对应。
```bash
torchrun --nproc_per_node 1 example_text_completion.py --ckpt_dir llama-2-7b/ --tokenizer_path tokenizer.model --max_seq_len 128 --max_batch_size 4
torchrun --nproc_per_node 1 example_chat_completion.py --ckpt_dir llama-2-7b-chat/ --tokenizer_path tokenizer.model --max_seq_len 512 --max_batch_size
```
#### 三、转换为Huggingface模型权重文件
- **文件拷贝**:将`tokenizer.model`文件复制到`llama-2-7b-chat`文件夹。
- **重命名**:修改`llama-2-7b-chat`文件夹名为`7B`以适应脚本要求。
- **下载转换脚本**:从GitHub获取转换权重脚本,地址为https://github.com/huggingface/transformers/blob/main/src/transformers/models/llama/convert_llama_weights_to_hf.py。
- **执行命令**:运行转换脚本,注意替换路径和模型大小参数。
```bash
python path_to_your_convert_llama_weights_to_hf.py --input_dir path_to_your_llama --model_size 7B --output_dir path_to_your_hf_model_output
```
通过以上步骤,你可以成功部署并使用Meta开源的Llama2大模型,同时能将其权重转换为Huggingface使用的格式,以方便在各类场景中进行模型的预训练和推理。

更新时间 2024-09-11