学习实践-Vicuna【小羊驼】(部署+运行)

news2024/11/20 0:34:38

1、Vicuna【小羊驼】-FastChat"更快的对话" 介绍

3 月底,UC伯克利开源大语言模型Vicuna来了,这是一个与 GPT-4 性能相匹配的 LLaMA 微调版本。“缺啥补啥缺啥练啥,傻子也突出”!
在这里插入图片描述
在这里插入图片描述
Vicuna 使用从 ShareGPT 收集的用户共享数据对 LLaMA 模型进行微调(ShareGPT 是一个 ChatGPT 数据共享网站,用户会上传自己觉得有趣的 ChatGPT 回答)。利用ShareGPT的7万对话数据对LLaMA微调。
Vicuna训练硬件:8块 A100 80G的GPU(比Alpaca训练花销便宜一半)
相对于Alpaca 进行了如下改进:
1.内存优化:将最大上下文长度从 512 扩展到 2048,利用梯度检查点和闪存注意力来解决内存压力问题。
2.多轮对话:该研究调整训练损失以考虑多轮对话,并仅根据聊天机器人的输出计算微调损失。
3.通过 Spot (SkyPilot)实例降低训练成本。
结果:Vicuna 比 Alpaca 的生成质量更好,速度也更快。仍然不擅长涉及推理或数学的任务

运行界面:

在这里插入图片描述

2、Vicuna【小羊驼】实战

FastChat模型GitHub代码地址
部署步骤如下:(注意使用的是Linux系统单片3090,如若尝试用Windows请注意内存是否充裕(至少>30G))

创建并配置FastChat虚拟环境

1.前置软件Git

sudo apt install git

2.创建FastChat虚拟环境

conda create -n fastchat python=3.9 #官网要求Python版本要>= 3.8,注意不要安装错版本了
conda activate fastchat

3.安装PyTorch
pytorch官方网址

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

安装完后进行如下测试(可忽略)

conda activate fastchat
python
>>> import torch
>>> print(torch.__version__)
1.13.1+cu116
>>> print(torch.version.cuda)
11.6
>>> exit()

4.安装 FastChat

pip install fschat

5.安装 huggingface/transformers
不可省略:在fastchat项目下,打开pyproject.toml文件,移除掉dependencies中的transformers(红框内容删除)
在这里插入图片描述

pip install git+https://github.com/huggingface/transformers
#确保已经安装好Git,否则安装huggingface/transformers时将报错

在这里插入图片描述
(上面没有成功时才考虑)尝试平替
手动下载https://github.com/huggingface/transformers

pip install transformers#尽量选高版本

6.下载 LLaMA
百度PaddlePaddle(7B的模型) https://aistudio.baidu.com/aistudio/datasetdetail/203425/0
请注意:下载的解压、保存文件的路径中 ,不要有中文、特殊符号等。
在这里插入图片描述

7. 转换LLaMA的文件,构建FastChat对应的模型Vicuna

#进入到huggingface/transformers项目中,利用transformers中的代码,完成对LLaMA的转换
cd src/transformers/models/llama/convert_llama_weights_to_hf.py#不需要指令,手动打卡即可
#--input_dir指定的是刚才你下载好的LLaMA文件地址,这个路径下有个tokenizer.model文件,请仔细核对一下
#--model_size指定用哪个参数数量级的模型,7B代表的是70亿个参数的那个模型(如果你用的种子链接下载的话,还有13B/30B/65B的模型)
#--output_dir是转换后输出的路径

修改convert_llama_weights_to_hf.py文件,添加default变量后执行即可。
在这里插入图片描述
在这里插入图片描述
8.生成FastChat对应的模型Vicuna
生成Vicuna模型,即将原始的LLaMA weights转为Vicuna weights
前提:保证内存充足!
Vicuna-13B 需要大约60GB内存
Vicuna-7B 需要大约30GB内存

cd fastchat/model/apply_delta.py#同理手动进去找到apply_delta.py即可

修改apply_delta.py文件,注意一定要删掉required(红框)内容或改为false,因为true指的是命令框输入。
在这里插入图片描述
请注意!请注意!请注意!
vicuna-7b-delta-v1.1不是v0!!!
遇到个小错误
在这里插入图片描述
提示我protobuf版本过高,因此uninstall一下后创新install,成功!
在这里插入图片描述
在这里插入图片描述
9.启动FastChat

cd fastchat/serve/cli.py

找到cli.py进行修改
在这里插入图片描述
执行
在这里插入图片描述

按照上述步骤走正常内存够用就不会出错!如若有问题的话欢迎评论区留言,大家互相探讨学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/444563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

生成对抗网络GAN

1.基本概念 生成对抗网络Generative Adversarial Networks(GAN)包含生成模型(generative model)和判别模型 (discriminative model) 两个模型。生成模型的任务是生成和原始数据相似的实例,判别模型的任务是判断给定的实…

四百左右音质好的蓝牙耳机有哪些?2023公认音质最好的蓝牙耳机排行

与有线耳机相比,蓝牙耳机有着功能多样、使用便捷的优点。最近看到很多人问,四百内音质好的蓝牙耳机有哪些?针对这个问题,我来给大家推荐几款音质最好的蓝牙耳机,一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 参考价&…

Mybatis(九)插件原理及应用

一、Mybatis的插件实现原理 Mybatis允许用户通过自定义拦截器的方式改变Sql的执行方式,例如在Sql执行时追加Sql分页语法,从而达到减缓分页查询的目的,用户自定义拦截器也被称为Mybatis插件。 我们先从插件的配置及解析过程来分析插件&#…

