【LLMs系列】没钱玩GPT-4?来试试Mini-GPT4吧!

news2024/11/16 22:53:14

一、MiniGPT-4尝鲜

 

还在苦苦等待GPT-4开放?开源项目MiniGPT-4就能提前体验类似GPT-4的多模态对话功能。

2023年4月17日,多模态问答模型MiniGPT-4发布,实现了GPT-4里的宣传效果

《MiniGPT-4: Enhancing Vision-language Understanding with Advanced Large Language Models》

阿卜杜拉国王科技大学的几位博士(看名字都是中国人)开发,他们认为GPT-4 先进的多模态生成能力,主要原因在于利用了更先进的大型语言模型。

为了验证这一想法,团队成员将一个冻结的视觉编码器(Q-Former&ViT)与一个冻结的 文本生成大模型(Vicuna,江湖人称:小羊驼) 进行对齐,造出了 MiniGPT-4。

  • MiniGPT-4 具有许多类似于 GPT-4 的能力, 图像描述生成、从手写草稿创建网站等
  • MiniGPT-4 还能根据图像创作故事和诗歌,为图像中显示的问题提供解决方案,教用户如何根据食物照片做饭等。

二、模型介绍

2.1 模型结构介绍

  • 投影层(Projection Layer)是神经网络中常见层类型,将输入数据从一个空间映射到另一个空间。
  • NLP中,投影层通常用于将高维词向量映射到低维空间,以减少模型参数数量和计算量。
  • CV中,投影层可以将高维图像特征向量映射到低维空间,以便于后续处理和分析。

 2.2 fine tune介绍

  1. 先是在 4 个 A100 上用 500 万图文对训练
  2. 然后再用一个小的高质量数据集训练,单卡 A100 训练只需要 7 分钟。

2.3 模型效果介绍

在零样本 VQAv2 上,BLIP-2 相较于 80 亿参数的 Flamingo 模型,使用的可训练参数数量少了 54 倍,性能提升了 8.7 %。

三、环境搭建

3.1 克隆仓库

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

3.2 构建环境

cd MiniGPT-4
conda env create -f environment.yml
conda activate minigpt4

四、MiniGPT-4模型下载

4.1 Vicuna Weight的working weight构建

参考:【LLMs系列】90%chatgpt性能的小羊驼Vicuna模型学习与实战_小小的香辛料的博客-CSDN博客

4.2 配置模型路径

修改minigpt4/configs/models/minigpt4.yaml第16行代码,改成vicuna的权重。

例:

model:
  arch: mini_gpt4

  # vit encoder
  image_size: 224
  drop_path_rate: 0
  use_grad_checkpoint: False
  vit_precision: "fp16"
  freeze_vit: True
  freeze_qformer: True

  # Q-Former
  num_query_token: 32

  # Vicuna
  llama_model: "chat/vicuna/weight"   # 将 "/path/to/vicuna/weights/"  修改为本地 weight 地址
  ...

五、准备MiniGPT-4 checkpoint

5.1下载MiniGPT-4 checkpoint

1.下载 MiniGPT-4 checkpoint

  • 方法一:从 google drive 下载
    • Checkpoint Aligned with Vicuna 13B: https://drive.google.com/file/d/1a4zLvaiDBr-36pasffmgpvH5P7CKmpze/view?usp=share_link
    • Checkpoint Aligned with Vicuna 7B: https://drive.google.com/file/d/1RY9jV0dyqLX-o38LrumkKRh6Jtaop58R/view?usp=sharing
  • 方法二:huggingface 平台下载
    • prerained_minigpt4_7b.pth:wangrongsheng/MiniGPT4-7B at main
    • pretrained_minigpt4.pth:wangrongsheng/MiniGPT4 at main

2.在 eval_configs/minigpt4_eval.yaml 的 第11行 设置 MiniGPT-4 checkpoint 路径 

    model:
    arch: mini_gpt4
    model_type: pretrain_vicuna
    freeze_vit: True
    freeze_qformer: True
    max_txt_len: 160
    end_sym: "###"
    low_resource: True
    prompt_path: "prompts/alignment.txt"
    prompt_template: '###Human: {} ###Assistant: '
    ckpt: '/path/to/pretrained/ckpt/'       # 修改为 MiniGPT-4 checkpoint 路径
    ...

