【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

这篇具有很好参考价值的文章主要介绍了【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、前言

UC伯克利学者联手CMU、斯坦福等,再次推出一个全新模型70亿/130亿参数的Vicuna,俗称「小羊驼」(骆马)。小羊驼号称能达到GPT-4的90%性能

  • github 地址: GitHub - lm-sys/FastChat: An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and FastChat-T5.

本篇文章为博主自行学习vicuna推理部署实战教程,并记录相关坑点,话不多说,直接开干!

二、环境搭建

2.1创建conda的python环境

有大坑!!千万不要用低版本的python!!我最开始用的python3.7,各种bug一堆,建议直接上python=3.10版本,测试无毒,放心食用!

conda create -n vicuna python=3.10       # 创建新环境
source activate vicuna                  # 激活环境

2.2安装FastChat

2.2.1pip安装

pip install fschat

这里如果你的python版本是3.7或更低,就只能安装fschat==0.1,这会导致后续步骤包冲突。所以这也是为什么笔者建议大家直接用python3.10版本,别恶心自己了QAQ

另外就是transformsers版本要>=4.28.1,不然又报错,手动感谢奔腾大佬帮忙解决~

2.2.2git仓库安装

git clone https://github.com/lm-sys/FastChat.git
cd FastChat
pip install --upgrade pip  # enable PEP 660 support
pip install -e .

三、 Vinvua Weights生成

注:本项目使用的Vinvua Weights生成方式参考MiniGPT4

参考链接:https://github.com/Vision-CAIR/MiniGPT-4/blob/main/PrepareVicuna.md

整个流程概括一下就是:

  1. 下载vicuna权重
  2. 下载原始LLAMA 7B/13B权重
  3. 调用fastchat工具利用vicuna和LLAMA的权重来生成本项目真正的需要的working权重

这里要注意你的内存够不够,我下载的是LLAMA-7B的权重文件大约13G,对应的vicuna权重也是13G,同时你还要留够我们真正需要的working权重的空间, 也是13G,所以7B的模型总共需要39G~40G空间。13B的话,我听大佬说LLAMA13B好像要30+G,估算一下总共差不多要快100个G了。

3.1下载Vicuna Weight 

可以选择下载13B或7B版本的,下面两个链接选一个下就行了。

git lfs install
git clone https://huggingface.co/lmsys/vicuna-13b-delta-v1.1  # more powerful, need at least 24G gpu memory
git clone https://huggingface.co/lmsys/vicuna-7b-delta-v1.1  # smaller, need 12G gpu memory

我理解这个Vicuna Weight其实是一个“偏差权重”,注意这个“偏差权重”是我自己取的名字,最终我们需要的权重=原始LLAMA权重+偏差权重。他们之所以要这么麻烦的搞是因为LLAMA对自己的权重做了限制,别人无法直接改变LLAMA的权重,所以只能通过引入额外的偏差权重与原始LLAMA权重进行某种运算来得到最终的权重了。

3.2下载LLAMA权重

同样可选13B或7B版本的,且分别与Vicuna-13B、Vicuna-7B对应。

git lfs install
git clone https://huggingface.co/decapoda-research/llama-13b-hf  # more powerful, need at least 24G gpu memory
git clone https://huggingface.co/decapoda-research/llama-7b-hf  # smaller, need 12G gpu memory

3.3构建我们需要的真正的working weight

当这两个 weight 备好后,我们可以使用Vicuna团队的工具来创建真正的 working weight 。

执行如下命令创建最终 working weight

python -m fastchat.model.apply_delta --base ./llama-7b-hf/ --target ./vicuna/weight/ --delta ./vicuna-7b-delta-v1.1/

以上命令只需要改动--base 、--target--delta对应的路径,其中base代表原始LLAMA权重所在路径,delta代表vicuna偏差权重、target代表我们最终得到的权重所存放的路径。

注:低CPU内存需加入--low-cpu-mem,可以把大的权重文件分割成多个小份,并使用磁盘作为临时存储。可以使峰值内存保持在16GB以下。不然无法载入vicuna增量文件,CPU内存占满,程序直接被kill,代码参考看下面

