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

2023-11-02

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vicuna模型权重合成及模型部署 的相关文章

  • JavaWeb笔记——请求Request、响应Response

    JavaWeb笔记 请求Request 响应Response tip1 idea建立maben自带的springboot模块 tip2 springboot运行时error java 错误 无效的源发行版 17 tip3 springboo
  • c++语言字母转换,c++中数字与字符串之间的转换方法(推荐)

    1 字符串数字之间的转换 1 string gt char string str OK char p str c str 2 char gt string char p OK string str p 3 char gt CString c
  • 华为OD机试 C++【生日礼物】

    题目 你要为孩子的生日准备一个蛋糕和一个礼物 但你有限的预算 现在 有一堆蛋糕和礼物的价格列表供你选择 你的任务是找出有多少种购买组合能在预算内 输入 第一行 不同蛋糕的价格 用逗号分隔 第二行 不同礼物的价格 用逗号分隔 第三行 你的预算
  • 如何实现CSS中flex布局最后一行左对齐

    1 效果 2 HTML div class container div class list div div class list div div class list div div class list div div class li
  • 在浏览器中输入URL并回车后都发生了什么?

    在浏览器中输入URL并回车后都发生了什么 四个步骤 1 浏览器解析url拿到ip地址 2 建立TCP连接 3 请求和传输数据 4 渲染页面 如何理解这四个步骤 1 简单了解URL URL俗称网页 网址 示例解说 https www baid
  • uniapp scroll-view切换tab时,右侧区域滚动条不能回到最上面的解决方案

  • 计算机语言lc-3,LC-3 小型计算机

    Last updated on 2020年9月7日 LC 3 五大部件 内存 包括 2 16 x 16 bits 存储单元 以及 16 位的 MAR 和 16 位的 MDR 寄存器 处理单元 包括 ALU 和 8 个 16位 的寄存器 R0
  • Lsn2_布局渲染流程与原理_2018-1-3

    GPU GPU用途是将计算机系统所需要的显示信息进行转换驱动 并向显示器提供行扫描信号 控制显示器的正确显示 是连接显示器和个人电脑主板的重要元件 也是 人机对话 的重要设备之一 显卡作为电脑主机里的一个重要组成部分 承担输出显示图形的任务
  • iPhone 11、iPhone 11 Pro、iPhone 11 Pro Max 屏幕尺寸,分辨率,PPI 详细数据对比

    信息来源 PaintCode
  • IPv6网络中DNS的风险分析

    IPv6网络中DNS的风险分析 DNS Domain Name System 域名系统是支撑互联网运行的重要核心基础设施 因此DNS系统也成为互联网攻击的最主要目标 DNS安全意义重大 一旦发生重大DNS攻击事件 将可能会影响大范围互联网的
  • 场效应三极管及其放大电路(1)MOSFET详解

    目录 MOS管种类 MOS管结构和工作原理 NMOS管增强型结构 NMOS管增强型工作原理 阈值电压VTN和截止区 可变电阻区 恒流区形成 I V特性曲线及特性方程 总结 NMOS耗尽型 与NMOS增强型区别 I V特性曲线及特性方程 总结
  • 如何看懂元器件手册的温升指标

    导语 我们知道半导体对温度很敏感 在元器件手册里经常会看到Thermal Information这一项 它描述的就是半导体器件的一些热学参数 如下图 1 它来自LM7805的手册 今天将讲述这些参数如何使用 图 1 先明白几个概念 热阻 T
  • ASP.NET Core:跨平台Web开发框架

    ASP NET Core是一个免费且开放源代码的Web框架 以及由微软和社区开发的下一代ASP NET 它是一个模块化框架 既可以Windows上的完整 NET Framework上运行 也可以在跨平台 NET Core上运行 该框架是一个
  • 两分钟了解HTTP/1.1 协议中的8种请求方法

    HTTP 1 1 协议中的请求方法 1 GET 用来从服务器上获取数据 指定的资源经服务器端解析后返回响应内容 GET请求的数据会附在URL后面 2 POST 用于发送包含用户提交数据的请求 有可能对服务器的数据进行更改 POST的数据放在
  • VS更改默认打开保存编码gb2312

    File 文件 gt Preferences 首选项 gt Usersettings 设置 搜索 encod 或者 encoding 然后修改为想要的编码格式
  • Modern C++的应用,实现golang中的defer

    modern C 实现 golang 的defer 关于RAII的一些思考 defer 的简介 注 没有 golang 语法基础的读者可以看看 反之 可以跳过 golang语法中的defer是什么 defer用来声明一个延迟函数 把这个函数
  • 学习日记——物可视

    百度云物联网组件图 物可视的数据源可以是物管理 我们的设备可以通过MQTT协议将数据上报给物管理 物管理再将我们上报的数据作为物可视的数据源 我们的设备还可以将数据上报到物接入 之后通过规则引擎来将数据发送给时序数据库 时序数据库再作为物可
  • matlab 绘图 实例,MATLAB 绘图实例

    代码 图片 环境 matlab r2012b 1 在0 x 2 区间内 绘制曲线 y 2e 0 5xcos 4 x 代码 x 0 pi 100 2 pi y 2 exp 0 5 x cos 4 pi x plot x y 作图 2 向量乘积

