Vicuna-13B使用云服务器部署

news2024/11/15 17:05:18

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核125GNVIDIA 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模型

其实官方github上官方给出的用法是先向facebook提出申请,拿到原生的LLaMA weights,然后再使用作者给出的增量weghts进行转换训练,得到最终可使用的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

这个模型大概26G,请耐心等待。

模型使用

命令行内使用

#此时你应该在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.

已经训练好的Vicuna-13B v1.1模型链接:https://huggingface.co/eachadea/vicuna-13b-1.1

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

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

相关文章

kerberos配置dolphinscheduler

kerberos配置dolphinscheduler 一、添加dolphin 用戶1.所有節點上執行如下命令: 二、DolphinScheduler集群模式部署1.集群规划2.前置准备工作3.解压DolphinScheduler安装包4. 创建元数据库及用户5. 配置一键部署脚本6 初始化数据库7.修改common配置文件8. 一键部署D…

华为、思科和瞻博网络三个厂商如何配置基本ACL和高级ACL?

今天给大家带来基本ACL和高级ACL的配置,主要会介绍三个厂商的配置: 其他厂商也可以参考,比如华三的可以参考华为的,锐捷的参考思科的。 1. 基本ACL配置 基本ACL(Access Control List)是一种简单的网络安全…

【Java高级语法】(十二)可变参数:Java中的“可变之美“,做好这些细节,你的程序强大又灵活~

Java高级语法详解之可变参数 🔹 前言1️⃣ 概念2️⃣ 优势和缺点3️⃣ 特征和应用场景3.1 特征3.2 应用场景 4️⃣ 使用和原理5️⃣ 使用技巧5.1 可变参数结合泛型5.2 使用元组或列表进行参数传递5.3 使用默认值5.4 缓存计算结果 6️⃣ 实战:构建动态日志…

【Vue3+Ts project】认识 Websocket 以及 socket.io 库

目录 Websocket socket.io Socket.iO 事件名总结: Socket.IO 方法总结 Websocket 作用: WebSocket 仍然提供实时的双向通信功能,使用Vue3 应用程序能够与服务器进行实时数据交换降低延迟和网络开销:相比传统的HTTP请求-响…

scratch lenet(7): C语言计算可学习参数数量和连接数量

scratch lenet(7): C语言计算可学习参数数量和连接数量 1. 目的 按照 LeNet-5 对应的原版论文 LeCun-98.pdf 的网络结构,算出符合原文数据的“网络每层可学习参数数量、连接数量”。 网络上很多人的 LeNet-5 实现仅仅是 “copy” 现有的别人的项目, 缺…

求2的N次幂(C++)解决高精度运算

​👻内容专栏:《C/C专栏》 🐨本文概括: 计算高精度的2的N次方数字。 🐼本文作者:花 碟 🐸发布时间:2023.6.22 文章目录 ​前言求2的N次方,N ≤ 10000实现思路&#xff1a…

SpringBoot 如何使用 @PathVariable 进行数据校验

SpringBoot 如何使用 PathVariable 进行数据校验 在 SpringBoot 项目中,我们经常需要从 URL 中获取参数并进行相关的数据校验。而 PathVariable 注解就是一种非常方便的方式,可以让我们在方法参数中直接获取 URL 中的参数,并进行数据校验。本…

基于python开发实现数学中各种经典曲线的可视化

今天正好有点时间就想着把之前零星时间里面做的一点小东西整合一下梳理出来,本文的核心目的就是想要基于python来开发实现各种有趣的数学曲线的可视化展示。 笛卡尔心形线 笛卡尔心形线是一种二维平面曲线,由法国数学家笛卡尔在17世纪提出。它得名于其…

基于springboot+Redis的前后端分离项目(三)-【黑马点评】

🎁🎁资源文件分享 链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA?pwdeh11 提取码:eh11 优惠券秒杀 优惠券秒杀1 -全局唯一ID2 -Redis实现全局唯一Id3 添加优惠卷4 实现秒杀下单5 库存超卖问题分析6 优惠券秒杀-一人一单…

