CogVLM2多模态开源大模型部署与使用

news2024/11/16 19:33:38

CogVLM2多模态开源大模型部署与使用

项目简介

  • CogVLM2 是由清华大学团队发布的新一代开源模型系列。
  • 2024年5月24日,发布了Int4版本模型,只需16GB显存即可进行推理。
  • 2024年5月20日,发布了基于llama3-8b的CogVLM2,性能与GPT-4V相当或更优。

模型特点

  • 显著提升关键指标,如TextVQA, DocVQA。
  • 支持8K文本长度和1344*1344图像分辨率。
  • 提供中英文双语模型版本。

模型详细信息

  • 基座模型:Meta-Llama-3-8B-Instruct
  • 语言:英文和中英文双语
  • 模型大小:19B
  • 任务:图像理解,对话模型
  • 文本长度:8K
  • 图片分辨率:1344*1344

模型使用

最低配置要求

CogVlM2 Int4 型号需要 16G GPU 内存就可以运行,并且必须在具有 Nvidia GPU 的 Linux 上运行。

Model Name19B Series ModelRemarks
BF16 / FP16 Inference42GBTested with 2K dialogue text
Int4 Inference16GBTested with 2K dialogue text
BF16 Lora Tuning (Freeze Vision Expert Part)57GBTraining text length is 2K
BF16 Lora Tuning (With Vision Expert Part)> 80GBSingle GPU cannot tune

部署步骤

模型下载
  • 这里从 huggingface 上下载模型
  • 如果使用AutoDL算力平台可以使用 source /etc/network_turbo 进行学术加速 , unset http_proxy && unset https_proxy 取消加速
# 创建文件夹
mkdir cogvlm2
# 按照huggingface_hub 工具下载模型
pip install -U huggingface_hub
# 下载模型到当前文件夹
huggingface-cli download THUDM/cogvlm2-llama3-chinese-chat-19B-int4 --local-dir .

# 也可以使用
git clone https://huggingface.co/THUDM/cogvlm2-llama3-chinese-chat-19B-int4
下载代码
git clone https://github.com/THUDM/CogVLM2
安装依赖

cd basic_demo

pip install -r requirements.txt

  • 如果安装出现依赖库冲突的错误,可以采用下面requirements.txt
xformers>=0.0.26.post1
#torch>=2.3.0
#torchvision>=0.18.0
transformers>=4.40.2
huggingface-hub>=0.23.0
pillow>=10.3.0
chainlit>=1.0.506
pydantic>=2.7.1
timm>=0.9.16
openai>=1.30.1
loguru>=0.7.2
pydantic>=2.7.1
einops>=0.7.0
sse-starlette>=2.1.0
bitsandbytes>=0.43.1
代码修改

vim web_demo.py

# 修改模型路径为本地路径
MODEL_PATH = '/root/autodl-tmp/cogvlm2/cogvlm2-llama3-chinese-chat-19B-int4'

启动WebDemo

chainlit run web_demo.py

访问

本地则访问 : http://localhost:8000

如果是AutoDL 使用ssh代理来访问 , 输入yes, 如何粘贴密码即可

ssh -CNg -L 8000:127.0.0.1:8000 root@connect.cqa1.xxxx.com -p 46671
  • 页面

image-20240604143209810

效果

  • 成份表

image-20240604154950681

  • 火车票

image-20240604155033358

这里键的含义不对, int4 估计会有性能损失导致的

  • 盖了章的报价表

4

image-20240604160818755

OpenAI API

使用 OpenAI API格式的方式请求和模型的对话。

python openai_api_demo.py

错误解决

image-20240604154848046

解决办法 :

使用下面requirements.txt重新安装依赖

xformers>=0.0.26.post1
#torch>=2.3.0
#torchvision>=0.18.0
transformers>=4.40.2
huggingface-hub>=0.23.0
pillow>=10.3.0
chainlit>=1.0.506
pydantic>=2.7.1
timm>=0.9.16
openai>=1.30.1
loguru>=0.7.2
pydantic>=2.7.1
einops>=0.7.0
sse-starlette>=2.1.0
bitsandbytes>=0.43.1

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

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

相关文章

怎么用微信小程序实现远程控制空调

怎么用微信小程序实现远程控制空调呢? 本文描述了使用微信小程序调用HTTP接口,实现控制空调,通过不同规格的通断器,来控制不同功率的空调的电源。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备…

这个杂志,审稿到录用仅需一个月!毕业生的梦中情刊,本科生用NHANES数据库发文2区...

Lipids in Health and Disease 是一个公开的、同行评议的期刊,主要发表关于脂质所有方面的文章,影响因子逐年上升,国人发文占比排第一,年刊量100多篇!最重要的是,该期刊文章审稿速度特别快,最快…

《额尔古纳河右岸》有感

看完了迟子建老师的《额尔古纳河右岸》,老规矩,写点东西吧。最近一段时间确实挺迷茫的,所以给自己找了点事儿,看看书。期初并不能认真看进去,慢慢的看见去之后,就愈发想知道故事的后来。 书里有太多关于死亡…

地址线/时钟/数据线串联电阻作用

在一些线路中会串联电阻,那么这个电阻的作用到底是什么?什么时候需要串联电阻? 首先高速信号线中才考虑使用这样的电阻。在低频情况下,一般是直接连接。这个电阻有两个作用: 1.第一是阻抗匹配。因为信号源的阻抗很低…

element-plus表格添加简单右键

