通义千问本地化部署不调用GPU只调用CPU的检查方法

文章讲述了作者在部署本地版通义千问时遇到的问题,由于默认安装的PyTorch未识别到CUDA,通过安装特定版本的CUDA(cu118)并更新torch、torchvision和torchaudio包,成功解决了CPU模式切换到GPU模式的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天部署本地版通义千问的时候遇到一个问题。
启动他的cli_demo.py调用的一直都是CPU模式的。
检查cuda已经正确安装,后面发现是torch即PyTorch的安装问题。

我安装torch的时候,用的是默认指令,没有增加别的参数。

检测一下,输出False即是错误的。

>>> import torch
>>> torch.cuda.is_available()
# False

根据网上说的,可以在网上下载cuda118的版本,cuda可以向下兼容
在这里插入图片描述

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118

具体请看
https://pytorch.org/get-started/locally/

安装成功后,pip list查看torch的版本后面多了个cu118
在这里插入图片描述
再试一下

>>> import torch
>>> torch.cuda.is_available()
# True
### 使用 Python 调用通义 API 实现本地图像识别 为了实现本地的图像识别功能,可以利用通义的相关工具包以及其支持的多模态能力。以下是具体方法: #### 1. 安装依赖库 在开始前,需确保已安装所需的 Python 库。根据描述[^2],需要安装以下库: ```bash pip install modelscope transformers sentencepiece accelerate datasets peft swanlab qwen-vl-utils pandas ``` 这些库提供了模型加载、数据处理和推理等功能。 --- #### 2. 准备硬件与软件环境 - **硬件需求**: 至少一张 NVIDIA 显卡(如 A100、3090 或 4080),显存建议大于等于 20GB。 - **软件需求**: 确保 Python 版本 >= 3.8,并配置好 PyTorch 和 CUDA 环境。 如果未安装 GPU 支持版本的 PyTorch,则可以通过以下命令安装: ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 ``` --- #### 3. 加载预训练模型 使用 `transformers` 提供的功能来加载通义的视觉语言模型 Qwen2-VL-2B。代码如下: ```python from transformers import AutoProcessor, AutoModelForVisionQA # 初始化处理器和模型 processor = AutoProcessor.from_pretrained("Qwen/Qwen2-VL-2B") # 处理器用于图像和文本输入 model = AutoModelForVisionQA.from_pretrained("Qwen/Qwen2-VL-2B").to("cuda") # 将模型加载到 GPU 上运行 ``` 上述代码中的 `AutoProcessor` 是用来统一处理图像和文本输入的关键组件,而 `AutoModelForVisionQA` 则负责执行具体的预测任务。 --- #### 4. 图像识别的具体流程 对于给定的一张图片文件,可通过以下方式完成识别并获取结果: ```python import requests from PIL import Image def load_image(image_path): """加载本地或远程图片""" if image_path.startswith("http"): response = requests.get(image_path) img = Image.open(BytesIO(response.content)) else: img = Image.open(image_path) return img.convert("RGB") image_path = "path/to/local/image.jpg" # 替换为实际路径 question = "What is the content of this picture?" # 可自定义题 # 加载图片 img = load_image(image_path) # 预处理输入 inputs = processor(img, question, return_tensors="pt").to("cuda") # 执行推理 outputs = model.generate(**inputs) result = processor.decode(outputs[0], skip_special_tokens=True) print(f"Image Recognition Result: {result}") ``` 此脚本实现了从加载图片到生成最终识别结果的过程。其中,`load_image()` 方法既可以读取本地文件也可以下载网络资源;`processor.decode()` 解码输出序列以获得可解释的结果字符串。 --- #### 5. 微调与优化(可选) 如果有特定领域的需求,还可以基于自己的标注数据集对模型进行进一步微调。这通常涉及以下几个方面: - 数据收集与清洗; - 构建适合目标任务的数据管道; - 设置超参数并通过训练提升性能。 更多细节参见官方文档说明。 --- ### 注意事项 - 如果遇到内存足的情况,请尝试降低批大小或者减少分辨率尺寸后再重新测试。 - 对于复杂场景下的高精度要求可能还需要额外调整算法逻辑甚至引入其他辅助模块配合工作。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值