GLM-4V-9B快速入门:9B参数视觉模型,单卡24G显存就能跑
GLM-4V-9B快速入门9B参数视觉模型单卡24G显存就能跑想不想在自己的电脑上跑一个能看懂图片、能回答问题的AI助手今天要介绍的GLM-4V-9B就是一个90亿参数的视觉语言模型它最大的特点就是“亲民”——单张RTX 4090显卡就能流畅运行显存要求只要24GB左右。你可能听说过GPT-4V、Claude这些强大的多模态模型但它们要么需要付费使用要么对硬件要求极高。GLM-4V-9B的出现让普通开发者和研究者也能轻松拥有一个本地部署的视觉AI助手。它能做什么呢简单来说你给它一张图片它就能告诉你图片里有什么、分析图表数据、识别文字内容甚至和你进行多轮对话。这篇文章我会带你从零开始一步步把这个模型部署到你的本地环境让你亲身体验它的能力。整个过程不需要复杂的配置跟着做就行。1. 环境准备检查你的“装备”在开始之前我们先确认一下你的电脑环境是否满足基本要求。这就像组装一台新电脑前要先看看主板、电源、内存是否兼容一样。1.1 硬件和系统要求GLM-4V-9B对硬件的要求相对友好但有几个关键点需要注意操作系统推荐使用Ubuntu 20.04或更高版本。如果你用Windows建议通过WSL2来运行Linux环境这样兼容性更好。显卡这是最重要的部分。模型有两种运行模式FP16模式需要大约24GB显存。适合RTX 3090、RTX 4090、A10、A100等高端显卡。INT4量化模式只需要9-12GB显存。RTX 3060 12GB、RTX 4070等中端显卡就能跑。其他建议至少有16GB系统内存硬盘空间预留50GB以上模型文件就占了18GB。1.2 软件环境安装如果你的系统已经安装了Python和PyTorch可以直接跳到下一步。如果没有按照下面的步骤来首先安装Python 3.10或更高版本# 更新系统包管理器 sudo apt update sudo apt upgrade -y # 安装Python 3.10和相关工具 sudo apt install python3.10 python3.10-venv python3.10-dev -y然后创建一个虚拟环境这样不会影响系统原有的Python环境# 创建虚拟环境 python3.10 -m venv glm4v_env # 激活虚拟环境 source glm4v_env/bin/activate接下来安装PyTorch。这里以CUDA 11.8为例你可以根据自己显卡的CUDA版本调整pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118最后安装模型运行需要的其他依赖库pip install transformers4.45.0 accelerate tiktoken einops scipy pillow如果你想让推理速度更快强烈建议安装flash-attn需要CUDA 11.6以上pip install flash-attn --no-build-isolation到这里基础环境就准备好了。接下来我们要下载模型文件。2. 模型下载获取“大脑”文件模型文件比较大大约18GB。直接从Hugging Face下载可能会比较慢特别是国内用户。我推荐使用ModelScope魔搭社区这是国内的一个模型平台下载速度通常快很多。2.1 安装ModelScopepip install modelscope2.2 下载模型文件最简单的方式是直接用命令行下载# 下载模型到当前目录下的glm-4v-9b文件夹 modelscope download --model ZhipuAI/glm-4v-9b --local_dir ./glm-4v-9b这个过程可能需要一些时间取决于你的网络速度。下载完成后你会看到一个名为glm-4v-9b的文件夹里面包含了模型的所有文件。如果你想加快下载速度可以用Python脚本开启多线程下载from modelscope import snapshot_download model_id ZhipuAI/glm-4v-9b local_dir ./glm-4v-9b # 模型保存路径 # 开启16个线程同时下载 snapshot_download( model_id, local_dirlocal_dir, cache_dir./cache, # 临时缓存目录 max_workers16 # 线程数根据带宽调整 )把这段代码保存为download.py然后运行python download.py。多线程下载能显著提升速度特别是对于大文件。3. 基础使用第一次对话模型下载好了现在我们来写一个最简单的程序让模型“看”一张图片并回答我们的问题。3.1 创建推理脚本新建一个文件命名为inference.py把下面的代码复制进去import os import warnings import torch # 先设置环境变量减少不必要的日志输出 os.environ[TF_CPP_MIN_LOG_LEVEL] 3 os.environ[TRANSFORMERS_VERBOSITY] error os.environ[HF_HUB_DISABLE_SYMLINKS_WARNING] 1 # 屏蔽Python警告 warnings.filterwarnings(ignore, categoryFutureWarning) warnings.filterwarnings(ignore, categoryUserWarning) # 现在导入其他库 from PIL import Image import transformers from transformers import AutoModelForCausalLM, AutoTokenizer # 设置transformers的日志级别 transformers.logging.set_verbosity_error() def run_inference(): # 模型路径就是刚才下载的文件夹 model_path ./glm-4v-9b # 1. 加载分词器负责把文字转换成模型能理解的数字 print([1/4] 正在加载分词器...) tokenizer AutoTokenizer.from_pretrained(model_path, trust_remote_codeTrue) # 2. 加载模型到显存 print([2/4] 正在加载模型...) model AutoModelForCausalLM.from_pretrained( model_path, trust_remote_codeTrue, torch_dtypetorch.bfloat16, # 使用BF16精度节省显存 device_mapauto # 自动分配到可用的GPU ).eval() # 设置为评估模式不进行训练 # 3. 准备图片和问题 image_path demo.jpg # 你需要准备一张测试图片 query 请详细描述这张图片。 # 打开图片 try: image Image.open(image_path).convert(RGB) print(f[3/4] 已加载图片: {image_path}) except Exception as e: print(f错误无法打开图片 {image_path}) print(f详细错误: {e}) return # 4. 把图片和问题一起传给模型 print([4/4] 正在生成回答...) inputs tokenizer.apply_chat_template( [{role: user, image: image, content: query}], add_generation_promptTrue, tokenizeTrue, return_tensorspt, return_dictTrue ).to(cuda) # 移动到GPU # 5. 让模型生成回答 with torch.no_grad(): # 不计算梯度节省内存 outputs model.generate( **inputs, max_new_tokens512, # 最多生成512个token do_sampleFalse, # 不随机采样保证结果稳定 use_cacheTrue, # 使用缓存加速 eos_token_idtokenizer.eos_token_id # 结束标记 ) # 提取模型生成的回答 response_ids outputs[0][len(inputs[input_ids][0]):] response tokenizer.decode(response_ids, skip_special_tokensTrue) # 6. 打印结果 print(\n *40 模型回答 *40) print(response) print(*90) if __name__ __main__: run_inference()3.2 准备测试图片在同一个目录下放一张你想让模型分析的图片命名为demo.jpg。可以是风景照、人物照、图表截图等等。比如你可以找一张有多个物体的场景图包含文字的截图数据图表或者任何你感兴趣的图片3.3 运行脚本确保你在虚拟环境中然后运行python inference.py第一次运行会稍微慢一点因为模型需要加载到显存。你会看到类似这样的输出[1/4] 正在加载分词器... [2/4] 正在加载模型... [3/4] 已加载图片: demo.jpg [4/4] 正在生成回答... 模型回答 这张图片展示了一个现代化的城市夜景。画面中央是一座高耸的摩天大楼建筑表面覆盖着玻璃幕墙反射着周围的光线。大楼顶部有红色的航空警示灯正在闪烁。前景中可以看到其他建筑的屋顶和部分街道街道上有车辆行驶的轨迹光。天空呈深蓝色有几朵云彩。整体画面色调偏冷以蓝色和紫色为主营造出夜晚宁静而繁华的氛围。图片的构图采用了低角度仰拍突出了建筑的高度和宏伟感。 恭喜你已经成功运行了GLM-4V-9B模型。它不仅能描述图片内容还能回答更复杂的问题比如“图片里有多少个人”“这张图表显示了什么趋势”“图片中的文字是什么”“根据图片内容推测这是什么场合”你可以修改query变量尝试不同的问题。4. 进阶配置应对不同场景基础用法掌握了我们来看看一些实际应用中可能需要的进阶配置。4.1 显存不够怎么办使用量化如果你的显卡显存小于20GB运行上面的代码可能会报“显存不足”的错误。这时候可以用4-bit量化技术把模型“压缩”一下。首先安装量化需要的库pip install bitsandbytes然后修改模型加载部分的代码model AutoModelForCausalLM.from_pretrained( model_path, torch_dtypetorch.bfloat16, trust_remote_codeTrue, load_in_4bitTrue, # 关键开启4-bit量化 device_mapauto ).eval()量化后的模型显存占用会降到9-11GBRTX 3060 12GB这样的显卡就能跑了。不过量化会稍微影响一点精度但对于大多数应用来说这点精度损失是可以接受的。4.2 想要更快的速度使用vLLM如果你需要同时处理很多请求比如做成一个在线服务或者想要更快的推理速度可以用vLLM框架。它比原生的Transformers快很多。先安装vLLMpip install vllm然后启动一个API服务python -m vllm.entrypoints.openai.api_server \ --model ./glm-4v-9b \ --trust-remote-code \ --gpu-memory-utilization 0.9 \ --max-model-len 4096 \ --port 8000服务启动后你就可以用OpenAI的格式来调用它了from openai import OpenAI client OpenAI( base_urlhttp://localhost:8000/v1, api_keytoken-abc123 ) response client.chat.completions.create( model./glm-4v-9b, messages[ { role: user, content: [ {type: text, text: 描述这张图片}, {type: image_url, image_url: {url: data:image/jpeg;base64,...}} ] } ], max_tokens512 ) print(response.choices[0].message.content)这样你就可以轻松地把它集成到Web应用或者其他系统中了。4.3 调整生成参数模型生成回答时有一些参数可以调整让回答更符合你的需求outputs model.generate( **inputs, max_new_tokens512, # 最大生成长度 temperature0.7, # 温度越高越有创意越低越确定 top_p0.9, # 核采样控制多样性 do_sampleTrue, # 开启采样让回答更有变化 repetition_penalty1.1, # 重复惩罚避免重复内容 use_cacheTrue, eos_token_idtokenizer.eos_token_id )temperature建议0.5-1.0之间。写创意内容可以设高一点0.8-1.0回答事实性问题可以设低一点0.2-0.5。top_p通常0.8-0.95之间和temperature配合使用。repetition_penalty如果发现模型老是重复说同样的话可以稍微调高这个值。5. 实际应用让模型帮你做事现在模型跑起来了它能做什么实际的事情呢我举几个例子。5.1 图片内容描述这是最基本的功能但很有用。比如你有一堆产品图片想让AI自动生成描述query 这是一张产品图片请为电商平台写一段吸引人的商品描述突出产品特点和优势。模型会生成类似这样的描述 “这款智能手表采用圆形AMOLED显示屏分辨率高达466×466像素显示效果清晰细腻。表身由航空级铝合金打造重量仅45克佩戴舒适。支持心率监测、血氧检测、睡眠分析等健康功能内置GPS和NFC续航时间可达14天。适合运动爱好者和商务人士日常佩戴。”5.2 图表数据分析如果你有数据图表可以让模型帮你分析query 分析这张销售数据图表指出哪个月份销售额最高整体趋势如何并给出建议。模型会分析图表中的柱状图或折线图给出类似回答 “从图表可以看出7月份销售额达到峰值120万元1月份最低为45万元。整体呈现上升趋势特别是在第二季度增长明显。建议继续保持营销力度同时分析7月份成功因素在其他月份复制该策略。”5.3 文字识别与提取模型能识别图片中的文字这对于处理扫描件、截图很有用query 提取图片中的所有文字内容保持原有格式。5.4 多轮对话GLM-4V-9B支持多轮对话你可以基于同一张图片连续提问# 第一轮 query1 图片里有什么 # 得到回答后基于回答继续问 query2 你刚才说图片里有一只猫它是什么品种的 query3 这只猫大概多大年龄模型会记住之前的对话内容给出连贯的回答。5.5 创意应用除了这些实用功能你还可以玩一些创意应用给图片写故事“根据这张图片写一个300字的小故事。”生成营销文案“为这张产品图片写一段社交媒体文案。”内容审核“检查这张图片是否包含不合适的内容。”教育辅助“解释这张科学示意图中的原理。”6. 常见问题与解决在实际使用中你可能会遇到一些问题。这里整理了几个常见的6.1 报错AttributeError: ChatGLMTokenizer object has no attribute apply_chat_template这个问题通常是因为transformers版本太旧。GLM-4V-9B需要transformers 4.45.0或更高版本。解决升级transformerspip install --upgrade transformers如果升级后还有问题检查一下模型文件夹里是否有tokenizer_config.json文件。没有的话可能需要重新下载模型。6.2 显存溢出OOM如果看到“CUDA out of memory”错误说明显存不够了。解决减小图片尺寸把大图缩小后再传给模型使用量化按照4.1节的方法开启4-bit量化减小max_new_tokens比如从512改成256使用更小的批次如果一次处理多张图片减少同时处理的图片数量6.3 图片识别效果不好如果模型对某些图片识别不准可以尝试检查图片格式确保图片是RGB格式可以用.convert(RGB)转换调整图片大小GLM-4V-9B支持1120×1120分辨率但太大的图片可能需要缩小提供更明确的提示在问题中给出更多上下文信息尝试不同的提问方式有时候换种问法能得到更好的结果6.4 推理速度慢第一次加载模型会比较慢这是正常的。后续的推理速度取决于你的显卡。如果想提升速度使用vLLM框架见4.2节开启flash-attn环境准备时安装的使用更快的GPU调整生成参数减少max_new_tokens7. 总结GLM-4V-9B是一个很实用的视觉语言模型它最大的优势就是“接地气”——不需要昂贵的硬件单张消费级显卡就能跑起来。通过今天的教程你应该已经掌握了环境搭建从零开始准备运行环境模型下载用ModelScope快速获取模型文件基础使用写一个简单的程序让模型分析图片进阶配置应对显存不足、提升推理速度实际应用让模型帮你完成各种任务问题解决遇到常见错误知道怎么处理这个模型特别适合一些需要本地部署的场景比如企业内部应用分析产品图片、处理文档扫描件研究开发快速验证多模态AI的想法个人项目搭建自己的AI助手教育学习理解多模态AI的工作原理它的中文理解能力很强在图表分析、文字识别等方面表现不错。虽然只有90亿参数但在很多任务上能达到甚至超过一些更大模型的效果。如果你在部署过程中遇到其他问题或者有有趣的应用想法欢迎在评论区分享。多模态AI正在快速发展现在正是动手尝试的好时机。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关新闻

