当前位置: 首页 > news >正文

GLM-4v-9B快速上手:如何用一张图片让AI生成详细描述?

GLM-4v-9B快速上手:如何用一张图片让AI生成详细描述?

1. 准备工作

1.1 了解GLM-4v-9B模型

GLM-4v-9B是智谱AI于2024年开源的90亿参数视觉-语言多模态模型,它能同时理解文本与图片,支持中英双语多轮对话。在1120×1120高分辨率输入下,该模型在图像描述、视觉问答、图表理解等任务中表现优异。

模型特点:

  • 原生支持1120×1120高分辨率输入
  • 中英文多轮对话能力
  • 单张RTX 4090显卡即可运行
  • 在OCR与图表理解任务中表现突出

1.2 环境准备

要使用GLM-4v-9B模型,你需要准备:

  • Python 3.8或更高版本
  • PyTorch 2.0或更高版本
  • transformers库(版本≥4.44.0)
  • 一张至少24GB显存的GPU(如RTX 4090)

安装依赖:

pip install torch transformers pillow

2. 快速部署与使用

2.1 加载模型

首先,我们需要加载GLM-4v-9B模型和对应的tokenizer:

import torch from PIL import Image from transformers import AutoModelForCausalLM, AutoTokenizer device = "cuda" if torch.cuda.is_available() else "cpu" # 加载tokenizer和模型 tokenizer = AutoTokenizer.from_pretrained("THUDM/glm-4v-9b", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( "THUDM/glm-4v-9b", torch_dtype=torch.bfloat16, low_cpu_mem_usage=True, trust_remote_code=True ).to(device).eval()

2.2 准备图片

准备一张你想要让AI描述的图片,可以是:

  • 自然风景
  • 人物照片
  • 图表或数据可视化
  • 商品图片
  • 手绘草图
# 加载图片 image_path = "your_image.jpg" # 替换为你的图片路径 image = Image.open(image_path).convert('RGB')

3. 生成图片描述

3.1 基本描述生成

最简单的使用方式是让AI直接描述图片内容:

query = '描述这张图片' inputs = tokenizer.apply_chat_template( [{"role": "user", "image": image, "content": query}], add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True ).to(device) gen_kwargs = {"max_length": 2500, "do_sample": True, "top_k": 1} with torch.no_grad(): outputs = model.generate(**inputs, **gen_kwargs) outputs = outputs[:, inputs['input_ids'].shape[1]:] print(tokenizer.decode(outputs[0]))

3.2 进阶使用技巧

3.2.1 特定角度描述

你可以引导AI从特定角度描述图片:

queries = [ "详细描述这张图片中的场景", "分析这张图片中的色彩构成", "描述图片中人物的表情和动作", "这张图片传达了什么样的情感", "用诗意的语言描述这张图片" ] for query in queries: inputs = tokenizer.apply_chat_template( [{"role": "user", "image": image, "content": query}], add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True ).to(device) with torch.no_grad(): outputs = model.generate(**inputs, max_length=1000) print(f"问题: {query}") print(f"回答: {tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:])}\n")
3.2.2 多轮对话

GLM-4v-9B支持基于图片的多轮对话:

# 第一轮:基本描述 conversation = [{"role": "user", "image": image, "content": "描述这张图片"}] inputs = tokenizer.apply_chat_template( conversation, add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True ).to(device) with torch.no_grad(): outputs = model.generate(**inputs, max_length=1000) response = tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:]) print(f"AI: {response}") conversation.append({"role": "assistant", "content": response}) # 第二轮:追问细节 follow_up = "图片左侧的那个物体是什么?" conversation.append({"role": "user", "content": follow_up}) inputs = tokenizer.apply_chat_template( conversation, add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True ).to(device) with torch.no_grad(): outputs = model.generate(**inputs, max_length=1000) print(f"问题: {follow_up}") print(f"回答: {tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:])}")

4. 实际应用案例

4.1 电商商品描述生成

product_image = Image.open("product.jpg").convert('RGB') queries = [ "为这个电商商品生成详细的描述", "列出这个产品的三个主要卖点", "为这个商品写一段吸引人的广告文案" ] for query in queries: inputs = tokenizer.apply_chat_template( [{"role": "user", "image": product_image, "content": query}], add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True ).to(device) with torch.no_grad(): outputs = model.generate(**inputs, max_length=1000) print(f"问题: {query}") print(f"回答: {tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:])}\n")

