如何在AMD EPYC CPU上部署Qwen2.5-VL-7B-Instruct-da8w8-torchao-v0.16.0?超详细步骤教程

【免费下载链接】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 【免费下载链接】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

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