大模型之VLLMA

你提供的截图是 vLLM 0.17.1 版本的发布资产(Assets)列表,包含多个预编译的 wheel 文件(.whl)、源码包和压缩包。这些文件针对不同平台、架构和依赖环境进行了区分。下面我为你详细解释它们之间的区别:


📦 一、核心命名规则解析

wheel 文件名格式通常为:

复制代码
<package>-<version>+<extra>-<python tag>-<abi tag>-<platform tag>.whl

在 vLLM 的例子中:

  • vllm-0.17.1 → 包名 + 版本号
  • +cpu+cu130 → 是否包含 CUDA 支持(CPU only / CUDA 13.0)
  • cp38 → Python 3.8(兼容 cp38, cp39, cp310, cp311 等,但这里只提供了 cp38)
  • abi3 → ABI 标签,表示与 Python ABI 兼容(通常用于 CPython 扩展)
  • manylinux_2_35manylinux_2_31 → Linux glibc 版本要求(越高越新,兼容性越差)
  • aarch64x86_64 → CPU 架构(ARM64 vs Intel/AMD x64)

🔍 二、逐个文件说明

✅ 1. CPU 版本(无 GPU 加速)

vllm-0.17.1+cpu-cp38-abi3-manylinux_2_35_aarch64.whl
  • 架构: ARM64 (如 Apple M系列芯片、AWS Graviton、树莓派等)
  • glibc: manylinux_2_35(较新的 Linux 发行版,如 Ubuntu 22.04+, Fedora 36+)
  • 大小: 31.4 MB
  • 用途: 在没有 NVIDIA GPU 的 ARM 设备上运行 vLLM
vllm-0.17.1+cpu-cp38-abi3-manylinux_2_35_x86_64.whl
  • 架构: x86_64(主流 PC/服务器)
  • glibc: manylinux_2_35
  • 大小: 51.9 MB
  • 用途: 在没有 NVIDIA GPU 的普通 Linux 服务器上运行

💡 注意:这两个是纯 CPU 版本,推理速度较慢,适合测试或小规模部署。


✅ 2. CUDA 13.0 版本(支持 NVIDIA GPU)

vllm-0.17.1+cu130-cp38-abi3-manylinux_2_35_aarch64.whl
  • 架构: ARM64
  • CUDA: 13.0(需安装对应驱动和 cuDNN)
  • glibc: manylinux_2_35
  • 大小: 204 MB
  • 用途: 在 ARM 架构 + NVIDIA GPU 上运行(较少见,如 Jetson Orin + 外部 GPU?不推荐)
vllm-0.17.1+cu130-cp38-abi3-manylinux_2_35_x86_64.whl
  • 架构: x86_64
  • CUDA: 13.0
  • glibc: manylinux_2_35
  • 大小: 218 MB
  • 用途: 主流选择!适用于大多数带 NVIDIA GPU 的 Linux 服务器(如 A100/H100/T4 等)

⚠️ 注意:你需要确保系统已安装:

  • NVIDIA Driver ≥ 550.x(支持 CUDA 13.0)
  • CUDA Toolkit 13.0
  • cuDNN 8.x 或更高

✅ 3. 旧版 glibc 兼容版本(manylinux_2_31)

这些是为了兼容更老的 Linux 发行版(如 Ubuntu 20.04、CentOS 7/8 等),因为它们的 glibc 版本较低。

vllm-0.17.1-cp38-abi3-manylinux_2_31_aarch64.whl
  • 架构: ARM64
  • glibc: manylinux_2_31(兼容 Ubuntu 20.04+, CentOS 8+)
  • 大小: 367 MB
  • 注意 : 没有 +cpu+cu130 前缀 → 这个版本默认包含 CUDA 支持?

❌ 实际上,从命名看,它缺少 +cuXXX 标记,可能是个"通用"构建,或者文档遗漏。但在实践中,如果没有 +cpu,通常意味着它包含 CUDA 支持 ------ 所以这个很可能是 CUDA 版本但针对老系统

