ChatGLM 4本地部署指南(Docker容器版)

GLM-4V-9B 是智谱 AI 推出的最新一代预训练模型 GLM-4 系列中的开源多模态版本。 GLM-4V-9B 具备 1120 * 1120 高分辨率下的中英双语多轮对话能力,在中英文综合能力、感知推理、文字识别、图表理解等多方面多模态评测中,GLM-4V-9B 都表现出卓越性能。
本次开源多个版本:

THUDM/glm-4v-9b
基座模型

THUDM/glm-4-9b-chat
偏好对齐的版本。 GLM-4-9B-Chat 还具备备网页浏览、代码执行、自定义工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能

THUDM/glm-4-9b-chat-1m
支持 1M 上下文长度(约 200 万中文字符)的模型。

THUDM/glm-4v-9b
GLM-4 系列中的开源多模态版本

本文验证硬件环境:
BF16 : RTX4090*1,显存24GB,内存32GB,系统盘200GB
24G显存无法体验多模态:GLM-4V-9B
模型微调硬件要求更高。一般不建议个人用户环境使用

环境准备

硬件要求

  1. GLM-4-9B-Chat
精度显存占用Prefilling / 首响Decode SpeedRemarks
BF1619047MiB0.1554s27.8193 tokens/s输入长度为 1000
精度显存占用Prefilling / 首响Decode SpeedRemarks
Int48251MiB0.1667s23.3903 tokens/s输入长度为 1000
Int49613MiB0.8629s23.4248 tokens/s输入长度为 8000
Int416065MiB4.3906s14.6553 tokens/s输入长度为 32000
  1. GLM-4-9B-Chat-1M
精度显存占用Prefilling / 首响Decode SpeedRemarks
BF1674497MiB98.4930s2.3653 tokens/s输入长度为 200000
  1. GLM-4V-9B
精度显存占用Prefilling / 首响Decode SpeedRemarks
BF1628131MiB0.1016s33.4660 tokens/s输入长度为 1000
BF1633043MiB0.7935a39.2444 tokens/s输入长度为 8000
精度显存占用Prefilling / 首响Decode SpeedRemarks
Int410267MiB0.1685a28.7101 tokens/s输入长度为 1000
Int414105MiB0.8629s24.2370 tokens/s输入长度为 8000
下载源码
git clone https://github.com/THUDM/GLM-4.git
cd GLM-4
模型准备

git clone https://huggingface.co/THUDM/glm-4-9b-chat

手动下载以下几个模型(体验时几个模型不一定需全下载)
下载地址:https://hf-mirror.com/THUDM
模型名称:
THUDM/glm-4-9b-chat
THUDM/glm-4-9b
THUDM/glm-4v-9b
本文统一放在模型存档目录:/u01/workspace/models

Docker 容器化部署

构建镜像
  • Dockerfile样例

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

FROM pytorch/pytorch:2.2.1-cuda12.1-cudnn8-runtime
ARG DEBIAN_FRONTEND=noninteractive
WORKDIR /app