实现如下 <template><main class"mainClass" > <el-table :data"tableData" style"width: 100%"row-contextmenu"rowContextmenu"cell-contextmenu"cellContextmenu"contextmenu.prevent><el-table-c…

excle中数据分析,excle导入用sql简单处理

前言&#xff1a; 办法一&#xff1a;直接用excle导入db就行&#xff0c;如果excle导如db不能用&#xff0c;就用笨办法下面这个方法去做 1、从系统中导出excle 2、db中插入相应的表和标题 3、先手动插入条件&#xff0c;把insert语句复制出来 INSERT INTO test.test (orders…

教师产假多少天

教师产假究竟有多少天&#xff1f;这个问题或许在您计划家庭时显得尤为重要。教师作为国家公职人员&#xff0c;享有法定的产假权益。 根据规定&#xff0c;女职工的产假一般为98天&#xff0c;包括产前15天和产后83天。但请注意&#xff0c;这一标准并非全国统一&#xff0c;不…

机器学习算法 —— 基于鸢尾花数据集的逻辑回归分类

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 目录 实践演示基于鸢尾花&#xff08;iris&#xff09;数据集的逻辑回归分类库函数导入数据读取/载入数据信息简单查看可视化展示利用逻辑回归模…

Java面向对象笔记

多态 一种类型的变量可以引用多种实际类型的对象 如 package ooplearn;public class Test {public static void main(String[] args) {Animal[] animals new Animal[2];animals[0] new Dog();animals[1] new Cat();for (Animal animal : animals){animal.eat();}} }class …

【STM32】STM32F103C6T6标准外设库

1、标准外设库获取 第一步&#xff0c;首先获取标准外设库&#xff0c;可以从官网进行下载。 https://www.st.com.cn/zh/embedded-software/stm32-standard-peripheral-libraries.html 根据自己的型号选择不同的系列&#xff0c;我这里选择是STM32F1系列 下载最新版本V3.6&a…

SemiDrive X9H 平台 QT 静态编译

一、 前言 芯驰 X9H 芯片&#xff0c;搭载多个操作系统协同运行&#xff0c;系统实现了仪表、空调、中控、副驾多媒体的四屏驱动控制&#xff0c;在人车智能交互上可以通过显示屏、屏幕触摸控制、语音控制、物理按键控制、车身协议的完美融合&#xff0c;使汽车更智能。让车主…

大型集团企业知识管理系统总体解决方案(38页PPT)

方案介绍&#xff1a; 通过本解决方案的实施&#xff0c;企业可以实现知识的全面管理和高效利用&#xff0c;提高员工工作效率和创新能力&#xff0c;降低企业运营成本&#xff0c;增强企业竞争力。同时&#xff0c;借助人工智能技术&#xff0c;企业可以更加精准地把握市场动…

国产SDI/功能与GV7600/GS2972类似

是一款传递数字标清和高清信号的数字视频发送器&#xff0c;功能与GV7600/GS2972类似&#xff0c;集成了线缆驱动器&#xff0c;可以使用 75 欧姆的同轴线缆传递525i&#xff0c;625i&#xff0c;720P&#xff0c;1080P。 支持的速率如下&#xff1a; 如需更多资料请留言哦&am…

Excel加密,记住4个方法,轻松保护数据!

“刚刚编辑完了一个Excel文档&#xff0c;为了防止数据泄露&#xff0c;我想将它加密。不知道大家有什么方法可以加密Excel呢&#xff1f;” 在当今信息高度发展的时代&#xff0c;数据的安全性显得尤为重要。对于企业而言&#xff0c;敏感数据的泄露可能导致严重的商业损失和声…

16. 最接近的三数之和 - 力扣

1. 题目 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 2. 示例 3.分析 做这道题目前&#xff0c;先做这道&#xff1a;三数之和 &#x…

JavaScript 从入门到精通Object(对象)

文章目录 对象文本和属性方括号计算属性 属性值简写属性名称限制属性存在性测试&#xff0c;“in” 操作符“for…in” 循环像对象一样排序 总结✅任务你好&#xff0c;对象检查空对象对象属性求和将数值属性值都乘以 2 对象引用和复制通过引用来比较克隆与合并&#xff0c;Obj…

记录layui-table中操作列的宽度随着权限变化而变化

最近做一个项目&#xff0c;某个页面因为角色不同&#xff0c;所以显示的的按钮有所不同。 管理员权限 普通人员权限 layui引入的table宽度是写死的&#xff0c;不能随着自动变化&#xff0c;查了一些资料&#xff0c;让写入css的方法 .layui-table th, .layui-table td { whi…

微信小程序-WXS脚本

一、概述 1.WXS WXS(WeiXin Script)是小程序独有的一套脚本语言&#xff0c;结合 WXML&#xff0c;可以构建出页面的结构。 2.wxs 的应用场景 wxml中无法调用在页面的.js 中定义的函数&#xff0c;但是&#xff0c;wxml 中可以调用 wxs 中定义的函数。因此&#xff0c;小程序…

容器项目之前后端分离

容器化部署ruoyi项目 #需要的镜像nginx、java、mysql、redis、 #导入maven镜像、Java镜像和node镜像 docker load -i java-8u111-jdk.tar docker load -i maven-3.8.8-sapmachine-11.tar docker load -i node-18.20.3-alpine3.20.tar #拉取MySQL和nginx镜像 docker pull mysql…

每日5题Day17 - LeetCode 81 - 85

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;81. 搜索旋转排序数组 II - 力扣&#xff08;LeetCode&#xff09; class Solution {public boolean search(int[] nums, int target) {int n nums.length;if (n…