GLM-4v-9b实战教程:构建教育AI助教——试卷图片自动批改系统

GLM-4v-9b实战教程:构建教育AI助教——试卷图片自动批改系统

#
GLM

4V

9B部署
实战
教程
4
bit量化+Streamlit一键启动,消费级显卡流畅运行 > 本文手把手教你如何在消费级显卡上部署
GLM

4V

9B
多模态
大模型,无需高端设备,轻松实现
图片理解和对话功能。 1.
教程概述 1.1 你能学到什么 通过本
教程,你将掌握:
如何在普通显卡上运行
90亿参数的
多模态
大模型
使用
4
bit量化技术大幅降低显存需求的方法
搭建一个交互式的
图片对话Web界面
解决常见的环境兼容性问题 1.2 前置要求 不需要高端设备,只需要:
显卡:RTX 3060 12GB或同等规格以上(8GB显存勉强可运行)
内存:16GB以上

系统:Linux或Windows(WSL2)
基础Python知识 1.3 项目亮点 这个部署方案经过深度优化,解决了官方示例中的多个痛点:
显存占用降低60%,普通显卡也能流畅运行

自动处理环境兼容性问题,避免常见报错
修复了模型理解错误的问题,对话更准确
提供了友好的Web界面,操作简单直观 2. 环境准备与快速部署 2.1 一键环境搭建 打开终端,执行以下命令快速创建环境: “`bash # 创建虚拟环境 python
m venv
glm
4v_env source
glm
4v_env/bin/activate # Linux/Mac # 或
glm
4v_envScriptsactivate # Windows # 安装核心依赖 pip install torch torchvision torchaudio

index
url https
://download.pytorch.org/whl/cu118 pip install streamlit transformers accelerate bitsandbytes “` 2.2 模型下载与配置 创建项目目录并下载必要文件: “`bash mkdir
glm
4v
project cd
glm
4v
project # 下载模型配置文件(具体下载方式根据实际情况调整) # 这里假设你已经获得了所需的模型文件和配置 “` 2.3 启动Streamlit应用 创建主程序文件`
app.py`: “`python import streamlit as st import torch from transformers import AutoModel, AutoTokenizer # 页面配置 st.set_page_config(page_title=”
GLM

4V

9B聊天助手”, layout=”wide”) st.title(“🎨
GLM

4V

9B
多模态聊天助手”) “` 3. 核心功能实现 3.1 智能模型加载 这是本项目的核心技术,解决了环境兼容性问题: “`python def load_model_optimized()
: “”” 优化后的模型加载函数,
自动处理数据类型兼容问题 “”” #
4
bit量化配置 quantization_config = BitsAndBytesConfig( load_in_
4bit=True, bnb_
4bit_quant_type=”nf
4“, bnb_
4bit_use_double_quant=True, ) # 加载模型 model = AutoModel.from_pretr
ained( “THUDM/
glm

4v

9b”, quantization_config=quantization_config, trust_remote_code=True, device_map=”auto” ) #
自动检测视觉层数据类型(解决兼容性问题的关键) try
: visual_dtype = next(model.transformer.vision.parameters()).dtype except
: visual_dtype = torch.float16 return model, visual_dtype “` 3.2
图片处理优化 正确处理
图片输入,避免模型理解错误: “`python def process_image(image, visual_dtype, device)
: “”” 处理上传的
图片,确保数据类型兼容 “”” # 转换
图片为模型可接受的格式 image_tensor = transform(image).unsqueeze(0) # 关键步骤:确保数据类型匹配 image_tensor = image_tensor.to(device=device, dtype=visual_dtype) return image_tensor “` 3.3 对话逻辑完善 修复了官方Demo中的prompt顺序问题: “`python def build_correct_prompt(user_input, image_tokens, history)
: “””
构建正确的prompt顺序:用户输入
>
图片
> 文本 避免模型把
图片误认为是
系统背景 “”” # 正确的拼接顺序 full_prompt = f”用户
: {user_input}
图片
: {image_tokens} 助手
:” # 添加上下文历史 if history
: context = ” “.join([f”{role}
: {content}” for role, content in history]) full_prompt = context + ” ” + full_prompt return full_prompt “`
4. 完整应用搭建
4.1 Streamlit界面设计 创建用户友好的聊天界面: “`python # 初始化session状态 if “messages” not in st.session_state
: st.session_state.messages = [] if “model_loaded” not in st.session_state
: st.session_state.model_loaded = False # 侧边栏设置 with st.sidebar
: st.header(“📷
图片上传”) uploaded_image = st.file_uploader(“选择
图片文件”, type=[“jpg”, “png”, “jpeg”]) if uploaded_image is not None
: st.image(uploaded_image, caption=”上传的
图片“, use_column_width=True) st.header(“⚙️ 设置”) max_length = st.slider(“最大生成长度”, 50, 500, 200) # 主聊天区域 for message in st.session_state.messages
: with st.chat_message(message[“role”])
: st.markdown(message[“content”]) “`
4.2 聊天功能实现 “`python # 处理用户输入 if prompt
:= st.chat_input(“请输入你的问题…”)
: if not uploaded_image
: st.warning(“请先上传
图片“) st.stop() # 添加用户消息到历史 st.session_state.messages.
append({“role”
: “user”, “content”
: prompt}) # 显示用户消息 with st.chat_message(“user”)
: st.markdown(prompt) # 生成回复 with st.chat_message(“assistant”)
: with st.spinner(“思考中…”)
: # 加载模型(如果尚未加载) if not st.session_state.model_loaded
: model, visual_dtype = load_model_optimized() st.session_state.model = model st.session_state.visual_dtype = visual_dtype st智谱 AI GLM 教程.session_state.model_loaded = True # 处理
图片和生成回复 response = generate_response( prompt, uploaded_image, st.session_state.model, st.session_state.visual_dtype ) st.markdown(response) # 添加助手回复到历史 st.session_state.messages.
append({“role”
: “assistant”, “content”
: response}) “`
4.3 启动应用 最后添加启动代码: “`python if __name__ == “__m
ain__”
: # 在本地启动Streamlit应用 # 运行命令:streamlit run
app.py

server.port=8080 pass “` 5. 快速使用指南 5.1 启动应用 在终端中运行以下命令: “`bash streamlit run
app.py

server.port=8080 “` 然后在浏览器中访问:`http
://localhost
:8080` 5.2 使用步骤 1. 上传
图片:在左侧边栏选择或拖拽
图片文件 2. 提问:在底部输入框输入你的问题 3. 获取答案:模型会分析
图片并回答你的问题 5.3 示例问题 你可以尝试问这些问题:
“描述一下
图片中的场景”

