体验 MiniGPT-4

体验 MiniGPT-4

  • 1. 什么是 MiniGPT-4
  • 2. Github 地址
  • 3. 安装 MiniGPT-4
  • 4. 准备预训练的 MiniGPT-4 checkpoint
  • 5. 在本地启动演示

1. 什么是 MiniGPT-4

MiniGPT-4:使用高级大型语言模型增强视觉语言理解。

MiniGPT-4 是一种改进型的预训练自编码器模型,用于改进视觉-语言理解任务的性能。

MiniGPT-4 基于 GPT-4 架构,但参数数量减少了约 40 倍,以降低计算成本和提高训练速度。

MiniGPT-4 被应用于图像描述生成、视觉问答和视觉常识推理三个视觉-语言理解任务。实验结果表明,相比于最先进的方法,MiniGPT-4 可以在这三个任务中实现更好的性能,同时训练速度也更快。研究表明,通过减少高级语言模型的参数数量,可以在视觉-语言理解领域实现更快、更准确的推理。

MiniGPT-4 可以作为一种轻量级的选择,应用于视觉-语言联合学习环境。

2. Github 地址

https://github.com/Vision-CAIR/MiniGPT-4

3. 安装 MiniGPT-4

准备代码和环境,

git clone https://github.com/Vision-CAIR/MiniGPT-4.git
cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

准备好预先训练好的 Vicuna weights,Vicuna 是一个开源的基于 LLAMA 的 LLM,其性能接近于 ChatGPT。我们目前使用Vicuna-13B的v0版本。

