【LLMs 入门实战 】第一式:Vicuna 模型学习与实战

news2024/11/25 7:13:53

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

  • 欢迎使用小羊驼🦙
    • 环境搭建
    • 权重下载
      • 下载 Vicuna Weight
      • 下载 LLAMA Weight
      • 构建真正的 working weight
    • 命令行推理
      • 单GPU推理:
    • 大功告成!

欢迎使用小羊驼🦙

Github地址

环境搭建

conda create -n py310_chat python=3.10 # 创建新环境
source activate py310_chat # 激活环境
pip install fschat # 安装fschat包
git clone https://github.com/lm-sys/FastChat.git
cd FastChat
pip install --upgrade pip # enable PEP 660 support
pip install -e .
git lfs install
# 如果载好了应该是>>>Git LFS initialized.

安装LFS:

  • 如果是 Homebrew,请运行 brew install git-lfs
  • 如果是 MacPorts,请运行 port install git-lfs
  • 如果是CentOS,请运行yum install git-lfs

权重下载

70亿参数对应的版本是7b;130亿对应的是13b(billion)

下载 Vicuna Weight

git clone https://huggingface.co/lmsys/vicuna-13b-delta-v1.1
# or
git clone https://huggingface.co/lmsys/vicuna-7b-delta-v1.1

请注意,这不是直接的 working weight ,而是LLAMA-13B的 working weight 与 original weight 的差值。(由于LLAMA的规则,我们无法分配LLAMA的 weight 。

下载 LLAMA Weight

这里直接从HuggingFace下载,已转化为 HuggingFace格式的原始LLAMA-7B或LLAMA-13B 权重):

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

量力而行⬆️上面是官方教程给的,但是7b的权重文件和vicuna-delta的7b对不上

📢注意:LLAMA的权重用这个更好:
llama-7b

构建真正的 working weight

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

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

python -m fastchat.model.apply_delta --base /path/to/llama-13bOR7b-hf/  --target /path/to/save/working/vicuna/weight/  --delta /path/to/vicuna-13bOR7b-delta-v1.1/ --low-cpu-mem
>>>
The tokenizer class you load from this checkpoint is not the same type as the class this function is called from. It may result in unexpected tokenization. 
The tokenizer class you load from this checkpoint is 'LLaMATokenizer'. 
The class this function is called from is 'LlamaTokenizer'.
Split files for the base model to /tmp/tmptu2g17_d
100%|██████████████████████████████████████████████████████████████████████████████████████████████████████| 33/33 [01:47<00:00,  3.26s/it]
Split files for the delta model to /tmp/tmpol8jc2oy
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████| 2/2 [01:03<00:00, 31.92s/it]
Applying the delta
33it [02:09,  3.91s/it]
Saving the target model to vicuna/weight/

然而显存很不给力地爆了,用的是Telsa p100(显存16G)

在这里插入图片描述

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

怪不得爆呢~

colab A100救我狗命😝
在这里插入图片描述

如果用的是7b的模型就是以上output;如果是13b那么就是如下的output:
在这里插入图片描述

命令行推理

单GPU推理:

下面的命令要求Vicuna-13B大约有28GB的GPU内存,Vicuna-7B大约有14GB的GPU存储器。

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

大功告成!

在这里插入图片描述

()开心

参考链接🔗:https://github.com/km1994/LLMsNineStoryDemonTower/tree/main/Vicuna

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

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

相关文章

InceptionNext实战:使用InceptionNext实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集 摘要 论文翻译&#xff1a;https://wanghao.blog.csdn.net/article/details/131347001?spm1001.2014.3001.5502 官方源码&#xff1a;https://github.com/sail-sg/incept…

Spring Boot详细应用示例:构建一个简单的图书管理系统

文章目录 摘要正文1. 创建Spring Boot项目2. 配置数据库3. 创建实体类4. 创建数据访问层5. 创建业务逻辑层6. 创建控制器层7. 创建前端页面8. 添加身份验证9. 测试运行 小结 摘要 本文将介绍如何使用Spring Boot框架构建一个简单而完整的图书管理系统。通过这个示例&#xff0…

学术小技巧:如何使用easyscholar来提高论文查找效率

0 摘要 easyScholar是一款很好用的科研插件&#xff0c;可以显示会议期刊登记&#xff0c;支持轻量翻译&#xff0c;一键下载等等功能。 1 效果预览 可以直接显示SCI分区&#xff0c;目前中科院SCI分区基础版是免费的&#xff0c;升级版要收费。 目前支持的网站有&#xff1…

【C++】红黑树的插入实现

目录 红黑树的概念红黑树的性质 红黑树节点的定义红黑树的插入操作当p(父节点)在g(祖父节点)左子树grandfather->_left parent当p(父节点)在g(祖父节点)右子树grandfather->_right parent &#x1f4d6; 前言 本篇文章中红黑树的插入用到左单旋和右单旋在AVL树的插入中…

【Python】python进阶篇之面向对象编程

面向对象编程 封装、继承、多态 封装&#xff1a;提高程序安全性 将数据&#xff08;属性&#xff09;和行为&#xff08;方法&#xff09;包装到类中。在方法内部对属性进行操作&#xff0c;在类的外部调用方法。无需关心方法内部的具体实现细节&#xff0c;从而隔离代码复杂…

生成器模式(Builder)

定义 生成器是一种创建型设计模式&#xff0c;使你能够分步骤创建复杂对象。该模式允许你使用相同的创建 代码生成不同类型和形式的对象。 前言 1. 问题 假设有这样一个复杂对象&#xff0c;在对其进行构造时需要对诸多成员变量和嵌套对象进行繁复的初始化工作。这些初始化…