python -m fastchat.model.apply_delta --base ./llama-7b-hf/ --target ./vicuna/weight/ --delta ./vicuna-7b-delta-v1.1/ --low-cpu-mem

这里也要注意只有fastchat版本>=0.2.0才支持--low-cpu-mem,总之跟着教程最开始就用python==3.10到这步应该没问题。

四、命令行推理

4.1单GPU推理

 下面的命令要求Vicuna-13B大约有28GB的GPU内存,Vicuna-7B大约有14GB的GPU存储器。如果内存不足,请参阅下面的“内存不足”部分。

python -m fastchat.serve.cli --model-path vicuna/weight

参数介绍

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]

4.2单卡多GPUs推理

python -m fastchat.serve.cli --model-path /path/to/vicuna/weights --num-gpus 2

4.3CPU推理

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

python -m fastchat.serve.cli --model-path /path/to/vicuna/weights --device cpu

实测效果 

【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

在中英文分别进行了测试,看起来还可以,具体实战能力咋样可能还是要拿业务数据测一下。另外7B的模型推理时显存占用稳定在14G左右。

 【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

但是测了几轮发现他也有一些问题,比如让他计算数学公式,他就一直卡住重复输出同一句话。

【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

 算了给不出来就算了,那你直接给个答案吧,结果给了个6???咋算出来的?一问他还急眼了,直接报错:TypeError: not a string【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战 看来vicuna的数学推理能力还有待增长啊,中英文能力看起来还行。

再测测角色扮演能力,让他扮演《鬼灭之刃》中的炎柱大哥。

【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

说实话,他完全没理解我说了什么,给我扯到火影了,多少有点呆。。。

可能是受限于模型规模,感觉测试效果不尽人意。。。

五、使用Web GUI服务

由于公司网络受限,我这里没有测试,感兴趣的朋友可以参照以下教程自行尝试。

【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战

要使用web UI提供服务,您需要三个主要组件:与用户接口的web服务器、托管一个或多个模型的模型工作者,以及协调web服务器和模型工作者的控制器。以下是您的终端中要遵循的命令:1.Launch the controller

python -m fastchat.serve.controller

此控制器管理分布式工作程序。

2.Launch the model worke

python -m fastchat.serve.model_worker --model-path /path/to/vicuna/weights

 等待流程完成加载模型,然后看到“Uvicorn running on ...”。

您可以启动多个模型工作程序来同时为多个模型提供服务。模型工人将自动连接到控制器。

要确保模型工作者正确连接到控制器,请使用以下命令发送测试消息:

python3 -m fastchat.serve.test_message --model-name vicuna-13b

 3.Launch the Gradio web server

python -m fastchat.serve.gradio_web_server

 这是用户将与之交互的用户界面。

通过以下步骤,您将能够使用web UI为您的模型提供服务。您现在可以打开浏览器并与模型聊天了!

参考:LLMsNineStoryDemonTower/Vicuna at f2a3301e146867ae57158a5f623c771b09a570a1 · km1994/LLMsNineStoryDemonTower · GitHub文章来源地址https://www.toymoban.com/news/detail-492265.html

