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

相关文章

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

docker 重命名镜像的实现方法

《docker重命名镜像的实现方法》在Docker中无法直接重命名镜像,但可通过添加新标签、删除旧镜像后重新拉取/构建,或在DockerCompose中修改配置文件实现名称变更,感兴趣的可以了解一下... 目录使用标签(Tagging)删除旧的php镜像并重新拉取或构建使用docker Compose在Do

Java JUC并发集合详解之线程安全容器完全攻略

《JavaJUC并发集合详解之线程安全容器完全攻略》Java通过java.util.concurrent(JUC)包提供了一整套线程安全的并发容器,它们不仅是简单的同步包装,更是基于精妙并发算法构建... 目录一、为什么需要JUC并发集合?二、核心并发集合分类与详解三、选型指南:如何选择合适的并发容器?在多

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Spring Boot中获取IOC容器的多种方式

《SpringBoot中获取IOC容器的多种方式》本文主要介绍了SpringBoot中获取IOC容器的多种方式,包括直接注入、实现ApplicationContextAware接口、通过Spring... 目录1. 直接注入ApplicationContext2. 实现ApplicationContextA

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

linux配置podman阿里云容器镜像加速器详解

《linux配置podman阿里云容器镜像加速器详解》本文指导如何配置Podman使用阿里云容器镜像加速器:登录阿里云获取专属加速地址,修改Podman配置文件并移除https://前缀,最后拉取镜像... 目录1.下载podman2.获取阿里云个人容器镜像加速器地址3.更改podman配置文件4.使用po