工具: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
}

浙公网安备 33010602011771号