到了这里,关于【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LLMs之Vicuna:在Linux服务器系统上实Vicuna-7B本地化部署(基于facebookresearch的GitHub)进行模型权重合并(llama-7b模型与delta模型权重)、模型部

    LLMs之Vicuna:在Linux服务器系统上实Vicuna-7B本地化部署(基于facebookresearch的GitHub)进行模型权重合并(llama-7b模型与delta模型权重)、模型部署且实现模型推理全流程步骤的图文教程(非常详细) 导读 :因为Vicuna的训练成本很低,据说只需要$300左右,所以,还是有必要尝试本地化部署

    2024年02月06日
    浏览(74)
  • Fastchat实战部署vicuna-7b-v1.3(小羊驼)

    FastChat 是一个开放平台,用于训练、服务和评估基于大型语言模型的聊天机器人。核心功能包括: 最先进模型(例如,Vicuna)的权重、训练代码和评估代码。 具有 Web UI 和 OpenAI 兼容 RESTful API 的分布式多模型服务系统。 Fastchat项目持续更新中,后续还未跟进,有兴趣请参看项

    2024年02月08日
    浏览(37)
  • centos7系统安装Vicuna(小羊驼)聊天机器人

    准备工作: 安装vicuna之前需要做一些准备工作,比如:git、python3、升级openssl等 1、Git安装 因为要克隆项目源码所以要安装,安装过程很简单yum install git,这里不做过多介绍。如果不安装git也可以,项目源码可以去官网直接下载zip包。 2、升级openssl 为什么要先升级openssl?因为

    2024年02月10日
    浏览(51)
  • Fastchat安装vicuna-7b-v1.3(小羊驼) ——超详细版

    FastChat 是一个开放平台,用于训练、服务和评估基于大型语言模型的聊天机器人。核心功能包括: 最先进模型(例如,Vicuna)的权重、训练代码和评估代码。 具有 Web UI 和 OpenAI 兼容 RESTful API 的分布式多模型服务系统。 Fastchat项目持续更新中,后续还未跟进,有兴趣请参看项

    2024年02月05日
    浏览(40)
  • Vicuna- 一个类 ChatGPT开源 模型

    Meta 开源 LLaMA(大羊驼)系列模型为起点,研究人员逐渐研发出基于LLaMA的Alpaca(羊驼)、Alpaca-Lora、Luotuo(骆驼)等轻量级类 ChatGPT 模型并开源。 google提出了一个新的模型:Vicuna(小羊驼)。该模型基于LLaMA,参数量13B。Vicuna-13B 通过微调 LLaMA 实现了高性能的对话生成 Vicun

    2024年02月04日
    浏览(92)
  • 羊驼系列大模型LLaMa、Alpaca、Vicuna

    羊驼系列大模型:大模型的安卓系统 GPT系列:类比ios系统,不开源 LLaMa优势 用到的数据:大部分英语、西班牙语,少中文 模型下载地址 https://huggingface.co/meta-llama Alpaca是斯坦福从Meta的LLaMA 7B微调而来的全新模型 (套壳)仅用了52k数据,性能约等于GPT-3.5。 训练成本奇低,总成本

    2024年01月21日
    浏览(51)
  • LLM系列 | 02: Vicuna简介及模型部署实测

    月黑见渔灯,孤光一点萤。微微风簇浪,散作满河星。小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖钢丝球的小男孩。今天这篇小作文主要介绍Vicuna模型、基于官方模型13B模型部署服务及对话实测。 更多、更新文章欢迎关注 微信公众号 : 小窗幽记机器学习

    2024年02月06日
    浏览(44)
  • 无需GPU无需网络“本地部署chatGPT”(更新vicuna模型)

    想当初图像生成从DELL到stable diffusion再到苹果的移动部署过了两三年吧 聊天bot才发展几个月就可以边缘部署了,如果苹果更新silicon,npu和运存翻倍,争取apple watch也能本地内置,最快ios18 mac、ipad、iPhone能内置吧 又是一个平民百姓都高兴的开源项目,chatGPT这种级别的模型甚至

    2023年04月24日
    浏览(57)
  • 重磅!openAI开放chatGPT模型APIgpt-3.5-turbo,成本直降90%!

    ChatGPT API,千呼万唤终于来了。 chatGPT不仅开放 成本还直降90%! 全新API基于“gpt-3.5-turbo”模型,其基础是支持ChatGPT的GPT 3.5模型,取代了此前的“text-davinci-003.”。这款名为“gpt-3.5-turbo”的模型,定价为 0.002美元/每1000 tokens 。这“比我们现有的GPT-3.5模型便宜 10 倍”,部分原

    2023年04月09日
    浏览(44)
  • 电脑部署本地类似ChatGPT3.5的AI模型Vicuna的常见错误和原因

    1.msvcp140.dll丢失的解决方方法 进入电脑的程序和功能只要是像下面图片的全部点击修复或者重新安装再或者从网上下载缺少的vc运行库文件放进自己的 C:WindowsSystem里, 您的系统是64位的请将文源件复制到 C:WindowsSysWOW64 目录。  2.由于llama运行旧的模型需要的版本和llama的版

    2024年02月10日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包