4.2 图表数据分析

chart_image = Image.open("chart.png").convert('RGB') queries = [ "描述这张图表展示的主要趋势", "提取图表中的关键数据点", "根据这张图表写一段分析报告" ] for query in queries: inputs = tokenizer.apply_chat_template( [{"role": "user", "image": chart_image, "content": query}], add_generation_prompt=True, tokenize=True, return_tensors="pt", return_dict=True ).to(device) with torch.no_grad(): outputs = model.generate(**inputs, max_length=1500) print(f"问题: {query}") print(f"回答: {tokenizer.decode(outputs[0][inputs['input_ids'].shape[1]:])}\n")

5. 总结

GLM-4v-9B是一个强大的多模态模型,能够通过一张图片生成详细、准确的描述。通过本教程,你已经学会了:

  1. 如何快速部署GLM-4v-9B模型
  2. 使用图片生成基本描述的方法
  3. 通过特定问题引导AI生成更专业的描述
  4. 实现基于图片的多轮对话
  5. 在实际场景中的应用案例

这个模型特别适合以下场景:

  • 电商商品自动描述生成
  • 社交媒体图片内容分析
  • 图表数据自动解读
  • 无障碍技术中的图片描述
  • 内容创作辅助工具

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

http://www.jsqmd.com/news/500921/

相关文章:

  • VPS BBR 开启教程
  • YOLOv8鹰眼版实战教程:自定义检测阈值,满足不同场景需求
  • Mapbox地图中文设置全攻略:从JavaScript到Vue的实战指南
  • 深入解析频谱仪设计:零中频与超外差架构的实战对比
  • Clawdbot企业微信入口配置教程:3步完成,AI助手24小时在线
  • Qwen3-1.7B新手入门:3步搞定Jupyter部署,开启你的第一个AI对话
  • FancyZones:如何用3个步骤告别Windows窗口管理混乱?
  • 保姆级教程:Qwen3-ASR-1.7B语音识别镜像Docker一键部署,小白也能轻松搞定
  • translategemma-12b-it性能优化:3个技巧提升翻译响应速度
  • EMC VNX存储关机避坑指南:从Data Mover到SP的完整流程解析
  • 从理论到实践:深入剖析PointNet/PointNet++的架构演进与核心代码实现
  • 智能招聘系统升级:RexUniNLU在简历分析中的实践
  • 创维LB2204刷机固件合集:双系统镜像+单系统版本+全套刷机工具
  • CRNN OCR文字识别效果实测:中英文混合识别准确率展示
  • FPGA图像处理:3x3卷积核并行生成的设计与实现
  • 零拷贝API vs 通用API:RKNN上YOLOv5性能对比实测与选型建议
  • VGGT:以交替注意力重塑3D视觉,单网络统一感知的工程实践
  • MySQL中日期和时间戳的转换:字符到DATE和TIMESTAMP的相互转换
  • Cosmos-Reason1-7B部署案例:中小企业低成本部署物理AI推理服务实操
  • Git小白必看:5分钟搞定Gitee+Git多人协作开发(附国内高速下载链接)
  • 2026年武汉惯导测试与天线测试设备哪家好?转台、扫描架、运动平台供应商选择指南 - 海棠依旧大
  • Qwen-Image-Lightning多场景应用:支持批量图生图、风格迁移、分辨率增强
  • 从报警点到雨量柱:Cesium entities在智慧城市中的8种高级用法
  • Marp入门指南:从零到一,用Markdown在VSCode中构建你的第一份幻灯片
  • 2026年全国高压电机品牌TOP排行榜深度测评:谁才是“原厂血脉”的工业动力首选? - 深度智识库
  • 告别环境配置难题:Stable Diffusion 3.5 FP8镜像快速部署全攻略
  • Python入门:用Lite-Avatar制作第一个数字人应用
  • 一天一个Python库:propcache - 简化属性缓存,提升性能
  • 用于 Elasticsearch 的 Gemini CLI 扩展,包含工具和技能
  • 三星 Galaxy Z TriFold 停产:高端折叠屏的短暂谢幕