GLM-OCR保姆级教程:从conda环境配置到Python API调用完整实操

GLM-OCR保姆级教程:从conda环境配置到Python API调用完整实操

GLM-OCR保姆级教程:从conda环境配置到Python API调用完整实操 你是不是也遇到过这样的烦恼?面对一份扫描的PDF合同,想提取里面的文字和表格,手动录入费时费力,还容易出错。或者,看到一篇学术论文里的复杂公…

2026/7/6 23:01:39 阅读更多 →
人脸检测新标杆MogFace-large:开箱即用,快速体验SOTA模型强大能力

人脸检测新标杆MogFace-large:开箱即用,快速体验SOTA模型强大能力

人脸检测新标杆MogFace-large:开箱即用,快速体验SOTA模型强大能力 1. 引言:告别繁琐配置,一键体验顶级人脸检测 还记得以前部署一个AI模型有多麻烦吗?下载代码、安装依赖、配置环境、处理版本冲突……一套流程下来&a…

2026/5/17 10:40:01 阅读更多 →
UnityLive2DExtractor:自动化资源提取赋能Live2D工作流的效率革命

UnityLive2DExtractor:自动化资源提取赋能Live2D工作流的效率革命

UnityLive2DExtractor:自动化资源提取赋能Live2D工作流的效率革命 【免费下载链接】UnityLive2DExtractor Unity Live2D Cubism 3 Extractor 项目地址: https://gitcode.com/gh_mirrors/un/UnityLive2DExtractor UnityLive2DExtractor是一款专为Unity项目设计…