安装 git-lfs (https://git-lfs.com),

sudo apt install -y git-lfs

下载 Vicuna 的 delta weight,

git lfs install
git clone https://huggingface.co/lmsys/vicuna-13b-delta-v0  # 更强大,需要至少24G的gpu内存
# or
git clone https://huggingface.co/lmsys/vicuna-7b-delta-v0  # 更小,需要12G gpu内存

注意,这不是直接的 working weight,而是 working weight 和 LLAMA-13B 的 original weight 之间的差异。(由于LLAMA的规则,我们不能发布 LLAMA 的 weight)。

从互联网上获得 HuggingFace 格式的 LLAMA-7B 或 LLAMA-13B 的 original weight,

git clone https://huggingface.co/decapoda-research/llama-13b-hf  # 更强大,需要至少24G的gpu内存
# or
git clone https://huggingface.co/decapoda-research/llama-7b-hf  # 更小,需要12G gpu内存

模型的作者在编写配置文件时,出现了拼写错误。请将 tokenizer_config.json 文件通过执行以下命令修改即可,

sed -i 's/LLaMATokenizer/LlamaTokenizer/g' ./llama-13b-hf/tokenizer_config.json

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

首先,通过以下方式安装他们与 v0 Vicuna 兼容的库,

pip install git+https://github.com/lm-sys/FastChat.git@v0.1.10

然后,运行以下命令来创建最终的 working weight,

python -m fastchat.model.apply_delta --base ./llama-13b-hf/ --target ./vicuna_weights/ --delta ./vicuna-13b-delta-v0/

最后的 weight 将在一个单一的文件夹中,其结构类似于以下,

vicuna_weights/
├── config.json
├── generation_config.json
├── pytorch_model-00001-of-00003.bin
├── pytorch_model-00002-of-00003.bin
├── pytorch_model-00003-of-00003.bin
├── pytorch_model.bin.index.json
├── special_tokens_map.json
├── tokenizer.model
└── tokenizer_config.json

然后,在第 16 行这里的模型配置文件中设置 vicuna weight 的路径,

vi minigpt4/configs/models/minigpt4.yaml

--- modify
  llama_model: "/root/workspace/MiniGPT-4/vicuna_weights/"
---

4. 准备预训练的 MiniGPT-4 checkpoint

根据你准备的 Vicuna 模型,下载预训练的 checkpoint。

  • Checkpoint Aligned with Vicuna 13B

  • Checkpoint Aligned with Vicuna 7B

然后,在 eval_configs/minigpt4_eval.yaml 的评估配置文件中第11行设置预训练的检查点的路径。

vi eval_configs/minigpt4_eval.yaml

--- modify 
  ckpt: '/root/workspace/MiniGPT-4/'
---

5. 在本地启动演示

在你的本地机器上尝试我们的演示 Demo.py,运行以下命令,

python demo.py --cfg-path eval_configs/minigpt4_eval.yaml --gpu-id 0

未完待续!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Stable Diffusion使用方法

SD的本地安装教程有很多我就不重复了,这里主要是记录我在使用SD Webui的过程中遇到的问题,总结的一些提升出图效率,出好图概率的经验。 先搞几张看看效果 二次元妹妹 高达 ? Ok,以上只是一小部分成品 ,属…

PyQt5桌面应用开发(6):文件对话框

本文目录 PyQt5桌面应用系列介绍QFileDialog的静态接口QFileDialog的对象接口 示例结论后记 PyQt5桌面应用系列 PyQt5桌面应用开发(1):需求分析 PyQt5桌面应用开发(2):事件循环 PyQt5桌面应用开发&#xff…

MRI k空间概念整理

以下内容为MRI期末复习笔记,仅供复习参考使用。 K空间概念 K空间为包含MR数据的阵列,也可定义为原始数据阵列相位编码轴和频率编码轴的交叉点 MR扫描得到的数据为谱空间数据,谱空间数据与空间数据位置无直接对应关系 k空间每一数据点或数据…

不能使用chatGPT?这3个平替甚至比chatGPT更强

不能使用chatGPT?这3个平替甚至比chatGPT更强 chatGPT,一款由OpenAI开发的新型AI聊天机器人,正在势如破竹地改变着许多人的工作和生活方式。作为一款基于大语言模型的聊天机器人,chatGPT能够理解自然语言并进行人机对话。与传统的…

用于scATAC-seq有监督分类的Cellcano

细胞类型识别是单细胞数据分析的基本步骤。由于高质量参考数据集的可用性,有监督细胞分类方法在scRNA-seq数据中很受欢迎。染色质可及性分析(scATAC-seq)的最新技术进步为理解表观遗传异质性带来了新的见解。随着scATAC-seq数据集的不断积累&…

html5地理位置信息介绍, 百度地图使用

文章目录 1. HTML5中地理信息API1.1 Geolocation 接口 2. 在vue中使用百度地图3. 在react中使用百度地图 1. HTML5中地理信息API HTML5 的地理位置 API 可以让你获取用户的地理位置信息,并将其用于许多不同的应用场景,例如: 在地图上显示用…

钴基双金属氧化物储能材料的高效制备和电化学应用

一、引言 钴金属氧化物作为一类典型的储能材料,既可以用于锂离子电池负极材料,又可以用于超级电容器电极材料,因而备受关注 。在作为锂离子电池负极材料时,具有较高的理论比容量,但充放电体积变化较大、材料导电性较差…

爬虫为什么需要ip

爬虫需要使用爬虫ip主要是为了解决以下问题: 1、反爬虫机制:许多网站会设置反爬虫机制来防止爬虫程序的访问,例如限制IP地址的访问频率、检测访问来源等。使用爬虫ip可以绕过这些限制,使得爬虫程序更难被检测到。 2、访问限制&a…

浅拷贝和深拷贝

浅拷贝: 定义:浅拷贝(Shallow Copy)是一种简单的对象复制方式,将一个对象的数据成员直接复制给另一个对象(通常是通过默认的复制构造函数或赋值运算符实现),这些数据成员可以是基本…

JavaScript:字符串

文章目录 字符串344. 反转字符串reverse() 方法(打基础的时候,不要太迷恋库函数)代码及思路 541. 反转字符串 IIJavaScript String split() 方法JavaScript Array join() 方法代码分析见注释 剑指 Offer 05. 替换空格思路注意:上面…

网络基础学习:什么是网络与网络发展史

什么是网络与网络发展史 什么是网络?什么是网络发展史?分组交换技术TCP/IP技术Web技术ARPANET(1969年)Internet(1983年)万维网(1990年)移动互联网(2007年)物联…

KDGK-F断路器机械特性测试仪

一、产品概述 KDGK-F 断路器机械特性测试仪可用于各电压等级的真空、六氟化硫、少油、多油等电力系统高压开关的机械特性参数测试与测量。测量数据稳定,抗干扰性强,可在500KV等级及以下电站做实验,接线方便,操作简单,是…

第14章 项目采购管理

文章目录 采购管理包括如下几个过程14.2 编制采购计划 462编制采购计划的输出1)采购管理计划2)采购工作说明书3)采购文件 14.2.3 工作说明书(SOW) 14.3 实施采购 47414.3.2 实施采购的方法和技术 476(1&…

No.054<软考>《(高项)备考大全》【冲刺8】《软考之 119个工具 (6)》

《软考之 119个工具 (6)》 99.应急应对策略:100.风险在评估:101.风险审计:102.偏差和趋势分析:103.技术绩效测量:104.自制或外购分析:105.市场调研:106.投标人会议:107.建议书评价技术:108.独立核算:109.广告:110.采购谈判:111.合同变更控制系统:112.采购…

ArduPilot之GPS Glitch问题M8N模块配置

ArduPilot之GPS Glitch问题&M8N模块配置 1. 源由2. 现象3. 视频分析3.1 配置(不理想)3.2 配置优化3.3 优化配置短时间3D LockGlitch3.4 优化配置长时间3D DGPS Lock3.5 使用尽量多的卫星系统3.5.1 配置一3.5.2 配置二 3.6 同一时间段(M8N…

3.3 泰勒公式例题分析

例1 写出函数f(x)带有拉格朗日余项的n阶麦克劳林公式 我的答案: 一、信息 1.f(x)的表达式 2.目标求这个f(x)的n阶麦克劳林公式 二、分析 条件1:告诉我f(x)的表达式为我后续带入公式做准备 条件2:告诉我用什么公式和此次求解的方向 三…

平面设计师都在用的设计素材网站,免费下载~

很多新手设计师不知道去哪里找高清、免费的设计素材,今天我就给大家推荐5个设计素材网站,免费下载,赶紧收藏起来把! 1、菜鸟图库 https://www.sucai999.com/?vNTYwNDUx 菜鸟图库是我推荐过很多次的网站,主要是站内素…

普通2本,去过字节外包,到现在年薪25W+的测试开发,我的2年转行心酸经历...

个人简介 我是一个普通二本大学机械专业毕业,17年毕业,19年转行,目前做IT行业的软件测试已经有3年多,职位是高级测试工程师,坐标上海… 我想现在我也有一点资格谈论关于转行这个话题;希望你在决定转行之前…

unity-VRTK-simulator开发学习日记2(抛物线 导包|使用|调用方法)

导包 使用抛物线 1.层级目录下添加抛物线曲线 曲线上面那个是直线 2.将跟踪控制器 给到抛物线的“跟随资源” (选择哪只手射出射线) 3.激活按键 找到模拟手柄按键 找到simulator的交互的几个按键(ButtonOne为例) value&#x…

从4k到42k,软件测试工程师的涨薪史,给我看哭了

清明节一过,盲猜大家已经无心上班,在数着日子准备过五一,但一想到银行卡里的余额……瞬间心情就不美丽了。 最近,2023年高校毕业生就业调查显示,本科毕业月平均起薪为5825元。调查一出,便有很多同学表示自己…