如何在AMD EPYC CPU上部署Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0?超详细步骤教程
【免费下载链接】Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0
Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0是由AMD使用TorchAO为ZenDNN优化的CPU推理创建的量化版本,基于Qwen2.5-VL-7B-Instruct模型,专为AMD EPYC CPU设计,支持图像文本到文本的转换任务。
模型概述 📋
核心特性
- 模型架构:Qwen2_5_VLForConditionalGeneration,支持文本和图像输入,输出文本
- 硬件支持:AMD EPYC CPU(仅CPU推理)
- 系统要求:Linux操作系统
- 推理引擎:vLLM v0.18.0
- 量化框架:TorchAO v0.16.0
- 量化方法:8位动态激活、8位权重量化(对称映射)
兼容技术栈
- ZenDNN v5.2.1
- ZenTorch v5.2.1
- PyTorch v2.10.0
- TorchAO v0.16.0
- vLLM v0.18.0
准备工作 🛠️
环境要求
确保您的系统满足以下条件:
- AMD EPYC CPU
- Linux操作系统
- 足够的内存(建议至少64GB)
安装依赖
使用以下命令安装所需的Python包:
pip install --extra-index-url https://download.pytorch.org/whl/cpu \ --extra-index-url https://wheels.vllm.ai/cpu/ \ torch==2.10.0+cpu \ vllm==0.18.0 \ torchao==0.16.0 \ transformers \ huggingface_hub克隆仓库
git clone https://gitcode.com/hf_mirrors/amd/Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0 cd Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0配置环境变量 ⚙️
设置以下环境变量以优化性能:
# vLLM CPU运行时调优 export VLLM_CPU_KVCACHE_SPACE=40 # KV缓存的主机内存GB数 export VLLM_CPU_OMP_THREADS_BIND="0-63" # NUMA本地核心 # TorchInductor配置 export TORCHINDUCTOR_FREEZING=1 export TORCHINDUCTOR_AUTOGRAD_CACHE=1 export TORCHINDUCTOR_CACHE_DIR="./.torchinductor_cache/Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0" # 必需的CPU运行时库 export LD_PRELOAD="<path to lib>/libtcmalloc_minimal.so.4:<path to lib>/libiomp5.so${LD_PRELOAD:+:$LD_PRELOAD}"提示:使用以下命令查找所需库的路径:
find / -name 'libtcmalloc_minimal.so.4' find / -name 'libiomp5.so'然后将找到的目录替换上述命令中的
<path to lib>
模型量化过程 📊
该模型使用TorchAO进行量化,下面是量化过程的简要概述:
步骤1:创建量化配置
from transformers import TorchAoConfig from torchao.quantization import Int8DynamicActivationInt8WeightConfig from torchao.quantization.quant_primitives import MappingType quantization_config = TorchAoConfig( Int8DynamicActivationInt8WeightConfig( version=2, act_mapping_type=MappingType.SYMMETRIC, ), modules_to_not_convert=["lm_head"], )步骤2:加载并量化模型
from transformers import AutoModelForVision2Seq quantized_model = AutoModelForVision2Seq.from_pretrained( "Qwen/Qwen2.5-VL-7B-Instruct", dtype=torch.bfloat16, device_map="cpu", quantization_config=quantization_config, )步骤3:保存量化模型
quantized_model.save_pretrained("./Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0", safe_serialization=False)步骤4:保存tokenizer
from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-VL-7B-Instruct", trust_remote_code=True) tokenizer.save_pretrained("./Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0")注意:
safe_serialization=False是必需的,因为torchao的量化张量子类目前无法以safetensors格式序列化。
运行推理 🚀
虽然项目中没有提供完整的推理脚本,但您可以使用以下代码作为参考进行简单的推理测试:
import torch from transformers import AutoModelForVision2Seq, AutoTokenizer model = AutoModelForVision2Seq.from_pretrained( "./Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0", device_map="cpu", trust_remote_code=True ) tokenizer = AutoTokenizer.from_pretrained( "./Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0", trust_remote_code=True ) # 文本输入示例 input_text = "What are we having for dinner?" input_ids = tokenizer(input_text, return_tensors="pt") output = model.generate(**input_ids, max_new_tokens=30) print(tokenizer.decode(output[0], skip_special_tokens=True))性能评估 📈
该模型已使用lm-evaluation-harness针对BF16(未量化)基线进行了评估。在ChartQA基准测试中,量化模型的性能仅比基线低0.29%,展示了出色的性能保留率。
要重现评估结果,可以运行以下命令:
mkdir -p "${TORCHINDUCTOR_CACHE_DIR}" lm_eval \ --model vllm-vlm \ --model_args pretrained=amd/Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0,tokenizer=Qwen/Qwen2.5-VL-7B-Instruct,dtype=bfloat16 \ --tasks chartqa \ --batch_size auto \ --trust_remote_code \ --apply_chat_template \ --log_samples \ --output_path .注意事项 ⚠️
1.** 版本锁定 **:此模型使用TorchAO v0.16.0量化,仅与PyTorch v2.10.0 / ZenDNN v5.2.1兼容。在其他PyTorch版本上可能无法正确加载。
2.** CPU专用 **:该模型专为AMD EPYC CPU推理优化,不适合GPU推理。
3.** 内存要求 **:确保系统有足够的内存来运行模型,特别是KV缓存需要大量内存。
许可证信息 📄
本模型与源模型遵循相同的许可证分发。详情请参见LICENSE文件。
修改版权所有 (c) 2026 Advanced Micro Devices, Inc. 保留所有权利。
【免费下载链接】Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0项目地址: https://ai.gitcode.com/hf_mirrors/amd/Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考