本地部署Qwen2.5-VL-7B-Instruct模型
本地部署Qwen2.5-VL-7B-Instruct模型
本地部署Permalink
**创建环境**
conda create -n qwenvl python=3.11 -y# 报错:
Solving environment: failedPackagesNotFoundError: The following packages are not available from current channels:# 处理:
conda config --append channels conda-forge# 激活环境 (注意这里的语法)
conda activate qwenvlyum -y install git
安装依赖
pip install vllm
报错:
error: subprocess-exited-with-error× Preparing metadata (pyproject.toml) did not run successfully.│ exit code: 1╰─> [6 lines of output]Cargo, the Rust package manager, is not installed or is not on PATH.This package requires Rust and Cargo to compile extensions. Install it throughthe system's package manager or via https://rustup.rs/Checking for Rust toolchain....[end of output]note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed× Encountered error while generating package metadata.
╰─> See above for output.note: This is an issue with the package mentioned above, not pip.
hint: See above for details.处理:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
或者使用如下方法
# 安装
(qwenvl) [root@localhost qwenvl]# rustc --version
bash: rustc: command not found...
Install package 'rust' to provide command 'rustc'? [N/y] y* Waiting in queue...
The following packages have to be installed:rust-1.66.1-1.el9.x86_64 The Rust Programming Languagerust-std-static-1.66.1-1.el9.x86_64 Standard library for Rust
Proceed with changes? [N/y] y* Waiting in queue... * Waiting for authentication... * Waiting in queue... * Requesting data... * Testing changes... * Installing packages...
rustc 1.66.1 (90743e729 2023-01-10) (Red Hat 1.66.1-1.el9)# 安装
(qwenvl) [root@localhost qwenvl]# cargo --version
bash: cargo: command not found...
Install package 'cargo' to provide command 'cargo'? [N/y] y* Waiting in queue... * Loading list of packages....
The following packages have to be installed:cargo-1.66.1-1.el9.x86_64 Rust's package manager and build tool
Proceed with changes? [N/y] y* Waiting in queue... * Waiting for authentication... * Waiting in queue... * Requesting data... * Testing changes... * Installing packages...
cargo 1.66.1
继续安装
pip install vllm
pip install git+https://github.com/huggingface/transformers accelerate# 如果 transformers 拉取失败,手动下载代码并安装
访问 https://github.com/huggingface/transformers
点击 Code > Download ZIP,下载 ZIP 文件。
解压 ZIP 文件并进入目录:unzip transformers-main.zip
cd transformers-main
本地安装:
pip install .pip install torch
pip install flash-attn --no-build-isolation
pip install "huggingface_hub[hf_transfer]"
pip install modelscope
pip install qwen_vl_utils
拉取模型
cd /data/
mkdir -p qwen2.5/Qwen2.5-VL-7B-Instruct #创建模型文件夹
cd qwen2.5/ #进到数据盘目录#下载模型到指定文件夹
modelscope download --model Qwen/Qwen2.5-VL-7B-Instruct --local_dir ./Qwen2.5-VL-7B-Instruct # local_dir后是下载到指定文件夹
测试脚本
vim vl_demo.pyfrom transformers import Qwen2_5_VLForConditionalGeneration, AutoProcessor
from qwen_vl_utils import process_vision_info
import torch# 清空CUDA缓存,以释放内存
torch.cuda.empty_cache()# 指定使用第3块显卡 (如果显卡可用)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")# 加载模型到指定的设备
# 指定模型的位置
model = Qwen2_5_VLForConditionalGeneration.from_pretrained("/data/qwen2.5/Qwen2.5-VL-7B-Instruct", torch_dtype="auto" # 自动选择精度
)# 将模型迁移到指定设备(如GPU或CPU)
model.to(device)# 加载处理器,用于处理输入的图像和文本
processor = AutoProcessor.from_pretrained("/data/qwen2.5/Qwen2.5-VL-7B-Instruct")# 准备消息和输入内容
messages = [{"role": "user", # 用户角色"content": [{"type": "image", # 图像类型# "image": "/opt/src/vl_demo1/20250219101931.jpg", # 图像路径(本地路径)"image": "https://qianwen-res.oss-cn-beijing.aliyuncs.com/Qwen-VL/assets/demo.jpeg", # 图像路径(本地路径)"max_pixels": 512 * 512, # 图像最大尺寸限制},# 这段代码注释掉了文本输入,如果需要可以打开#{"type": "text", "text": "Describe this image."},# {"type": "text", "text": "请认真阅读图像内容后,以HTML结构化输出。"}, # 文本输入,要求生成HTML格式的描述{"type": "text", "text": "图片表达的是什么意思,以中文结果输出。"}, # 文本输入,要求生成HTML格式的描述],}
]# 准备输入文本,用于推理
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True # 准备聊天模板并添加生成提示
)# 处理图像和视频输入
image_inputs, video_inputs = process_vision_info(messages)# 使用处理器准备所有输入
inputs = processor(text=[text],images=image_inputs,videos=video_inputs,padding=True,return_tensors="pt", # 将输入转换为 PyTorch 张量
)# 将所有输入迁移到与模型相同的设备
inputs = inputs.to(device)# 进行推理:生成模型的输出
generated_ids = model.generate(**inputs, max_new_tokens=4096) # 最大生成 4096 个新token
generated_ids_trimmed = [out_ids[len(in_ids):] for in_ids, out_ids in zip(inputs.input_ids, generated_ids)
]# 解码生成的输出并打印
output_text = processor.batch_decode(generated_ids_trimmed, skip_special_tokens=True, clean_up_tokenization_spaces=False
)
print(output_text) # 输出结果
输出结果
解析的原图如下
如有其他报错 以下查询,有部分答案
https://github.com/QwenLM/Qwen2.5-VL/issues?q=memory&page=2
相关文章:

