欢迎光临散文网 会员登陆 & 注册

离线环境用docker部署Chinese-LLaMA-Alpaca 33B

2023-06-16 19:05 作者:scool199  | 我要投稿

由于机器在客户环境,不能联外网,需要自己准备各种文件拷贝上传,比开放网络要更麻烦一些,记录下过程。

机器:

8卡A100(40GB)单机

docker和nivida-docker

驱动离线安装

模型:

LLaMA:(如过期加wx联系)

链接:pan.baidu.com/s/1wJvMgl 提取码:c7qd 复制这段内容后打开百度网盘手机App,操作更方便哦

github.com/ymcui/Chines


1、模型权重准备

将llama和cn_alpaca和cn_llama的权重拷贝到离线A100机器上

llama权重

/data/models/llama/

  • tokenizer.model # tokenizer文件

/data/models/llama/33B

  • params.json # 权重配置文件

  • consolidated.00.pth # 权重文件

  • consolidated.01.pth # 权重文件

  • consolidated.02.pth # 权重文件

  • consolidated.03.pth # 权重文件


cn_alpaca权重

/data/models/llama/cn_alpaca/33B

  • adapter_config.json # LoRA权重配置文件

  • adapter_model.bin # LoRA权重文件

  • special_tokens_map.json # special_tokens_map文件

  • tokenizer_config.json # tokenizer配置文件

  • tokenizer.model # tokenizer文件


check sha256


2、环境准备

制作镜像,下载镜像,拷贝到A100服务器,恢复镜像

git clone github.com/ymcui/Chines

vi requirements.txt

   torch==1.13.1    peft==0.3.0    transformers==4.28.1    sentencepiece==0.1.97    protobuf==3.19.0    cpm_kernels    gradio    mdtex2html    accelerate    sentencepiece==0.1.97    numpy==1.24.3    pyzmq==18.1.1

vi Dockerfile

   FROM cuda_python:3.9.13-gpu    LABEL org.opencontainers.image.authors="lisiyu@haizhi.com"        WORKDIR /app        COPY requirements.txt .        RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple && \        pip install --no-cache-dir -r requirements.txt        COPY . .

docker build -t haizhi/llama:cn_llama_alpaca .

docker images

docker save e78657ebfd4f > /data/lsy/cn_llama_alpaca.tar

之后上传tar文件,并登录到离线服务器

docker load < cn_llama_alpaca.tar

docker images

docker tag a586dxxxxx haizhi/llama:cn_llama_alpaca docker images

3、微调训练

依赖安装docker和nivida-docker

nvidia-docker run --name llama33b --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \    --rm -it \    -v /data/models/llama:/app/original-weights \    --security-opt seccomp=unconfined \    haizhi/llama:cn_llama_alpaca bash

测试

echo "import torch" > test.py echo "print(torch.cuda.is_available())" >> test.py python3 test.py    True

转换模型格式(7分钟)

python3 transformers/src/tranformers/models/llama/convert_llama_weights_to_hf.py --input_dir /app/original-weights --model_size 30B --output_dir /app/original-weights/30B_hf

LoRA权重合并(15分钟)

python3 scripts/merge_llama_with_chinese_lora.py --base_model original-weights/30B_hf --lora_model original-weights/cn_alpaca/33B --output_type huggingface --output_dir original/cn_llama_alpaca/33B

测试

python3 scripts/inference/inference_hf.py --base_model original-weights/cn_llama_alpaca/7B --with_prompt --interactive --gpus 4,5,6,7

推理:A100 x 8卡的机器,启动推理+gradio,33B的llama fp16精度占用了77GB显存

量化推理:33B的int8占用了37GB显存


离线环境用docker部署Chinese-LLaMA-Alpaca 33B的评论 (共 条)

分享到微博请遵守国家法律