2026/7/8 1:49:32 阅读更多 →

最新新闻

中国大模型领跑全球调用热潮

中国大模型领跑全球调用热潮

📰 每日AI科技资讯速递 日期:2026年7月7日 | 近24小时热点精选 🤖 一、AI大模型与大模型应用 腾讯正式发布新一代AI大模型混元Hy3 7月6日,腾讯发布混元Hy3大模型,智能水平比肩更大尺寸旗舰模型,已在多个…

2026/7/8 11:28:36 阅读更多 →
STM32G474RE与TPA3138D2高保真音频系统设计指南

STM32G474RE与TPA3138D2高保真音频系统设计指南

1. 音频系统升级方案概述在嵌入式音频系统设计中,TPA3138D2与STM32G474RE的组合堪称黄金搭档。这个方案特别适合需要高保真音频输出的便携式设备、智能家居音响系统和车载音频设备。TPA3138D2作为德州仪器推出的高效D类音频放大器,能够在3.5V至14.4V的宽…

2026/7/8 11:26:31 阅读更多 →
IIM-20670工业级IMU与PIC24EP512GU810的硬件适配与运动跟踪算法

IIM-20670工业级IMU与PIC24EP512GU810的硬件适配与运动跟踪算法

1. IIM-20670运动跟踪模块的核心特性解析 IIM-20670是TDK InvenSense推出的一款工业级6轴惯性测量单元(IMU),集成了3轴加速度计和3轴陀螺仪。这款器件最突出的特点是其卓越的环境适应性——加速度计温度稳定性达到1.7g/C,零偏重复性为1mg,在-…