本地部署Qwen2.5-VL-7B-Instruct模型
本地部署Qwen2.5-VL-7B-Instruct模型 本地部署Permalink **创建环境** conda create -n qwenvl python3.11 -y# 报错: Solving environment: failedPackagesNotFoundError: The following packages are not available from current channels:# 处理: c…...
【前端】简单原生实例合集html,css,js
长期补充,建议关注收藏点赞。 目录 a标签设置不一样的花样(图片但不用img)侧边固定box分栏input各种类型iframe表单拖拽 a标签设置不一样的花样(图片但不用img) a标签里面不用嵌套img,直接设置为其bg-img即可 <!DOCTYPE html…...
【Spring】配置文件的使用
在Spring框架中,application.properties(或application.yml)文件用于配置Spring应用程序的各种属性。我们可以通过多种方式来使用这些配置,包括使用Value和ConfigurationProperties注解来绑定配置到Java对象。 下面是对不同配置类…...

MOM成功实施分享(七)电力电容制造MOM工艺分析与解决方案(第一部分)
声明:文章仅用于交流学习,不用于商业项目实施,图片来源于网络,如有侵犯权利,请联系作者及时删除。 本方案旨在对电力电容(PEC和PQM型号)制造工艺深度分析,结合管理要求设计MOM相关功…...

计算机毕业设计SpringBoot+Vue.js航空机票预定系统(源码+文档+PPT+讲解)
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...

Python 爬取唐诗宋词三百首
你可以使用 requests 和 BeautifulSoup 来爬取《唐诗三百首》和《宋词三百首》的数据。以下是一个基本的 Python 爬虫示例,它从 中华诗词网 或类似的网站获取数据并保存为 JSON 文件。 import requests from bs4 import BeautifulSoup import json import time# 爬取…...

【二.提示词工程与实战应用篇】【3.Prompt调优:让AI更懂你的需求】
最近老张在朋友圈秀出用AI生成的国风水墨画,隔壁王姐用AI写了份惊艳全场的年终总结,就连楼下小卖部老板都在用AI生成营销文案。你看着自己跟AI对话时满屏的"我不太明白您的意思",是不是怀疑自己买了台假电脑?别慌,这可能是你的打开方式不对。今天咱们就聊聊这个…...
商城源码的框架
商城源码的框架通常是基于某种Web开发框架或者电子商务平台来构建的。以下是一些常见的商城源码框架: WooCommerce:基于WordPress的电子商务插件,适用于小型到中型的在线商店。 Magento:一个功能强大和灵活的开源电子商务平台&am…...