5.2 在本地启动MiniGPT-4

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

注:为了节省GPU内存,Vicuna默认加载为8位,波束搜索宽度为1。这种配置对于Vicuna 13B需要大约23G GPU内存,对于Vicuna7B需要大约11.5G GPU内存。对于更强大的GPU,您可以通过在配置文件minigpt4_eval.yaml中将low_resource设置为False以16位运行模型,并使用更大的波束搜索宽度。

 

本节就先到这! 

 

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

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

相关文章

GDB常用调试方法及其底层原理

本文分为两个大模块,第一部分记录下本人常用到的GDB的调试方法和技巧,第二部分则尝试分析GDB调试的底层原理。 一、GDB调试 要让程序能被调试,首先得编译成debug版本,当然release版本的也能通过导入符号表来实现调试&#xff0c…

Centos7下tensorflow 2.12无法找到NVIDIA Tesla T4 GPU终极解决方法

目录 背景 系统信息 GPU信息 关键软件信息 问题现象 原因分析

解决element-ui消息提示$message重叠问题

在进行表单校验的时候,当触发两个提示消息的时候会出现上面的叠加情况,没有将提示消息分开显示,这样就给用户造成不好的视觉效果 我们的预期效果是达到上面的显示效果,就是在进行提示的时候,如果叠加就需分开显示&…

Centos8同步时间(阿里云NTP服务为例)

一、安装chrony sudo dnf install chrony二、使用 sed 命令一键完成配置 #pool 2.centos.pool.ntp.org iburst给这一行加注释 sudo sed -i s/^pool 2.centos.pool.ntp.org iburst/#&/ /etc/chrony.conf #添加3个阿里云NTP服务器 echo -e "server ntp1.aliyun.com ib…

withContext CoroutineScope协程切换,kotlin

withContext CoroutineScope协程切换&#xff0c;kotlin <dependency><groupId>org.jetbrains.kotlinx</groupId><artifactId>kotlinx-coroutines-core</artifactId><version>1.4.2</version></dependency> import kotlinx.co…

python 上传包到pypi

参考 https://www.jianshu.com/p/81fe5a5cd27a 1.打包 在pypi注册账号&#xff0c;并新建token 需要在用户下创建一个.pypirc文件。username__ token __ 是固定的&#xff0c;password 填入刚刚的token。 使用下面两个命令把dist中文件推送到pypi python setup.py sdist…

AI读心重磅突破登Nature!AI破译大脑信号

近日&#xff0c;洛桑联邦理工学院团队在Nature上提出了一种名为CEBRA的可实现AI读脑的最新算法&#xff0c;以高精度捕捉到了动物大脑的动态。 利用AI&#xff0c;一个研究团队「看见」了老鼠眼中的电影世界。更神奇的是&#xff0c;这种机器学习算法&#xff0c;还能揭示大脑…

【以太坊】本地搭建以太坊测试网络,部署合约

文章目录 工具建议参考测试 工具 Ganache 建议 推荐使用 Ganache 搭建&#xff0c;简单易上手 参考 https://www.npmjs.com/package/ganache 测试 npm install ganache --global && ganache --help ganache

[230609] 阅读TPO57汇总|9:30-10:50

TPO57 01 Pests and Pesticides [3]修辞目的题 修辞目的题做题技巧&#xff1a;找观点&#xff01;不能推理&#xff01;一般找例子前后的观点&#xff01; P3段 段意即观点&#xff0c;观点在段首或段尾&#xff01; 考察比较的作用 主要理解In other words后面的话&#…

新老版本AndroidStudio删除无用资源方法总结

今年AndroidStudio版本更新比较快&#xff0c;一些常用的功能都在变化&#xff0c;其中删除项目中无用资源变化的有点大&#xff0c;特在此记录总结下。这里所说的新老版本的Android Studio其实就是看Android Studio最上面有没有&#xff1a;Anaylze 老版本是有的 新版本这个…

SeaTunnel 发布成为 Apache 顶级项目后首个版本 2.3.2,进一步提高 Zeta 引擎稳定性和易用性