随机推荐

  • Linux 中 $符号是什么意思,代表什么含义

    一 在linux里是用来给变量命令的 例如 JAVA HOME 是指JAVA HOME的环境变量 echo JAVA HOME 可以在linux终端输出jdk的home目录 在Shell 脚本中向脚本传递参数也会用到 在使用变量时 要在变量
  • 机器学习与深度学习基础概念

    作者简介 大数据专业硕士在读 CSDN人工智能领域博客专家 阿里云专家博主 专注大数据与人工智能知识分享 公众号 GoAI的学习小屋 免费分享书籍 简历 导图等资料 更有交流群分享AI和大数据 加群方式公众号回复 加群 或 点击链接 专栏推
  • 本人小白,希望各位大佬帮帮我。python安装后没法用我又重新安装就重新 <no Python frame>,怎么办

  • java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter

    今天在使用JDK 12 0 环境下使用Hibernate 时候出现了这个错误 错误日志如下 2020 02 06 11 52 48 790 ERROR 3368 nio 8081 exec 1 o a c c C dispatcherSer
  • 无法解析的外部符号的几种可能(lib方面的)

    无法解析的外部符号的几种可能 1 lib 文件未引入 可使用 pragma comment lib winsock lib 语句添加 lib 引用 也可在项目依赖里添加 2 类方法的实现未加类标识 如 CTest Connect void
  • Dialog的IDE搭建systermView的方法步骤(DA1469X)

    1 背景 SystemView 是一个可以在线调试嵌入式系统的工具 它可以分析有哪些中断 任务执行了 以及这些中断 任务执行的先后关系 还可以查看一些内核对象持有和释放的时间点 比如信号量 互斥量 事件 消息队列等 这在开发和处理具有多个线
  • 【Linux】Linux 生成证书 keytool 命令找不到

    用Openssl生成证书 后来要涉及生成 java keytool 的 jks格式的证书 结果输入keytool bash keytool command not found 结果找了半天才发现javahome都没设置 也是郁闷 希望对遇到
  • Java EnumMap remove()方法具有什么功能呢?

    转自 Java EnumMap remove 方法具有什么功能呢 下文笔者将讲述EnumMap中remove方法的功能简介说明 如下所示 EnumMap类remove 方法的功能 用于删除指定的元素 并返回删除的元素 如果返回null 则代
  • js,jq

    定时器
  • 利用inotify和rsync服务实现数据实时同步

    文件定时同步的实现 利用rsync结合cron计划任务实现 rsync av delete data 10 0 0 12 back a 保留文件属性 v 显示过程 delete 如果源文件没有的 目标文件里面有 就把目标文件里面的删除掉 文
  • Qt Creator设置黑色主题背景

    黑色的主题看起来比较炫酷一点 也有人说黑色主题用起来对眼睛好 不过个人感觉然并卵 根据自己的习惯爱好设置就好 如果想保护眼睛 还是将屏幕调到合适的亮度 不要太暗 自己眼睛觉得舒服最好 也可以通过 桌面右击 个性化 高级 来设置窗口 桌面等的
  • Docker全攻略(二)Docker配置国内免费registry mirror

    一 Docker加速器简介 Docker加速器是 DaoCloud 推出的 Docker Hub Mirror 服务的官方名称 Docker加速器提供Docker Registry Docker Hub 在中国的镜像代理服务 为中国用户在国
  • 能够快速完成任务的方法有几点

    1 思路清晰 在写之前把步骤都想清楚了 2 在代码中 写伪代码 3 熟练使用快捷键 并生成自己的快捷键 4 熟悉各种插件 5 最重要的多敲 每种套路多敲几遍 当用的时候就孰能生巧了
  • 八皇后问题(Java代码实现)

    什么是八皇后问题 八皇后问题 是一个古老而著名的问题 是回溯算法的典型案例 该问题是国际西洋棋棋手马克斯 贝瑟尔于1848年提出 在8 8格的国际象棋上摆放八个皇后 使其不能互相攻击 即 任意两个皇后都不能处于同一行 同一列或同一斜线上 问
  • 东北大学暑期acm夏令营 算法进阶第八天(图论专题)

    部分内容参考 点我 第一题 include
  • 《机器人学中的状态估计》学习笔记

    第一章 引言 机器人的状态 是指一组完整描述它随时间运动的物理量 比如位置 角度 速度等 状态估计简史 早在4000年前 航海家们就面临着一个状态估计问题 如何判断船只在大海中的位置 状态估计理论的起源 亦可追溯至早期的天文学 估计理论的里
  • C++ Deque(双端队列)

    什么Deque 双端队列表示双端队列 它概括了队列数据结构 即可以从前端或后端的两端进行插入和删除 Deque和vector区别 vector对于头部的插入和删除效率低 数据量越大 效率越低 deque相对而言 对头部的插入删除速度比vec
  • windows 杀掉进程 端口

    2 查找所有运行的端口 输入命令 netstat ano 该命令列出所有端口的使用情况 在列表中我们观察被占用的端口 比如是 1224 首先找到它 3 查看被占用端口对应的 PID 输入命令 netstat aon findstr 8081
  • 医学检验专业职业生涯

    1 医院检验科或血液科 检验科之间的收入差距比较大 越大医院的检验科在整个医院中地位越高 优点是大三甲医院待遇高平台好工作环境比较好 缺点是工作强度相对大 高学历人才集中所以晋升机会小 大多数人都是平平凡凡工作一辈子 工资加奖金10k 15
  • Vicuna模型权重合成及模型部署

    第一式 Vicuna模型部署 1 环境搭建 1 1 构建虚拟环境 1 2 安装FastChat 1 2 1 利用pip直接安装 1 2 2 从github下载repository然后安装 2 Vicuna Weights合成 2 1 下载v