WordPress如何防Webshell、防篡改、防劫持,提升WP漏洞防护能力
WordPress是一款世界知名的CMS系统,不仅可以创建博客网站,还可以用于建设企业网站、下载网站、商城等各类网站。功能非常强大、结构科学合理,深受广大用户喜欢。 虽然WordPress非常优秀,但是为了保障网站安全,我们还是…...

Android Flow 示例
在Android开发的世界里,处理异步数据流一直是一个挑战。随着Kotlin的流行,Flow作为Kotlin协程库的一部分,为开发者提供了一种全新的方式来处理这些问题。今天,我将深入探讨Flow的设计理念,并通过具体的例子展示如何在实…...
刚安装docker并启动docker服务: systemctl restart docker报错解决
root:/home/lzw# sudo systemctl restart docker Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xeu docker.service" for details. 1、问题描述 启动doc…...
xss笔记与打靶(更新中)
这个文章好 https://blog.csdn.net/huangyongkang666/article/details/123624164?fromshareblogdetail&sharetypeblogdetail&sharerId123624164&sharereferPC&sharesource2401_88818565&sharefromfrom_link 什么是xss XSS(跨站脚本攻击&…...

游戏引擎学习第133天
仓库:https://gitee.com/mrxiao_com/2d_game_3 回顾并设定今天的主题 今天的任务是进一步优化背景资源的流式加载,尤其是在内存管理方面。昨天,我们实现了资源流式加载,让游戏在加载时可以动态地加载背景,而不是一开始就把所有资…...

【鸿蒙操作系统】- 1:实习阶段的一些总结
本文目录 1. 序2.鸿蒙与欧拉的概念微内核LiteOS鸿蒙微内核POSIX标准 3.实习干了些什么身份鉴别访问控制恶意代码防范安全审计入侵防范性能压测检查系统版本网络测试常见的linux测试命令 1. 序 之前在某国企实习的时候,有幸参与了鸿蒙系统、鸿蒙欧拉的项目ÿ…...

Qt基础入门-详解
前言 qt之路正式开启 💓 个人主页:普通young man-CSDN博客 ⏩ 文章专栏:C_普通young man的博客-CSDN博客 ⏩ 本人giee: 普通小青年 (pu-tong-young-man) - Gitee.com 若有问题 评论区见📝 🎉欢迎大家点赞ὄ…...
【前端】HTML 备忘清单(超级详细!)
文章目录 入门hello.html注释 Comment段落 ParagraphHTML 链接Image 标签文本格式标签标题Section Divisions内部框架HTML 中的 JavaScriptHTML 中的 CSS HTML5 标签页面标题导航HTML5 TagsHTML5 VideoHTML5 AudioHTML5 RubyHTML5 kdiHTML5 progressHTML5 mark HTML 表格Table …...
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点
版图自动化连接算法开发 00004 ------ 给定一个点,添加一个中间点实现 Manhattan 方式连接两个给定的坐标点 引言正文引言 必读文章 ------ 版图自动化连接算法开发 00001 ------ 直接连接两个给定的坐标点。 此处,我们对给定点的坐标进行一下限制,因为是只添加一个点,因…...
C# Enumerable类 之 数据筛选
总目录 前言 在 C# 中,System.Linq.Enumerable 类是 LINQ(Language Integrated Query)的核心组成部分,它提供了一系列静态方法,用于操作实现了 IEnumerable 接口的集合。通过这些方法,我们可以轻松地对集合…...

Grafana服务安装并启动
Grafana服务安装并启动 1、介绍2、下载Grafana3、解压缩文件4、启动Grafana服务5、增加数据源,填写Prometheus访问地址6、增加图表 1、介绍 Grafana是一个开源的可视化系统监控和警报工具包。 2、下载Grafana 介绍:Grafana是一个开源的可视化系统监控和警报工具包…...

蓝桥杯web第三天
展开扇子题目, #box:hover #item1 { transform:rotate(-60deg); } 当悬浮在父盒子,子元素旋转 webkit display: -webkit-box:将元素设置为弹性伸缩盒子模型。-webkit-box-orient: vertical:设置伸缩盒子的子元素排列方…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...