RUN apt-get update
RUN apt-get install -y curl git
RUN rm -rf /var/lib/apt/lists/*

RUN pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
RUN pip config set install.trusted-host mirrors.aliyun.com    
RUN  pip install jupyter  && \
     pip install --upgrade ipython && \
     ipython kernel install --user

RUN  cd /tmp && \ 
     curl -fsSL https://deb.nodesource.com/setup_22.x -o nodesource_setup.sh && \
     bash nodesource_setup.sh && \
     apt-get install -y nodejs && \
     rm -rf nodesource_setup.sh && \
     node -v

RUN npm config set registry https://registry.npmmirror.com
RUN npm install -g pnpm
RUN node - add --global pnpm

COPY GLM-4/ /app/GLM-4/

WORKDIR /app/GLM-4/composite_demo/browser
RUN mkdir -p /u01/workspace/models/
RUN npm --version
RUN pnpm --version
RUN pnpm install


#/u01/workspace/chatglm4/GLM-4/composite_demo/browser/src/config.ts
#LOG_LEVEL: 'debug',
#BROWSER_TIMEOUT: 10000,
#BING_SEARCH_API_URL: 'https://api.bing.microsoft.com/',
#BING_SEARCH_API_KEY: '',
#HOST: 'localhost',
#PORT: 3000,


#/u01/workspace/chatglm4/GLM-4/composite_demo/src/tools/config.py
#BROWSER_SERVER_URL = 'http://localhost:3000'
#IPYKERNEL = 'glm-4-demo'
#ZHIPU_AI_KEY = ''
#COGVIEW_MODEL = 'cogview-3'

WORKDIR /app/GLM-4
RUN pip install --verbose --use-pep517  -r composite_demo/requirements.txt
RUN pip install --verbose --use-pep517  -r basic_demo/requirements.txt
RUN pip install huggingface_hub==0.23.1

EXPOSE 8501

CMD [ "streamlit","run", "composite_demo/src/main.py" ]
  • 执行构建
docker build -t qingcloudtech/chatglm4:v1.0 .
运行docker
docker run -it --gpus all  \
-p 8501:8501 \
-v /u01/workspace/models/glm-4-9b-chat:/app/GLM-4/models/glm-4-9b-chat \
-v /u01/workspace/models/glm-4v-9b:/app/GLM-4/models/glm-4v-9b \
-e CHAT_MODEL_PATH=/app/GLM-4/models/glm-4-9b-chat \
qingcloudtech/chatglm4:v1.0  streamlit run composite_demo/src/main.py

web 访问地址: http://127.0.0.1:8501
image.png

注意:默认24G显存状况下无法正常使用多模态模型。

openai api 方式运行
docker run -it --gpus all \
-p 8000:8000 \
-v /u01/workspace/models/glm-4-9b:/app/GLM-4/THUDM/glm-4-9b \
qingcloudtech/chatglm4:v1.0 python basic_demo/openai_api_server.py

测试验证

警告:
网页浏览、代码执行相关功能在该版本中并不支持,后续会逐步更新到容器中。尽情关注。


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

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

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

相关文章

每日一题遇到沙比题目——Python实现PAT甲级1058 A+B in Hogwarts(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页:用哲学编程-CSDN博客专栏:每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 吐槽题目 我的写法 代码分析 1. 输入处理 2. 变量初始化 3. 查找星期几和小时 4…

系统架构设计师重难点知识脑图

大家都知道现在的软考自从变成机考后,越来越难了,教程上的内容不仅全还细,几乎任何内容都有可能考,出题老师主打一个出其不意,比如2024年5月考试,连UML时序图的片段都考,这 种如果看书的话一般都是一瞟而过,而实际工作中又很少会这么严格的去画片段。 所以对于教程上的…

悬浮翻译推荐哪个软件好?秒懂外国电影就靠它

电影如《阿甘正传》中的"Life is like a box of chocolates, you never know what youre gonna get."等台词,总能深深打动我们,超越语言的界限。 但在现实世界中,语言差异往往成为沟通的障碍。幸运的是,随着悬浮翻译器…

知识付费小程序开发搭建

一、知识付费小程序简介 知识付费小程序是一个开发知识支付的平台,拥有自主研发的在线课程平台,致力于服务知识支付行业,能深入每个业务场景构建完善知识付费闭环。 二、知识付费小程序的开发搭建过程 关键步骤: 1,…

【Unity性能优化】使用多边形碰撞器网格太多,性能消耗太大了怎么办

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 专栏交流🧧&…

AutoMQ 生态集成 Tigris

Tigris[1]是一个全球分布式的兼容 S3 的对象存储服务,它允许你存储和访问任意数量的数据,具有广泛的使用场景。Tigris 会自动且智能地将数据分布到靠近用户的位置,让用户无需担心数据复制和缓存复杂性。 你可以将 Tigris 用于多种场景&#x…

(文章复现)基于共享储能服务的智能楼宇双层优化配置

参考文献: [1]张浩鹏,李泽宁,薛屹洵,等.基于共享储能服务的智能楼宇双层优化配置[J/OL].中国电机工程学报,1-12[2024-05-22]. 1.摘要 为降低城市化进程中楼宇储能投资成本,提出一种基于共享储能服务的智能楼宇(Intelligent Buildings&#…

【机器学习基础】Python编程04:五个实用练习题的解析与总结

Python是一种广泛使用的高级编程语言,它在机器学习领域中的重要性主要体现在以下几个方面: 简洁易学:Python语法简洁清晰,易于学习,使得初学者能够快速上手机器学习项目。 丰富的库支持:Python拥有大量的机器学习库,如scikit-learn、TensorFlow、Keras和PyTorch等,这些…

AIGC会带来失业潮吗?紧紧跟时代第一步,如何学习AIGC

会,但AI淘汰的始终是跟不上时代的人。 现在很多公司都有AI培训,不仅GPT,还有Midjourney、Stable DIffusion等一系列AI工具。 像我们公司虽然今年招的少,但也会对新招的应届生统一进行AI培训。 用任正非先生的话来说就是&#x…

Jupyter Notebook远程连接服务器

参考连接: 使用Jupyter Notebook远程连接服务器_jupyter notebook 连接 ray-CSDN博客 Jupyter Notebook 7.0 更新远程访问配置_no module named notebook.auth-CSDN博客 激活conda环境 conda activate abc #激活虚拟环境 安装jupyter pip install jupyter #安装…

Java17 --- Mabbitmq之安装测试

目录 一、拉取运行镜像 1.1、拉取镜像环境 1.2、运行镜像 二、工作模式 2.1、消息的发送者 2.2、消息的接收者 2.3、生产队列模式 2.3.1、消息的发送者 2.3.2、消息的接收者 2.4、发布订阅模式 2.4.1、消息的发送者 2.4.2、消息的接收者 2.5、路由模式 2.5.…

python --对象属性、类属性、类方法和静态方法

对象属性和类属性 --掌握--对象属性 目标掌握对象属性的使用 对象属性,有时也称实例属性、普通属性、公有属性 、或者直接叫属性 在类内部,访问对象属性语法: self.对象属性名 在类外部,访问对象属性语法: 对象名.对…

【全开源】安心护送非急救救护车转运平台小程序(FastAdmin+ThinkPHP+Uniap

🚑安心护送非急救救护车转运平台小程序——您的健康守护者💖 安心护送转运平台小程序是一款基于FastAdminThinkPHPUniapp开发的非急救救护车租用转运平台小程序系统,可以根据运营者的业务提供类似短途接送救护服务,重症病人转运服…

几种近距离无线传输的方案

常见的近距离无线通信技术主要有以下几种: 1. 蓝牙(Bluetooth):这是一种近距离、低功耗的无线通讯标准,支持设备短距离通信(10m左右)。常用于无线鼠标、无线键盘或手持移动终端等设备。 2. ZigB…

【权威发布丨投稿优惠】2024年企业管理、投融资与经济学国际会议(EMIFE 2024)

2024年企业管理、投融资与经济学国际会议 2024 International Conference on Enterprise Management, Investment and Financing, and Economics 【1】会议简介 2024年企业管理、投融资与经济学国际会议是一场汇集全球顶尖学者、企业家和经济学家的盛会。本次会议旨在探讨企业管…

【全开源】废品回收垃圾回收小程序APP公众号源码PHP版本

🌟废品回收小程序:绿色生活的新助手🌱 一、引言 随着环保意识的逐渐提高,废品回收成为了我们日常生活中的重要一环。但是,如何更方便、高效地进行废品回收呢?今天,我要向大家推荐一款超级实用的…

线性dp+数论分块,1561D1 - Up the Strip

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1561D1 - Up the Strip (simplified version) 二、解题报告 1、思路分析 一眼dp 写出dp方程: 前者维护前缀和即可O(1)转移 后者呢?——整除分块数论分块问题-CSDN博客 简单叙述下…

成都跃享未来教育:安全可靠,值得信赖的教育新选择

在当今社会,教育行业的竞争日益激烈,家长们对于选择一所安全可靠的教育机构显得尤为谨慎。成都跃享未来教育作为一家新兴的教育机构,以其独特的教育理念和优质的服务赢得了广大家长的信赖和好评。那么,成都跃享未来教育到底安全可…

va_start和va_end使用介绍

一 概述 采用C语言编程的时候,函数中形式参数的数目通常是确定的,在调用时要依次给出与形式参数对应的所有实际参数。但在某些情况下希望函数的参数个数可以根据需要确定。典型的例子有大家熟悉的函数printf()、scanf()和系统调用execl()等。那么它们是怎…

32C3-2模组与乐鑫ESP32­-C3­-WROOM­-02模组原理图、升级口说明

模组原理图: 底板原理图: u1 是AT通信口,wiif-tx wifi-rx 是升级口,chip-pu是reset复位口,GPIO9拉低复位进入下载模式 ESP32-WROOM-32 系列硬件连接管脚分配 功能 ESP32 开发板/模组管脚 其它设备管脚 下载固件…