图片里有哪些物体?”
“这张
图片是什么风格的?”
“提取
图片中的所有文字”

图片中的人物在
什么?” 6. 常见问题解决 6.1 显存不足问题 如果遇到显存不足,可以尝试: “`python # 在模型加载时添加更激进的优化 quantization_config = BitsAndBytesConfig( load_in_
4bit=True, bnb_
4bit_quant_type=”nf
4“, bnb_
4bit_use_double_quant=True, bnb_
4bit_compute_dtype=torch.float16 # 使用float16计算进一步节省显存 ) “` 6.2 响应速度优化 如果响应速度较慢,可以启用缓存: “`python @st.cache_resource def load_cached_model()
: “””缓存模型加载结果,避免重复加载””” return load_model_optimized() “` 6.3 其他常见错误
数据类型错误:确保使用
自动检测的visual_dtype

图片格式问题:确保上传的是JPG或PNG格式
内存不足:关闭其他占用内存的应用程序 7. 总结 通过本
教程,你已经成功部署了一个优化版的
GLM

4V

9B
多模态模型。这个方案的主要优势在于: 核心价值:
🚀 在消费级显卡上流畅运行
90亿参数模型
💾
4
bit量化技术大幅降低显存需求
🔧
自动解决环境兼容性问题
🎨 友好的Web界面,操作简单 技术亮点:
智能数据类型检测,避免环境冲突
正确的prompt构造,提升对话准确性
完整的错误处理机制,增强稳定性 实用建议:
首次运行需要下载模型文件,请确保网络通畅
建议使用RTX 3060 12GB或更高规格显卡
复杂
图片处理可能需要更多时间,请耐心等待 现在你可以开始探索
多模态
AI的强大能力了,尝试上传各种
图片并提出问题,体验
AI如何理解和分析视觉内容!


> 获取更多
AI镜像 > > 想探索更多
AI镜像和应用场景?访问 [CSDN星图镜像广场](https
://
ai.csdn.net/?utm_source=mirror_blog_end),提供丰富的预置镜像,覆盖
大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/266832.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月12日 下午6:37
下一篇 2026年3月12日 下午6:37


相关推荐

关注全栈程序员社区公众号