体验Vue神奇的响应式原理:让你的应用更快、更流畅

文章目录 I. 引言介绍Vue.js的响应式原理及其重要性概述本文的内容 II. 数据劫持解释什么是数据劫持Vue如何实现数据劫持示例说明 II. 依赖收集解释什么是依赖收集Vue如何实现依赖收集示例说明 IV. 派发更新解释什么是派发更新Vue如何实现派发更新示例说明 V. 响应式原理运作流…

数据仓库建设指导说明

文章目录 1、概念2、数仓特点3、数仓架构3.1、数据集市3.2、Inmon 架构3.3、Kimball 架构3.3.1、表分区3.3.1.1、事实表3.3.1.2、维度表3.3.1.2.1、维表设计步骤3.3.1.2.2、维度设计的建议3.3.1.2.3、主键设计3.3.1.2.4、缓慢变化维 SCD3.3.1.2.5、维表的整合与拆分3.3.1.2.5.1…

Verdi 之配置及波形打开

目录 写在前边 1.verdi的配置 2. 波形的产生及打开 写在前边 本部分内容主要对Verdi的学习进行总结&#xff0c;大概分三篇文章进行叙述。 1.verdi的配置 1.首先打开.bashrc文件进行环境配置 2.Verdi 配置如下&#xff1a; verdi_HOME: 配置Verdi的home目录&#xff0…

如何制作数字人的模型

首先我们先来了解一下什么是数字人&#xff0c;根据 中国人工智能产业发展联盟发布的《2020年虚拟数字人发展白皮书》指出&#xff0c;数字人意 指具有数字化外形的虚拟人物&#xff0c;除了拥有人的外观、人的行为之外&#xff0c;还拥有人的思想&#xff0c;具有识别外界环境…

【深入浅出RocketMQ原理及实战】「底层原理挖掘系列」透彻剖析贯穿RocketMQ的消息顺序消费和并发消费机制体系的原理分析

透彻剖析贯穿RocketMQ的消息顺序消费和并发消费机制体系的原理分析 DefaultMQPushConsumerImpl拉取消息consumeMessageService的并发消费和顺序消费并发消费顺序消费concurrently 创建 ConsumeRequestconcurrently ConsumeRequest#run 消费主体逻辑消费结束之后清除数据 orderl…

黑马程序员前端 Vue3 小兔鲜电商项目——(十)订单页

文章目录 路由配置和基础数据渲染模板代码配置路由封装接口渲染数据 切换地址-打开弹框交互切换地址-地址切换交互生成订单支付页组件封装订单接口绑定事件 路由配置和基础数据渲染 模板代码 新建 src\views\Checkout\index.vue 文件&#xff0c;添加以下代码&#xff1a; &…

容器管理中关于CGroup的那些事

前言 在一个docker宿主机上可以启动多个容器&#xff0c;默认情况下&#xff0c;docker并没有限制其中运行的容器使用硬件资源。 但如果在实际环境中&#xff0c;容器的负载过高&#xff0c;会占用宿主机大量的资源。这里的资源主要指的CPU&#xff0c;内存&#xff0c;和IO带…

Python Pandas 筛选数据以及字符串替换

str.replace使用示例 假设有一个DataFrame df&#xff0c;其中有一个列名为text&#xff0c;包含一些文本字符串&#xff1a; import pandas as pd data {text: [hello world, foo bar, hello there]} df pd.DataFrame(data) 我们可以使用str.replace方法来替换字符串。比…

操作系统——Linux 进程控制

一、实验题目 Linux 进程控制 二、实验目的 通过进程的创建、撤销和运行加深对进程概念和进程并发执行的理解&#xff0c;明确进程和程序之间的区别。 三、实验内容&#xff08;实验原理/运用的理论知识、算法/程序流程图、步骤和方法、关键代码&#xff09; &#xff08;…

开源网安S-SDLC解决方案,为银行打造主动防御的安全体系

​某银行是全国上市最早的一批股份制商业银行&#xff0c;总部位于深圳&#xff0c;在全国拥有上百家分行、上千家营业机构&#xff0c;资产总额达数千亿元。近年来&#xff0c;该银行围绕数据化、智能化、生态化&#xff0c;全力打造“数字银行”&#xff0c;助力建设“数字中…

第十六届CISCN复现----MISC

1.被加密的生产流量 下载附件&#xff0c;发现是一个文件名为modus的压缩包&#xff0c;解压后是一个pcap文件&#xff0c;用wireshark打开 文件名modus&#xff0c;已经提示了工控流量&#xff0c;很多情况下都是和TCP协议结合起来的 工控CTF之协议分析1——Modbus_ctf modb…

基于java+swing+mysql学生信息管理系统V2.0

基于javaswingmysql学生信息管理系统V2.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.登陆5.学生信息查询6、学生信息添加7、学生信息修改8、学生信息删除 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型&#xff1a;Java SE项目&#xff08;awtswi…

Gorm Many To Many

写cmdb的时候要去做一些软件资源的落库&#xff0c;发布要使用到的应用属性。应用有哪些属性&#xff1f; 应用有它的type类型&#xff0c;是api还是admin&#xff0c;还是job或者task。它的语言是go java.....&#xff0c;它的own也就是属于哪个开发的&#xff0c;这是它的属…

设备管理模块实现

文章目录 1 .导航树模块的实现2. 查询定位功能的实现3. 资源管理功能的实现4. 电缆段入沟功能实现 1 .导航树模块的实现 导航树的各节点是通过Ajax 技术异步加载的&#xff0c;系统初始化时导航树只会加载初始的城市节点&#xff0c;用户根据自身需要选择相应的父节点加载其逻…