vllm-0.17.1-cp38-abi3-manylinux_2_31_x86_64.whl
  • 架构: x86_64
  • glibc: manylinux_2_31
  • 大小: 413 MB
  • 用途: 在老旧 Linux 系统上使用 GPU 加速的 vLLM

🧩 为什么比 manylinux_2_35 大?因为它可能静态链接了更多库以保证兼容性。


✅ 4. 源码包 & 压缩包

vllm-0.17.1.tar.gz
  • 源代码压缩包,可用于手动编译安装
  • 大小: 29.1 MB
  • 适合开发者自定义构建或调试
Source code (zip) / (tar.gz)
  • GitHub 自动生成的源码快照,不含构建产物
  • 不适合直接安装,仅用于查看代码或二次开发

三、关键对比总结表

文件名 架构 CUDA? glibc 要求 大小 适用场景
...+cpu-..._aarch64.whl ARM64 2_35 31.4 MB ARM 设备无 GPU
...+cpu-..._x86_64.whl x86_64 2_35 51.9 MB 普通 Linux 无 GPU
...+cu130-..._aarch64.whl ARM64 ✅ 13.0 2_35 204 MB ARM + GPU(罕见)
...+cu130-..._x86_64.whl x86_64 ✅ 13.0 2_35 218 MB 主流推荐:x86 + GPU
..._manylinux_2_31_aarch64.whl ARM64 ✅(?) 2_31 367 MB 老系统 ARM + GPU
..._manylinux_2_31_x86_64.whl x86_64 ✅(?) 2_31 413 MB 老系统 x86 + GPU
vllm-0.17.1.tar.gz - - - 29.1 MB 源码编译

📝 注:"✅(?)" 表示虽然没写 +cu130,但从上下文推断应含 CUDA 支持(否则不会这么大)。建议查阅官方文档确认。


🎯 四、如何选择?

✅ 如果你是普通用户(有 NVIDIA GPU):

→ 选:vllm-0.17.1+cu130-cp38-abi3-manylinux_2_35_x86_64.whl

✅ 如果你的系统是 Ubuntu 20.04 / CentOS 7/8:

→ 选:vllm-0.17.1-cp38-abi3-manylinux_2_31_x86_64.whl

✅ 如果你在 Mac M1/M2 或 Raspberry Pi 上跑 CPU 版:

→ 选:vllm-0.17.1+cpu-cp38-abi3-manylinux_2_35_aarch64.whl

✅ 如果你想自己编译或贡献代码:

→ 下载 vllm-0.17.1.tar.gz 或 Source code


五、注意事项

  1. Python 版本限制 :所有 wheel 都是 cp38,即只支持 Python 3.8。如果你用的是 3.9/3.10/3.11,需要等待其他版本或使用源码编译。
  2. CUDA 版本匹配:务必确保你的 NVIDIA 驱动和 CUDA Toolkit 与 wheel 中的 CUDA 版本一致(这里是 13.0)。
  3. manylinux 兼容性:如果你的系统太老(比如 CentOS 6),即使 manylinux_2_31 也可能无法运行,此时必须源码编译。
  4. 反应数:底部显示 "37 people reacted",其中 👍 33,🎉 12 ------ 表示社区对这个发布的认可度较高。

✅ 最佳实践建议

对于大多数生产环境:

bash 复制代码
pip install vllm-0.17.1+cu130-cp38-abi3-manylinux_2_35_x86_64.whl

如果失败(因 glibc 太低):

bash 复制代码
pip install vllm-0.17.1-cp38-abi3-manylinux_2_31_x86_64.whl

如果是开发或学习目的且无 GPU:

bash 复制代码
pip install vllm-0.17.1+cpu-cp38-abi3-manylinux_2_35_x86_64.whl

如有具体系统环境(如 Ubuntu 22.04 + RTX 4090 + Python 3.10),可以告诉我,我会帮你精准推荐哪个文件最合适 😊

结论:可以,完全没问题。

系统要求写的是 Python: 3.9 -- 3.12,这是一个范围 。这意味着 3.9、3.10、3.11、3.12 任何一个版本都是官方支持的。

