Mac部署vLLM基础教程

51 阅读3分钟

Mac部署vLLM基础教程

1、vLLM介绍

vLLM是一个快速且易于使用的开源库,专为大型语言模型(LLM)的推理和服务设计,核心优势在于极致的吞吐量和高效的内存管理,能够显著降低LLM部署的成本和延迟。

其核心特性包括:

  • 高吞吐量:采用创新的PagedAttention(分页注意力)技术管理KV缓存,结合连续批处理机制,吞吐量较传统推理框架提升数倍甚至数十倍;
  • 高效内存管理:将KV缓存分割为固定大小的块,实现动态分配与复用,内存浪费率低至4%以下,支持更大批量的推理请求;
  • 广泛兼容性:无缝集成Hugging Face模型,支持NVIDIA/AMD/Intel等多种硬件平台,提供与OpenAI兼容的API服务器,迁移成本极低;
  • 丰富优化特性:支持GPTQ/AWQ等量化方案、推测解码、前缀缓存、多LoRA等高级功能,兼顾性能与灵活性。

适用场景:离线批处理推理、在线高并发服务、LLM应用快速部署等,是当前工业级LLM部署的优选方案之一。

2、环境准备

2.1、安装uv

2.1.1、uv是什么?

在技术领域,uv 通常指代 astral-sh/uv—— 一款由 Astral 开发的极速 Python 包管理器和项目运行工具,定位是 pippipenvpoetry 的高性能替代品。

核心特点

  1. 极致速度

    • 底层用 Rust 语言编写,相比 Python 实现的 pip/poetry,包安装速度提升 10-100 倍
    • 支持并行下载、缓存复用、依赖解析优化,大幅减少项目依赖安装时间。
  2. 功能全覆盖

    • 兼容 pip 的所有核心功能:安装、卸载、冻结依赖(uv pip freeze)。
    • 支持虚拟环境管理(uv venv),替代 virtualenv/conda 的部分场景。
    • 支持 pyproject.toml 规范,可直接管理现代 Python 项目的依赖(对标 poetry/pdm)。
  3. 无缝兼容

    • 可直接读取 requirements.txtpyproject.toml 文件,无需修改现有项目配置。
    • 支持 Windows/macOS/Linux 全平台,包括 ARM 架构(如苹果 M 芯片、树莓派)。

2.1.2、安装uv

# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh

c932c13dbd6c0ba6d31c4240ca93487d.png

2.1.3、使配置生效

source $HOME/.local/bin/env

2.1.4、校验版本

uv --version

image.png

2.1.5、适用场景

  • 开发环境:快速安装依赖,提升项目初始化效率。
  • CI/CD 流水线:减少依赖安装耗时,加速构建流程。
  • 替代传统工具:用单一工具替代 pip + virtualenv + poetry 的组合,简化工作流。

2.1.6、与其他工具的对比

工具语言速度虚拟环境管理依赖锁支持
pipPython❌ 不支持✅ 支持
poetryPython中等✅ 支持✅ 强支持
uvRust极快✅ 支持✅ 强支持

2.2、安装vllm

如下图,执行如下三个命令进行安装: c8036ef7826871c7ec2e8d1fe78dd32f.png

2.2.1、创建python虚拟环境

uv venv myenv --python 3.12 --seed

2.2.2、激活虚拟环境

执行如下脚本激活虚拟环境

source myenv/bin/activate

2.2.3、安装vllm

uv pip install vllm

2.3、部署模型服务

运行以下命令以启动 vLLM 服务器并使用 Qwen2.5-1.5B-Instruct 模型。如下图,安装完成后,端口服务为8000,api兼容openapi

vllm serve Qwen/Qwen2.5-1.5B-Instruct --max-num-batched-tokens 2048 --max-model-len 2000 --gpu-memory-utilization 0.8

注意:此处需要梯子,否则无法下载HF的模型,默认使用CPU进行推理。

image.png

4f318d4d94f70f1be6adc39665f625bd.png 安装完成后,如下图 8559acd1daf856b73b2972821335d824.png

2.4、验证模型服务

  • 调用如下接口,查看模型列表,浏览器地址栏输入如下地址:
http://localhost:8000/v1/models

8472f164d585bd80b81a17db1dc65adf.png

  • api列表 在浏览器地址栏输入如下地址:
http://localhost:8000/openapi.json

image.png

2.5、验证模型接口调用

curl --location 'http://localhost:8000/v1/completions' \
--header 'Content-Type: application/json' \
--data '{
        "model": "Qwen/Qwen2.5-1.5B-Instruct",
        "prompt": "帮我整理一下redis面试题",
        "max_tokens": 1024,
        "temperature": 0
    }'

image.png