Spring Boot 异常处理的主要特点

Spring Boot 异常处理的主要特点 在 Web 应用程序中,异常处理是非常重要的一部分。在 Spring Boot 中,异常处理是非常简单和灵活的。本文将介绍 Spring Boot 异常处理的主要特点,并提供一些示例代码来帮助您更好地理解。 异常处理的主要特点…

王道计算机网络学习笔记(1)——计算机网络基本知识

前言 文章中的内容来自B站王道考研计算机网络课程,想要完整学习的可以到B站官方看完整版。 一:计算机网络基本知识 1.1.1:认识计算机网络 计算机网络的功能 网络把许多计算机连接在一起,而互联网则将许多网络连接在一起&#x…

第一章JavaScript简介

第一章JavaScript简介 js是一门,高级,动态,解释型编程语言 每种语言都必须有一个平台或标准库,用于执行包括基本输入和输出在内的基本操作.核心js语言定义了最小限度的API,可以操作数组,文本,数组,集合,映射等,但不包括任何输入输出的功能.输入和输出(以及更加复杂的特性,如联…

基于Servlet实现分页查询

Servlet JSPJSTL MySQLBootstrap 等技术实现分页查询功能。 所用工具:IDEA 2022.3.3 Navicat Tomcat 等。 本文目录 一:运行效果 二:代码详解 (1)index.jsp (2)PageBean &#xff08…

图解操作系统笔记

硬件基础 CPU是如何执行程序的? 程序执行的基本过程 第一步,CPU 读取「程序计数器」的值,这个值是指令的内存地址,然后 CPU 的「控制单元」操作「地址总线」指定需要访问的内存地址,接着通知内存设备准备数据&#…

python:并发编程(十七)

前言 本文将和大家一起探讨python并发编程的实际运用,会以一些我实际使用的案例,或者一些典型案例来分享。本文使用的案例是我实际使用的案例(中篇),是基于之前效率不高的代码改写成并发编程的。让我们来看看改造的过…

excel数据的编排与整理——行列的批量处理

excel数据的编排与整理——行列的批量处理 1 一次性插入多行多列 1.1 插入连续行 1.1.0 题目内容 1.1.1 选中插入的位置➡按住shift键➡往下选中2行 1.1.2 鼠标右击➡点击插入 1.1.3 插入后的效果 1.2 插入不连续行 1.2.0 题目内容 1.2.1 按下ctrl键➡选中插入的位置,需要插…

7.4_1B树(二序查找树BST的升级版)

如果需要查找的值比节点小,会向左子树方向查找,如果比节点值大,会向右子树方向查找 拓展为5叉的形态 5叉排序树的定义 num是这个节点中真实存在的节点个数 那么一个节点中 最少有1个关键字,两个分叉 最多有4个关键字&#xff0c…

数据结构:二叉树详解

目录 概念(在做习题中常用的概念) 两种特殊的二叉树 二叉树的性质 二叉树的遍历(重点) 如上图: 二叉树的构建(代码表示一颗二叉树和一些操作二叉树的方法) 二叉树的oj习题讲解&#xff0…

代码审计-Java项目Filter过滤器CNVD分析XSS跨站框架安全

文章目录 Demo-Filter-过滤器引用Demo-ST2框架-组件安全CNVD-Jeesns-XSS跨站绕过CNVD-悟空CRM-Fastjson组件 Demo-Filter-过滤器引用 Filter:Javaweb三大组件之一(另外两个是Servlet、Listener) 概念:Web中的过滤器,当访问服务器的资源时&am…

编程语言的优劣评选标准与未来发展趋势——探索最佳编程语言选择

编程语言的优劣评选标准与未来发展趋势——探索最佳编程语言选择 评判标准不同编程语言的优点与缺点分析对编程语言未来发展的猜测和未来趋势 💕 💕 💕 博主个人主页: 汴京城下君–野生程序员💕 💕 &#x…