既然你的系统里已经完美安装了 Python 3.11 (通过 whereis python3.11 确认),你不需要强行安装 3.12。直接使用现有的 3.11 即可开始构建。

✅ 推荐方案:使用现有的 Python 3.11

你可以直接修改文档中的命令,将 3.12 替换为 3.11

复制代码
#### 方案 C:如果你使用系统自带 Python (不推荐用于生产,但可行)
如果你不想用 conda 或 uv,也可以直接用系统的 3.11 创建虚拟环境:
```bash
# 使用系统自带的 python3.11 创建虚拟环境
yum install -y python3-devel

/usr/bin/python3.11 -m venv /cloud/vllm/.venv
source /cloud/vllm/.venv/bin/activate


# 3. 安装构建依赖 (照抄文档)

source /cloud/vllm/.venv/bin/activate
pip install --upgrade pip
pip install "cmake>=3.26" wheel packaging ninja "setuptools-scm>=8" numpy
mkdir -p /cloud/vllm/vllm_source
git clone https://github.com/vllm-project/vllm.git vllm_source
cd /cloud/vllm/vllm_source

pip install -v -r requirements/cpu.txt --extra-index-url https://download.pytorch.org/whl/cpu


VLLM_TARGET_DEVICE=cpu  python setup.py install

放心大胆地用 Python 3.11 吧!

####=========================================================================

编译完成后,你需要知道产物在哪里包含什么 ,以及如何迁移到无网的目标服务器。以下是详细指南:

1. 编译后的目录在哪?是什么文件?

当你运行 python setup.py install 成功后,并没有 一个单独的"可执行文件"或"压缩包"留在 build/ 目录下。

  • 构建临时目录(可删除):

    • 路径:/cloud/vllm/vllm_source/build/
    • 内容:编译过程中的中间文件(.o 对象文件、临时库)。编译成功后,这个目录可以安全删除,它不是运行所需的。
  • 真正的安装位置(重要!):

    • setup.py install 会将编译好的库直接安装到你当前的 Python 虚拟环境 中。
    • 路径:/cloud/vllm/.venv/lib/python3.11/site-packages/vllm/
    • 关键文件:
      • vllm/_C.cpython-...so (或类似名称的 .so 文件):这是核心编译产物,包含 CPU 推理加速代码。
      • vllm/ 目录下的所有 .py 文件:Python 逻辑代码。
      • 依赖项:torch, numpy, transformers 等也都安装在 .venv/lib/.venv/bin/ 下。

结论 :你需要的"成品"就是整个虚拟环境文件夹 (/cloud/vllm/.venv)。


2. 目标运行服务器(无网)需要哪些环节?

由于目标服务器不能联网 ,你不能直接在目标机器上 pip install。你必须采用 "整机迁移""离线包迁移" 的方式。

✅ 推荐方案:直接打包整个虚拟环境(最简单、最稳妥)

因为编译涉及复杂的系统库依赖(如 glibc, libstdc++, oneDNN 等),直接复制整个环境可以避免版本不一致导致的报错。

前提条件

  • 源服务器和目标服务器的 操作系统版本 最好一致(例如都是 CentOS 7 或 openEuler 22.03)。
  • CPU 架构 必须一致(都是 x86_64 或都是 ARM64)。

操作步骤

第一步:在源服务器(已编译好的机器)上打包
bash 复制代码
cd /cloud/vllm/
# 将整个虚拟环境打包为 tar.gz
tar -czf vllm_offline_env.tar.gz .venv

(如果模型权重文件也在该目录下且需要迁移,可以一起打包,否则只打包 .venv 即可)

第二步:传输到目标服务器

使用 scp 或 U 盘将 vllm_offline_env.tar.gz 复制到目标服务器的相同路径(例如 /cloud/vllm/)。

第三步:在目标服务器上解压
bash 复制代码
cd /cloud/vllm/
tar -xzf vllm_offline_env.tar.gz
第四步:验证与运行
  1. 激活环境

    bash 复制代码
    source /cloud/vllm/.venv/bin/activate
  2. 验证安装

    运行一个简单的检查命令,确保核心库能加载:

    bash 复制代码
    python -c "import vllm; print('vLLM version:', vllm.__version__)"

    如果输出版本号且无报错,说明迁移成功。

  3. 准备模型权重

    由于无网,你需要提前在其他机器下载好模型权重(例如 Qwen2.5-7B-Instruct),然后传到目标服务器。

    • 假设模型放在 /data/models/Qwen2.5-7B
  4. 启动服务

    bash 复制代码
    # 示例启动命令 (CPU 模式)
    vllm serve /data/models/Qwen2.5-7B \
        --port 8000 \
        --tensor-parallel-size 1 \
        --trust-remote-code

⚠️ 备选方案:制作离线 Wheel 包(仅当环境差异大时使用)

如果源机器和目标机器系统版本不同(导致直接复制 .venv 可能因 glibc 版本不兼容而失败),你需要制作成 Python Wheel 包。

  1. 在源机器上构建 Wheel(而不是 install):

    bash 复制代码
    # 清理之前的 build
    rm -rf build/
    # 构建 wheel 包,产物会在 dist/ 目录下
    VLLM_TARGET_DEVICE=cpu python setup.py bdist_wheel

    产物位置/cloud/vllm/vllm_source/dist/vllm-<版本>-cp311-...whl

  2. 收集所有依赖的 Wheel 包

    你需要在一个有网 的机器上,下载该虚拟环境中所有包的 .whl 文件:

    bash 复制代码
    pip download -r requirements.txt -d ./wheelhouse
    # 并将刚才编译好的 vllm whl 也放入 wheelhouse
    cp dist/*.whl ./wheelhouse/
  3. 迁移与安装

    wheelhouse 文件夹传到目标机器,然后离线安装:

    bash 复制代码
    pip install --no-index --find-links=./wheelhouse vllm

    (注意:这种方法要求目标机器已经安装了兼容的系统级依赖库,如 gcc-runtime, libnuma 等,否则仍可能报错)


������ 总结清单(给运维/部署人员)

步骤 操作 备注
1. 确认架构 检查源机和目标机是否均为 x86_64 (或均 aarch64) uname -m
2. 打包 tar -czf vllm_env.tar.gz .venv 在源机器执行
3. 传输 scp vllm_env.tar.gz user@target_ip:/cloud/vllm/ 或通过物理介质
4. 解压 tar -xzf vllm_env.tar.gz 在目标机器执行
5. 模型 提前下载好模型权重文件并传输到目标机 需单独下载 .safetensors.bin 文件
6. 运行 source .venv/bin/activate vllm serve <模型路径> ... 确保端口未被占用

建议直接使用"推荐方案"(打包整个 .venv,这是对于无网环境最不容易出错的方式,只要操作系统内核版本不是相差太大(例如都是较新的 Linux),通常都能直接运行。

相关推荐
iThinkAi智能体2 小时前
1个运营带4个实习生,周产350篇笔记:小红书图文矩阵真的没那么玄乎
人工智能·经验分享·笔记
chaofan9802 小时前
深度实战:2026年大模型应用如何解决“接口抖动”?五大主流平台横向测评
人工智能·自动化·api·claude opus
2501_946018702 小时前
六渡婚恋推出“真经”公益课堂 ——以系统化成长支持助力家庭建设与社会发展
大数据·人工智能
competes2 小时前
深圳程序员职业生涯
java·大数据·开发语言·人工智能·java-ee
金融RPA机器人丨实在智能2 小时前
OpenClaw正在重写AI产业逻辑:当“行动式AI”席卷全球,实在Agent如何定义商业新范式?
人工智能·ai
飓风_数字IC验证2 小时前
【业务】ISSCC 2026 五大领域核心Session文章梳理
大数据·人工智能
程序员Shawn2 小时前
【机器学习 | 第六篇】- 机器学习
人工智能·算法·机器学习·集成学习
liliangcsdn2 小时前
LLM长文本场景-如何用oneshot方式辅助分析财报
人工智能·全文检索
Yilena2 小时前
一文讲透 Agent 应用中的记忆工程
人工智能·学习