pip uninstall vllm pip install torch==2.4.0 torchaudio==2.4.0 torchvision==0.19.0 transformers==4.44.0 -i https://pypi.tuna.tsinghua.edu.cn/simple pip install tokenizers==0.19.1 triton==3.0.0 vllm==0.5.5 vllm-flash-attn==2.6.1 -i https://pypi.tuna.tsinghua.edu.cn/simple vllm==0.5.5出来的时间是2024年8月,也就是说其他依赖包差不多也要这个时间的 Successfully installed audioread-3.0.1 datasets-3.4.1 dill-0.3.8 fsspec-2024.12.0 gguf-0.9.1 lazy_loader-0.4 librosa-0.11.0 lm-format-enforcer-0.10.6 multiprocess-0.70.16 nvidia-cublas-cu12-12.1.3.1 nvidia-cuda-cupti-cu12-12.1.105 nvidia-cuda-nvrtc-cu12-12.1.105 nvidia-cuda-runtime-cu12-12.1.105 nvidia-cufft-cu12-11.0.2.54 nvidia-curand-cu12-10.3.2.106 nvidia-cusolver-cu12-11.4.5.107 nvidia-cusparse-cu12-12.1.0.106 nvidia-nccl-cu12-2.20.5 nvidia-nvtx-cu12-12.1.105 outlines-0.0.46 pooch-1.8.2 pyairports-2.1.1 pyarrow-19.0.1 soundfile-0.13.1 soxr-0.5.0.post1 tokenizers-0.19.1 torch-2.4.0 torchvision-0.19.0 transformers-4.44.0 triton-3.0.0 vllm-0.5.5 vllm-flash-attn-2.6.1 xformers-0.0.27.post2 xxhash-3.5.0 |
pip install uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple pip install vllm -i https://pypi.tuna.tsinghua.edu.cn/simple pip install sse_starlette -i https://pypi.tuna.tsinghua.edu.cn/simple vllm也可以在CPU上进行安装 # 安装PyTorch CPU版本 pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu pip install vllm VLLM的CPU安装是可行的,但性能会显著受限。 建议根据实际需求(推理/训练)和硬件条件选择部署环境。 轻量化替代:若仅需在CPU上运行, 可考虑使用VLLM的轻量化版本(如蒸馏模型)或降低输入分辨率/模型复杂度。 |
DeepSeek-R1-Distill-Qwen-32B https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B sudo apt install curl git sudo curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash sudo apt install git-lfs git lfs install mkdir deepseek cd deepseek git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-32B.git DeepSeek-R1-Distill-Qwen-14B https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-14B |
CUDA_VISIBLE_DEVICES=0,1 python -m vllm.entrypoints.openai.api_server --model ./path/deepseek_model --port 8000 --tensor-parallel-size 2 CUDA_VISIBLE_DEVICES=0,1 表示让程序看到设备 ID 为 0 和 1 的两个 GPU, 同时 --tensor-parallel-size 2 表示使用 2 个 GPU 进行张量并行计算,以加速推理过程。 其中./path/deepseek_model 指定模型文件路径,替换为本地自己的,--port 可自定义端口。 CUDA_VISIBLE_DEVICES=0 python -m vllm.entrypoints.openai.api_server --model /wks/models/deepseek/DeepSeek-R1-Distill-Qwen-1.5B --port 8000 确保模型路径正确,文件无损坏。 推理服务启动后,可通过浏览器访问 http://localhost:8000 检查服务状态。 或观察终端输出,如果看到类似 INFO: Started server process 和 INFO: Uvicorn running on ... 的信息,则表示 vLLM 服务启动成功。 注意 GPU 显存: 启动 vLLM 服务会占用 GPU 显存。请确保您的 GPU 显存足够运行模型。如果显存不足,可能会导致启动失败或运行缓慢。您可以尝试减小 --max-model-len 参数或使用更小规模的模型。 如果启动 vLLM 服务时遇到 CUDA 相关错误,请检查您的 NVIDIA 驱动版本和 CUDA 环境是否正确安装。 两种启动方式 https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1 vllm serve /wks/models/deepseek/DeepSeek-R1-Distill-Qwen-1.5B --tensor-parallel-size 1 --max-model-len 10240 --enforce-eager vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-32B --tensor-parallel-size 2 --max-model-len 32768 --enforce-eager python3 -m sglang.launch_server --model deepseek-ai/DeepSeek-R1-Distill-Qwen-32B --trust-remote-code --tp 2 https://www.modelscope.cn/models/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B |
|
|
|
启动 API 服务器(在线服务) vLLM 可以启动一个 HTTP/OpenAI 兼容的 API 服务器,用于在线推理服务。 这种方式适合需要实时响应的场景,如聊天机器人、在线问答系统等。 参数含义 --model:指定要加载的模型路径或名称(支持 Hugging Face 模型)。 --host:指定服务器监听的主机地址(默认为 0.0.0.0)。 --port:指定服务器监听的端口(默认为 8000)。 --tensor-parallel-size:指定张量并行的 GPU 数量(默认为 1)。 --gpu-memory-utilization:指定 GPU 内存使用率(默认为 0.9)。 --max-num-seqs:指定每次推理的最大序列数(默认为 256)。 --max-num-batched-tokens:指定每次推理的最大批处理 token 数量(默认为 2048)。 --dtype:指定模型权重和激活的数据类型(如 bfloat16、float16)。 具体命令 python -m vllm.entrypoints.api_server \ --model /path/to/your/model \ --host 0.0.0.0 \ --port 8000 \ --tensor-parallel-size 1 \ --gpu-memory-utilization 0.9 \ --max-num-seqs 256 \ --max-num-batched-tokens 2048 \ --dtype bfloat16 启动后,可以通过 HTTP 请求(如 curl 或 Python 的 requests 库)调用 API。 curl http://localhost:8000/generate \ -H "Content-Type: application/json" \ -d '{ "prompt": "Hello, world!", "max_tokens": 32, "temperature": 0.7 }' |
离线批量推理(Offline Batch Inference) vLLM 也支持离线批量推理,适用于需要处理大量输入数据的场景(如批量生成文本、批量翻译等)。这种方式可以一次性加载模型并处理多个输入。 参数含义 --model:指定要加载的模型路径或名称(支持 Hugging Face 模型)。 --input-path:指定输入文件的路径(JSON 格式,包含多个 prompt 字段)。 --output-path:指定输出文件的路径(JSON 格式,包含生成结果)。 --temperature:控制生成文本的随机性(默认为 1.0)。 --max-tokens:指定生成的最大 token 数量(默认为 32)。 --top-p:使用 nucleus sampling 控制生成多样性(默认为 1.0)。 --top-k:使用 top-k sampling 控制生成多样性(默认为 50)。 --dtype:指定模型权重和激活的数据类型(如 bfloat16、float16)。 具体命令 python -m vllm.entrypoints.offline_inference \ --model /path/to/your/model \ --input-path prompts.json \ --output-path outputs.json \ --temperature 0.7 \ --max-tokens 32 \ --top-p 0.9 \ --top-k 40 \ --dtype bfloat16 输入文件 prompts.json 示例: json [ {"prompt": "Translate to French: Hello, world!"}, {"prompt": "Summarize this text: ..."} ] 输出文件 outputs.json 将包含生成结果。 |
python -m vllm.entrypoints.cli \ --model DeepSeek-AI/DeepSeek-R1-Distill-Qwen-32B \ --tensor-parallel-size 4 \ --gpu-memory-utilization 0.9 \ --max-num-batched-tokens 4096 \ --dtype half 参数 含义 示例值 --model 模型路径 DeepSeek-AI/DeepSeek-R1-Distill-Qwen-32B --tensor-parallel-size GPU 张量并行数量 4(4 卡) --gpu-memory-utilization GPU 显存利用率 0.9 --max-num-batched-tokens 最大批处理 token 数 4096 --dtype 计算精度(half/float16/bfloat16) half 输入: 你好,DeepSeek-R1 是什么模型? 输出: DeepSeek-R1 是 DeepSeek 团队推出的一个 32B 参数的蒸馏版本模型... |
|
|