CogVLM2 本地部署体验(Docker容器版)

2024-05-25 00:12

本文主要是介绍CogVLM2 本地部署体验(Docker容器版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

智普AI推出新一代的 CogVLM2 系列模型,并开源了两款基于 Meta-Llama-3-8B-Instruct开源模型。与上一代的 CogVLM 开源模型相比,CogVLM2 系列开源模型具有以下改进:

  1. 在许多关键指标上有了显著提升,例如 TextVQA, DocVQA。
  2. 支持 8K 文本长度。
  3. 支持高达 1344 * 1344 的图像分辨率。
  4. 提供支持中英文双语的开源模型版本。

硬件要求(模型推理):
INT4 : RTX30901,显存>16GB,内存32GB,系统盘200GB
INT4 : RTX4090
1或RTX3090*2,显存24GB,内存32GB,系统盘200GB
模型微调硬件要求更高。一般不建议个人用户环境使用

环境准备

源码下载
git clone https://github.com/THUDM/CogVLM2.git; 
cd CogVLM
模型下载

手动下载模型
下载地址:https://hf-mirror.com/THUDM
git clone https://hf-mirror.com/THUDM/cogvlm2-llama3-chat-19B

Docker 容器化部署

构建镜像
  • 修改源码模型地址

构建镜像先把模型的地址修改为本地模型,避免从huggingface临时下载。
截图 2024-05-24 14-19-15.png

  • Dockerfile文件编写

注意 COPY CogVLM2/ /app/CogVLM2/ 这行执行需要根据世纪CogVLM源码下载存放位置。

FROM pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime
ARG DEBIAN_FRONTEND=noninteractiveWORKDIR /appRUN sudo apt-get --fix-broken install
RUN sudo apt-get install -y --no-install-recommends \python3-mpi4py  mpich
RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.comCOPY CogVLM2/ /app/CogVLM2/
WORKDIR /app/CogVLM2RUN pip install bitsandbytes
RUN pip install --use-pep517 -r basic_demo/requirements.txt
#RUN pip install --use-pep517 -r finetune_demo/requirements.txtEXPOSE 7861
CMD [ "chainlit","run","basic_demo/web_demo.py" ]

本文采用基础镜像pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime
系统预置了部分python 库,为避免冲突,需要注释掉源码中的部分依赖包。(torch,torchvision)

  • 修改后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 # for int4 quantization
  • 执行构建
docker build -t qingcloudtech/cogvlm:v1.1 .

截图 2024-05-24 14-55-25.png

运行
Docker webui运行

第一步:执行启动指令

docker run -it --gpus all \-p 7861:7861 \-v /u01/workspace/models/cogvlm2-llama3-chinese-chat-19B:/app/CogVLM2/basic_demo/THUDM/cogvlm2-llama3-chinese-chat-19B \-v /u01/workspace/cogvlm/images:/u01/workspace/images \qingcloudtech/cogvlm2:v1.0 chainlit run basic_demo/web_demo.py

注意提前准备好模型,并挂载好模型路径,否则可能会因为网络导致模型无法动态下载成功。

第一步:访问验证:
image.png
image.png

openai api 方式运行

第一步:执行启动指令

docker run -itd --gpus all \-p 8000:8000 \-v /u01/workspace/models/cogvlm2-llama3-chinese-chat-19B:/app/CogVLM2/basic_demo/THUDM/cogvlm2-llama3-chinese-chat-19B \-v /u01/workspace/cogvlm/images:/u01/workspace/images \qingcloudtech/cogvlm2:v1.1 python basic_demo/openai_api_demo.py

第二步:测试验证
『693cce5688f2 』替换为自己的容器ID

docker exec -it 693cce5688f2 python basic_demo/openai_api_request.py
root@itserver03:/u01/workspace/cogvlm/CogVLM2/basic_demo# docker exec -it 693cce5688f2 python openai_demo/openai_api_request.py 
This image captures a serene landscape featuring a wooden boardwalk that leads through a lush green field. The field is bordered by tall grasses, and the sky overhead is vast and blue, dotted with wispy clouds. The horizon reveals distant trees and a clear view of the sky, suggesting a calm and peaceful day.
root@itserver03:/u01/workspace/cogvlm/CogVLM2/basic_demo# 

其他访问方式:

Restful API地址:
127.0.0.1:8000/v1/chat/completions


【Qinghub Studio 】更适合开发人员的低代码开源开发平台
【QingHub企业级应用统一部署】
【QingHub企业级应用开发管理】
QingHub** 演示】**
https://qingplus.cn

这篇关于CogVLM2 本地部署体验(Docker容器版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/999936

相关文章

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

java实现docker镜像上传到harbor仓库的方式

《java实现docker镜像上传到harbor仓库的方式》:本文主要介绍java实现docker镜像上传到harbor仓库的方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 前 言2. 编写工具类2.1 引入依赖包2.2 使用当前服务器的docker环境推送镜像2.2

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

c++中的set容器介绍及操作大全

《c++中的set容器介绍及操作大全》:本文主要介绍c++中的set容器介绍及操作大全,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录​​一、核心特性​​️ ​​二、基本操作​​​​1. 初始化与赋值​​​​2. 增删查操作​​​​3. 遍历方

前端如何通过nginx访问本地端口

《前端如何通过nginx访问本地端口》:本文主要介绍前端如何通过nginx访问本地端口的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、nginx安装1、下载(1)下载地址(2)系统选择(3)版本选择2、安装部署(1)解压(2)配置文件修改(3)启动(4)