Qwen3.5-35B-A3B-AWQ-4bit实战教程:结合LangChain构建带记忆的图文对话Agent
·
Qwen3.5-35B-A3B-AWQ-4bit实战教程:结合LangChain构建带记忆的图文对话Agent
1. 模型介绍与核心能力
Qwen3.5-35B-A3B-AWQ-4bit是一个经过量化的多模态大模型,专门针对视觉内容理解进行了优化。这个模型最大的特点是能够在保持较高精度的同时,显著降低硬件资源需求,让普通开发者也能轻松部署使用。
1.1 核心功能特点
- 图片理解:可以准确识别图片中的物体、场景、文字等内容
- 图文问答:能够根据图片内容回答各种相关问题
- 视觉描述:可以生成对图片内容的详细文字描述
- 多轮对话:支持围绕同一张图片进行连续提问和回答
1.2 技术优势
| 特性 | 说明 | 实际价值 |
|---|---|---|
| 4bit量化 | 模型体积和显存占用大幅降低 | 双卡24GB即可运行 |
| 多模态支持 | 同时处理图像和文本输入 | 实现真正的图文交互 |
| 中文优化 | 针对中文场景特别优化 | 中文问答效果更好 |
| 高效推理 | 采用vLLM加速框架 | 响应速度更快 |
2. 环境准备与快速部署
2.1 硬件要求
- GPU:至少2张24GB显存的显卡(如RTX 3090)
- 内存:建议64GB以上
- 存储:至少50GB可用空间
2.2 部署步骤
-
获取镜像:
docker pull csdn-mirror/qwen35-awq:latest -
启动容器:
docker run -it --gpus all -p 7860:7860 csdn-mirror/qwen35-awq:latest -
访问服务:
- 直接访问:
http://服务器IP:7860 - 或通过SSH隧道:
然后本地访问:ssh -L 7860:localhost:7860 你的用户名@服务器地址http://localhost:7860
- 直接访问:
3. 基础图文对话功能体验
3.1 单轮图文问答
- 上传一张图片(支持jpg/png格式)
- 在输入框中输入你的问题
- 点击"发送"按钮
- 等待模型返回回答
示例问题:
- "图片中有什么?"
- "图片中的文字是什么?"
- "这张图片是在什么场景下拍摄的?"
3.2 多轮对话技巧
- 先上传一张图片
- 问第一个问题(如:"描述这张图片")
- 基于回答继续提问(如:"图片中的人穿着什么颜色的衣服?")
- 可以连续追问5-10轮相关问题
提示:更换图片后,建议先问"这张图片中有什么?"重置对话上下文。
4. 结合LangChain构建带记忆的Agent
4.1 LangChain集成方案
from langchain.agents import AgentExecutor
from langchain_core.tools import Tool
from qwen_agent import QwenVisualAgent
# 初始化Qwen视觉Agent
qwen_agent = QwenVisualAgent(
model_path="Qwen3.5-35B-A3B-AWQ-4bit",
tensor_parallel_size=2
)
# 定义工具集
tools = [
Tool(
name="image_qa",
func=qwen_agent.answer,
description="回答关于图片的问题"
)
]
# 创建带记忆的Agent
agent = AgentExecutor.from_agent_and_tools(
agent=qwen_agent,
tools=tools,
memory=ConversationBufferMemory(),
verbose=True
)
4.2 实现带记忆的多轮对话
# 第一轮对话
response = agent.run({
"input": "请描述这张图片",
"image": "path/to/image.jpg"
})
# 第二轮对话(自动记住上一轮内容)
response = agent.run({
"input": "图片中有几个人?",
# 不需要重复传图
})
4.3 高级功能实现
-
长期记忆存储:
from langchain.memory import MongoDBChatMessageHistory memory = ConversationBufferMemory( chat_memory=MongoDBChatMessageHistory( connection_string="mongodb://localhost:27017", session_id="user123" ) ) -
多文档问答集成:
# 可以结合文本检索增强回答准确性 from langchain_community.vectorstores import FAISS from langchain_community.embeddings import HuggingFaceEmbeddings vectorstore = FAISS.load_local("faiss_index", HuggingFaceEmbeddings()) qwen_agent.retriever = vectorstore.as_retriever()
5. 性能优化与实用技巧
5.1 推理加速方法
-
启用TensorRT:
python export_engine.py --model Qwen3.5-35B-A3B-AWQ-4bit --use_tensorrt -
调整并行参数:
qwen_agent = QwenVisualAgent( tensor_parallel_size=2, # 根据GPU数量调整 max_batch_size=4 # 根据显存调整 )
5.2 使用建议
- 图片预处理:
- 保持图片清晰(建议分辨率不低于512x512)
- 复杂图片可以先进行裁剪或标注
- 提问技巧:
- 先问整体再问细节
- 复杂问题拆分成多个简单问题
- 避免模糊或主观性太强的问题
6. 常见问题解决方案
6.1 部署问题
问题:服务启动失败,日志显示OOM错误
解决:
- 检查
tensor-parallel-size是否与GPU数量匹配 - 尝试减小
max_batch_size参数 - 确保没有其他进程占用大量显存
6.2 使用问题
问题:回答不准确或不符合预期
解决:
- 检查图片是否清晰可辨
- 尝试用更明确的语言提问
- 对于专业领域问题,可以先提供一些背景信息
问题:响应速度慢
解决:
- 缩小图片尺寸(保持长边在1024像素以内)
- 避免一次问太复杂的问题
- 首次请求会有预热时间,后续会变快
7. 总结与进阶方向
通过本教程,你已经学会了如何部署Qwen3.5-35B-A3B-AWQ-4bit模型,并利用LangChain构建带记忆能力的图文对话Agent。这种技术可以应用于多个场景:
- 智能客服:自动回答用户关于产品图片的问题
- 教育辅助:帮助学生理解教材中的图表和插图
- 内容审核:自动识别图片中的违规内容
- 电商导购:根据商品图片回答消费者疑问
7.1 进阶学习建议
- 模型微调:在自己的数据集上微调模型,提升特定领域的表现
- 多模态RAG:结合检索增强生成技术,整合外部知识库
- 分布式部署:学习如何将服务部署到多台服务器,提高并发能力
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。
更多推荐


所有评论(0)