近日&#xff0c;Apache SeaTunnel 正式发布 2.3.2 版本。此时距离上一版本 2.3.1 发布已有两个多月&#xff0c;期间我们收集并根据用户和开发者的反馈&#xff0c;在 2.3.2 版本中对 SeaTunnel Zeta Engine 进行了 Bug 修复&#xff0c;提高了引擎的稳定性和使用效率。 此外&…

【Java】Java核心 74:XML (下)

文章目录 **7** **Schema约束(能够看懂即可)****1** **书写schema约束****2** **在xml文件中引入schema约束** 7 Schema约束(能够看懂即可) 与dtd约束一样&#xff0c;schema它也是用来约束xml文件的。schema约束书写的时候&#xff0c;它遵守xml的语法规则。在书写schema的时…

vb.net 正则表达式解析一些奇奇怪怪的文件名为时间类型

Public Function 正则表达式A(f As String) As Date2023-02-06 1653830If New Regex("\d{4}.\d{2}.\d{2}.\d{6}").IsMatch(f) ThenDim nian Strings.Mid(f, 1, 4)Dim yue Strings.Mid(f, 6, 2)Dim ri Strings.Mid(f, 9, 2)Dim shi Strings.Mid(f, 12, 2)Dim feng…

什么是编程语言?||与编程相关的计算机硬件介绍

什么是编程语言&#xff1f; 学习编程语言之前&#xff0c;首先要搞清楚“编程语言”这个概念。 很小的时候&#xff0c;父母就教我们开口说话&#xff0c;也教我们如何理解别人讲话的意思。经过长时间的熏陶和自我学习&#xff0c;我们竟然在不知不觉中学会了说话&#xff0c…

【从零开始学习JAVA | 第二十二篇】BigInteger

目录 前言&#xff1a; BigInterger&#xff1a; BigInteger常见的方法&#xff1a; 总结&#xff1a; 前言&#xff1a; 本篇我们将介绍BigInteger这个比较实用一点的API&#xff0c;这个API在我们实际写项目中都是很实用的API&#xff0c;因此大家应该对这个API有更加熟练的…

sublime text 打开 txt 文档乱码问题

对于 windows 系统使用系统自带的 txt 编辑工具&#xff0c;默认打开和保存文件的文件的格式是 GBK 或者 GB2312&#xff0c;而 sublime 默认仅支持 utf-8&#xff0c;所以当从 windows 系统拷贝文件在 mac 上浏览有时候会出现乱码的问题&#xff0c;这时候就需要安装插件使 su…

RDBMS 与 非RDBMS

RDBMS vs 非RDBMS 前言一、关系型数据库(RDBMS)1、实质2、优势 二、非关系型数据库(非RDBMS)1、介绍2、有哪些非关系型数据库3、NoSQL的演变4、小结 前言 本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识&#xff0c;有兴趣的小伙伴可以关注博主&#xff01;…

基于uni-app+vue3跨端「h5+小程序+App」仿制chatGPT模板实例

uni-chatgpt 一款uniappvite4uview-plus多端ChatGPT模板实例。 全新首发的一款多端仿制chatgpt智能对话实战项目&#xff0c;基于uniAppVue3PiniauViewUIMarkdownIt等技术开发搭建项目。支持编译到h5小程序APP端&#xff0c;支持markdown语法解析及代码高亮。 功能特点 全屏沉…

LinkedList的底层实现原理(JDK8)

目录 一、知识点回顾二、LinkedList 的 add() 和 remove() 的实现2.1 list.add(e) 实现原理2.2 list.remove(e) 实现原理 一、知识点回顾 双向链表特点&#xff1a; 区间离散&#xff0c;占用内存宽松&#xff0c;空间复杂度小&#xff0c;时间复杂度 O(n)。优点&#xff1a;…

Android Jetpack Compose —— FloatingActionButton

FloatingActionButton 通常用于呈现应用程序的主要操作或常用操作&#xff0c;并具有显著的圆形形状和浮动的定位。FloatingActionButton 提供了一种简单而优雅的方式来引导用户进行主要的应用程序交互&#xff0c;例如开始一个新的任务、分享内容、启动一个动作等。它在应用程…