关键词:大模型,LLAMA,CUDA,模型训练
1. 基础环境
OS:Ubuntu 18.04
GPU:4*A100(40G) (单机4卡A100 40G)
CUDA:11.7
cuDNN:8.4.1 (需要登录官网后下载)
nccl:2.12.12 (需要登录官网后下载)
python:3.10 (conda create -n vllm python=3.10
)
pytorch:2.0.0+cu117 离线安装包地址
LLaMA-7B/13B/30B/65B模型:下载地址,需要安装ipfs,也可通过pyllama
进行下载:
pip install pyllama -Upython -m llama.download --model_size 7B
实验模型:stanford_alpaca, standford_lora, Chinese-LLaMA-Alpaca
注意先安装cuDNN,再安装CUDA,使用nvidia-smi
和nvcc -V
查看是否安装成功。
2. 将原生llama模型转换为HF模型格式
由于llama模型尚未合入官方transformers
,需要从源码安装fork版本的tranformers
以便进行llama
模型格式转换与加载:
git clone /zphang/transformers.gitcd transformerspython setup.py install
将llama-7B模型使用fork transformers版本转换为HF模型格式,转换后得到两个文件夹llama-7b和tokenizer
:
python src/transformers/models/llama/convert_llama_weights_to_hf.py \--input_dir /data/xh/models/llama \--model_size 7B \--output_dir /data/xh/models/llama_hf#注意:在加载模型的时候,需要将tokenizer文件夹中的内容复制到llama-7b下cd /data/xh/models/llama_hfcp tokenizer/* llama-7b/
3. 基于llama模型进行再训练或finetuning
搭建好基础环境后,以llama_hf
模型为基础,可以对衍生模型stanford_alpaca, standford_lora, Chinese-LLaMA-Alpaca继续进行预训练训练或进行finetuning训练了。
# 加载llama模型,注意使用fork版本的transformerstokenizer = transformers.LlamaTokenizer.from_pretrained("/data/xh/models/llama_hf/tokenizer/")model = transformers.LlamaForCausalLM.from_pretrained("/data/xh/models/llama_hf/llama-7b/")
参考
/p/618321077
-------- END --------