工具:vllm推理框架

vLLM

vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架,提供易用、快速、便宜的LLM服务,支持绝大多数LLM模型的推理加速,类似Ollama/llama.cpp等大模型框架一样,主要用于模型推理,微调以及部署。

vLLM 是一个Python库,同时也包含预编译的C++和CUDA(12.1版本)二进制文件。

主要特性:

  • 通过PagedAttention【一种全新的注意力算法】对 KV Cache 的有效管理,PagedAttention可以有效提高内存利用率和并发处理能力。
  • 提供了一个token-level并行机制,让vllm在处理AI生成任务时可以达到更低的延迟,特别是在长文本生成的RAG场景中尤为突出。
  • 传入请求的continus batching,而不是static batching
  • 支持张量并行推理
  • 支持流式输出
  • 兼容 OpenAI 的接口服务
  • 与 HuggingFace 模型无缝集成,但比HuggingFace Transformers高14-24倍的吞吐量。

官方文档:https://docs.vllm.ai/en/latest/

模型列表:https://docs.vllm.ai/en/latest/models/supported_models.html

安装和使用

vllm目前暂时在windows支持不足,强烈建议在Linux下使用,对CPU支持不足【安装非常复杂】,所以必须使用CPU进行模型推理。

Python版本要求在3.10以上。

# 魔塔社区的服务器,默认已经内置安装了一个vLLM版本了,所以不要重复安装会报错!!!
pip install vLLM

部署模型

对外提供大模型访问服务:

export TORCH_USE_CUDA_DSA=True
export VLLM_USE_MODELSCOPE=True
vllm serve /mnt/workspace/.cache/modelscope/hub/Qwen/Qwen2.5-7b  --dtype auto --api-key token-abc123

访问上面的模式:

from langchain_openai import ChatOpenAI

llm = ChatOpenAI(
    base_url="http://localhost:8000/v1",
    api_key="token-abc123",
)

llm.invoke({"input": "请介绍下你自己。"})

对外提供HTTP访问服务:

python -m vllm.entrypoints.openai.api_server --model  /mnt/workspace/.cache/modelscope/hub/Qwen/Qwen2.5-7b

默认情况下,API 服务端口为8000,我们可通过 --port 参数设置服务端口;同时,可通过--host 参数设置服务地址:

python -m vllm.entrypoints.openai.api_server --model /mnt/workspace/.cache/modelscope/hub/Qwen/Qwen2.5-7b --port 8000 --host 0.0.0.0

API 服务部署成功之后,可以通过 CURL 命令验证服务:

curl http://localhost:8000/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "/home/obullxl/ModelSpace/Qwen2.5-7B",
  "messages": [
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "美国现任总统是谁?"}
  ],
  "temperature": 0,
  "top_p": 0.8,
  "repetition_penalty": 1.05,
  "max_tokens": 4096
}
posted @ 2025-04-16 15:20  凫弥  阅读(750)  评论(0)    收藏  举报