蓝奥声核心技术分享——基于物联网的无线智能标签刷新控制技术

1.技术背景 基于物联网的无线智能标签刷新控制技术指基于对目标场景状态变化的协同感知而获得触发响应并进行智能决策,属于蓝奥声核心技术--边缘协同感知(EICS)技术的关键支撑性技术之一。该项技术涉及物联网边缘域的无线通信与智能控制技术领域。 物联…

学习同步异步的概念,并了解MQ消息队列

文章目录 一、 同步和异步1.1 同步调用1.2 异步调用 二、MQ1.1 介绍1.2 MQ的优点和使用场景 一、 同步和异步 1.1 同步调用 同步调用是一种程序调用方式,在该调用方式中,调用者发起一个请求,然后一直等待被调用者返回响应结果后再继续执行。…

wps - 使用宏来为每行标记序号

在WPS中遇到需要加序号的虽然可以用项目符符号来标注# 但或许用宏更厉害一些 WPS 的宏是一种自动化工具,可以通过编写宏代码来自动执行一些操作,例如创建和编辑文档、打印、格式化等。 WPS 宏的编写可以使用 VBA(Visual Basic for Applicat…

236. 二叉树的最近公共祖先 ——【Leetcode每日一题】

236. 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff…

inode和软硬链接

文章目录: 一、理解文件系统1.1 什么是inode1.2 磁盘了解1.2.1磁盘的硬件结构1.2.2 磁盘的分区1.2.3 EXT2文件系统 二、软硬链接2.1 软链接2.2 硬链接 一、理解文件系统 1.1 什么是inode inodes 是文件系统中存储文件元数据的数据结构。每个文件或目录都有一个唯一…

JavaSE学习进阶day06_01 数据结构(进阶)

第一章 数据结构(温习数据结构的内容) 1.1 树基本结构介绍 树具有的特点: 每一个节点有零个或者多个子节点 没有父节点的节点称之为根节点,一个树最多有一个根节点。 每一个非根节点有且只有一个父节点 名词含义节点指树中的…

第二届“威固新能源 GO野”,威固重塑新能源出行不凡体验

中国,上海,近日——全球特种材料公司伊士曼旗下汽车膜品牌威固(V-KOOL),于近日开启了第二届“威固新能源 GO野”不凡之旅,通过专为新能源而来的创新产品与服务,引领高端新能源车主驶出城市生活的…

晨控可视化标签在资产管理上的应用及优势

晨控可视化标签在资产管理上的应用及优势 资产是企业功能的核心组成部分,是企业重要的基础设施建设。资产存在的形式各种各样,不仅具有价值高、流动性强、安全管理困难的特点,而且成为资产管理的重要环境之一。通过射频识别技术,…

【00-Java Web先导课】-如何进行IDEA的安装

前沿 Pycharm与IDEA激活教程一样,本篇以IDEA激活教程为例进行保姆级教学 文章目录 前沿一、支持系统二、软件版本1.引入库 三、软件下载教程1、点击网址进入jetbrains官网2、按照下图选择相应下载的软件3、按照如图选择需要下载的版本4、按照如下方式进行下载软件 四…

Web服务器

目录 什么是Web服务器? Web容器 Servlet Servlet 规范 Servlet 的API结构 编写Servlet servlet生命周期(产生到销毁的过程) 服务器产生响应信息的两种格式 什么是Web服务器? Web服务器是一个程序,用于接收客户…

【LeetCode: 718. 最长重复子数组 | 暴力递归=>记忆化搜索=>动态规划】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Scillus | 来吧!它可以大大简化你的Seurat分析流程哦!~(一)(数据预处理)

1写在前面 太久没更了,真是累到极致,每天回到家都只想睡觉。😭 今天介绍一下Scillus包,是一个基于Seurat和ggplot2的R包,用于增强scRNA-seq数据的处理和可视化。🧐 它可以对Seurat对象进行多种类型的图形展…

多重背包问题的三种解法(转化为01背包、二进制拆分、单调队列优化)

多重背包问题的三种解法 转化为01背包二进制拆分优化单调队列优化 转化为01背包 题目链接:acwing4. 多重背包问题 I 题目描述 数据范围 思路: 可以转化为01背包问题求解,将s个物品都看作单独的一个物品,时间复杂度为 O ( N ∗ V ∗ S ) O(…

【一】MATLAB基础知识

【一】MATLAB基础知识 1 数值数据类型的分类 整型 无符号整数:无符号8位整数、无符号16位整数、无符号32位整数、 无符号64位整数。 带符号整数:带符号8位整数、带符号16位整数、带符号32位整数、 带符号64位整数。 无符号8位整数数据范围&#xff…

树和二叉树(概念及其结构)

1.树概念及结构(了解)‘ 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它 叫做树是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶…

php+vue+mysql校园大学生兼职信息网站系统

商家功能模块 商家通过点击后台管理,进入页面可以进行首页、个人中心、热门兼职管理、兼职接单管理、学生咨询管理、兼职任务管理、完成评价管理等功能模块,进行相对应操作 兼职接单管理:通过兼职接单管理可以进行获取兼职名称、专业、分类、…

佳电股份:智能互联 绿色驱动 拥抱未来

4月 13—15 日,2023年易派客工业品展览会、石油石化工业展览会、第七届中国石油和化工行业采购年会,在苏州国际博览中心举行。在本次展会上,佳电股份展出了超高速永磁电机、超高效高压三相异步电动机、智慧电机以及配套服务等主要产品。 哈尔…