Vicuna概述
Vicuna由一群主要来自加州大学伯克利分校的研究人员推出,仍然是熟悉的配方、熟悉的味道。Vicuna同样是基于Meta开源的LLaMA大模型微调而来,它的训练数据是来自ShareGPT上的7万多条数据(ShareGPT一个分享ChatGPT对话的谷歌插件):
在训练方式上,研究人员借鉴了Alpaca:增强了Alpaca提供的训练脚本,以更好地处理多轮对话和长序列。具体包括:
- 内存优化:Vicuna的最大上下文长度为2048(Alpaca为512),对GPU内存要求更高。研究人员利用梯度检查点和内存注意力来解决内存压力。
- 多轮对话:调整训练损失来适应多轮对话任务,并仅根据聊天机器人的输出计算微调损失。
- 降低成本:研究人员使用 SkyPilot managed spot 来降低成本。该解案将7B参数模型的训练成本从500美元降低至140美元左右,将13B参数模型的训练成本从1000美元降低至300美元。
整个Vicuna的训练,用到了8张A100 GPU,训练时间是一天:
特别的是,对于Vicuna的评估,研究人员直接请来GPT-4本尊给新模型打分,人机协作的方式比人类直接生成评估更高效。基于这样的方法,研究人员最后把Vicuna和其他模型的回答抛给了GPT-4,GPT-4最终的打分结果显示,在13B参数LLaMA基础上微调而来的Vicuna,达到了ChatGPT(GPT-3.5)性能的90%,超过了LLaMA-13B本身和斯坦福的Alpaca:
官方网站:Vicuna: An Open-Source Chatbot Impressing GPT-4 with 90%* ChatGPT Quality | LMSYS Org
代码仓库:GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and FastChat-T5.
前期准备
机器配置
重点关注指标:CPU、内存、GPU、GPU驱动
类型 | CPU | 内存 | GPU |
机器配置 | 16核 | 125G | NVIDIA A100 80G√ |
# 查看显卡安装状态
nvidia-smi
安装必要的软件
git
sudo apt-get update
sudo apt-get install git
git-lfs(大文件管理)
sudo apt-get install git-lfs
python 3.10
#下载解压源码
wget https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz
tar –xf Python-3.10.7.tgz
cd Python-3.10.7
#构建
make –j 4
make altinstall
#软连接替换
rm /usr/bin/python3
ln -s /usr/local/bin/python3.10 /usr/bin/python3
此时终端内输入:
python -V
出现 Python 3.10.7表示python安装成功。
模型下载与安装
下载FastChat
git clone https://github.com/lm-sys/FastChat.git
安装FastChat
cd FastChat
pip3 install --upgrade pip # enable PEP 660 support
pip3 install -e .
下载Vicuna模型
训练好Vicuna-13B v1.1的模型可以直接使用https://huggingface.co/eachadea/vicuna-13b-1.1)#此时你应该在FastChat文件夹内,下面创建模型下载文件夹
cd fastchat
cd model/
mkdir Vicuna-13B-V1.1
cd Vicuna-13B-V1.1
git lfs install
git clone https://huggingface.co/eachadea/vicuna-13b-1.1
这个模型大概20+G,请耐心等待。
模型使用
命令行内使用
#此时你应该在FastChat/fastchat/model 路径下
python3 -m fastchat.serve.cli --model-path Vicuna-13B-V1.1/
加载模型大概需要几分钟,即可与Vicuna模型体验聊天。
FastChat Github链接:GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and FastChat-T5.