2026/7/8 11:26:31 阅读更多 →
TPIS1S1385红外传感器与PIC18LF46K42微控制器的智能人体检测方案

TPIS1S1385红外传感器与PIC18LF46K42微控制器的智能人体检测方案

1. 项目背景与核心需求 在智能家居和安防领域,人体存在感应和运动检测技术正经历着从简单触发到精准感知的进化。传统PIR(被动红外)传感器只能检测移动的热源,当人体静止时就会失去响应——这导致在智能照明、安防监控等场景中频繁…

2026/7/8 11:26:31 阅读更多 →
人生宏观无解问题的最小单位是什么?

人生宏观无解问题的最小单位是什么?

第一层:什么叫宏观无解问题? 很多人每天都在思考: 我以后会不会成功?人生到底有没有意义?我是不是选错路了?十年以后会怎样?AI会不会取代我?我到底适合什么?这些问题都有…

2026/7/8 11:24:30 阅读更多 →
如何选择一个稳定可靠的住宅代理IP?

如何选择一个稳定可靠的住宅代理IP?

在跨境电商、社媒运营、数据采集、广告验证等业务中,代理IP已经成为不可或缺的工具。然而,面对市场上众多代理IP服务商,很多人不知道应该如何选择。一、IP质量决定使用体验一个优质的住宅代理应该具备:IP来源真实高匿名性稳定在线…

2026/7/8 11:22:28 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