Vicuna模型权重合成及模型部署

1.环境搭建

本人电脑环境:Ubuntu 20.04.5 LTS # 使用cat /etc/issue命令查看

1.1 构建虚拟环境

$ pip install virtualenv
$ virtualenv vicuna # 创建新环境
$ source vicuna/bin/activate # 激活新环境

1.2 安装FastChat

1.2.1 利用pip直接安装

$ pip install fschat

1.2.2 从github下载repository然后安装

第1步:clone repository,然后进入FastChat folder

$ git clone https://github.com/lm-sys/FastChat.git
$ cd FastChat

第2步:安装FastChat包

$ pip install --upgrade pip # enable PEP 660 support
$ pip install -e .

2.Vicuna Weights合成

最终部署模型需要的vicuna weights需要进行合成才能得到:

  • 第一步:下载vicuna delta weights。
  • 第二步:下载原始llama weights。
  • 第三步:上上面两个weights合成为一个weights。
    注:合成步骤参考How to Prepare Vicuna Weight

2.1 下载vicuna delta weights

下载7b delta weights:

$ git lfs install
$ git clone https://huggingface.co/lmsys/vicuna-7b-delta-v1.1

下载13b delta weights:

$ git lfs install
$ git clone https://huggingface.co/lmsys/vicuna-13b-delta-v1.1

请注意:这不是直接的 working weight ,而是LLAMA-13B的 working weight 与 original weight 的差值。(由于LLAMA的规则,我们无法提供LLAMA的 weight )

2.2 下载原始llama weights

您需要按照HuggingFace提供的 原始权重 或 从互联网上获取 HuggingFace格式的原始LLAMA-7B或LLAMA-13B 权重。
注:这里直接从HuggingFace下载已转化为HuggingFace格式的原始LLAMA-7B或LLAMA-13B 权重
下载7b 原始 llama weights:

$ git lfs install
$ git clone https://huggingface.co/decapoda-research/llama-7b-hf

下载13b 原始 llama weights:

$ git lfs install
$ git clone https://huggingface.co/decapoda-research/llama-13b-hf

2.3 合成真正的working weights

当这delta weights 和llama原始weights都准备好后,我们可以使用Vicuna团队的工具来创建真正的 working weight 。
执行如下命令创建最终 working weight

$ python -m fastchat.model.apply_delta --base /home/llama/llama-13b-hf --target /home/vicuna/vicuna-13b-delta-v1.1-llama-merged --delta /home/vicuna/vicuna-13b-delta-v1.1 --low-cpu-mem

说明:我在使用上述命令过程中出现了错误,但将–low-cpu-mem参数去掉后能正常工作。

2.3 填坑手册

此节可略过
在使用下述命令合成working weights时报如下错误:

$ python -m fastchat.model.apply_delta --base /home/llama/llama-13b-hf --target /home/vicuna/vicuna-13b-delta-v1.1-llama-merged --delta /home/vicuna/vicuna-13b-delta-v1.1 --low-cpu-mem


在这里插入图片描述
在这里插入图片描述
说明:去掉–low-cpu-mem参数后能正常工作。

3. 使用命令行接口进行推理

3.1 Single GPU

下面的命令要求Vicuna-13B大约有28GB的GPU内存,Vicuna-7B大约有14GB的GPU存储器。

$ python -m fastchat.serve.cli --model-path /home/vicuna/vicuna-13b-delta-v1.1-llama-merged
  • 参数介绍
    usage: cli.py [-h]
    [–model-path MODEL_PATH] Vicuna Weights 路径
    [–device {cpu,cuda,mps}] 选择 使用 cpu or cuda 运行
    [–gpus GPUS] 选择 使用 gpu 型号
    [–num-gpus NUM_GPUS] 选择 gpu 数量
    [–max-gpu-memory MAX_GPU_MEMORY]
    [–load-8bit] 8bit 量化,用于降低显存
    [–conv-template CONV_TEMPLATE]
    [–temperature TEMPERATURE]
    [–max-new-tokens MAX_NEW_TOKENS]
    [–style {simple,rich}]
    [–debug]
    启动后聊天界面如下所示:
    在这里插入图片描述

3.2 Multiple GPU

python -m fastchat.serve.cli --model-path /home/vicuna/vicuna-13b-delta-v1.1-llama-merged --num-gpus 2

3.3 CPU Only

这只在CPU上运行,不需要GPU。Vicuna-13B需要大约60GB的CPU内存,Vicuna-7B需要大约30GB的CPU存储器。

$ python -m fastchat.serve.cli --model-path /home/vicuna/vicuna-13b-delta-v1.1-llama-merged --device cpu

4. Reference

感谢https://github.com/km1994/LLMsNineStoryDemonTower/tree/main/Vicuna

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值