赞
踩
vLLM是一个快速且易于使用的LLM推理和服务库。
vLLM速度很快:
vLLM灵活且易于使用:
vLLM无缝支持多种拥抱脸模型,包括以下架构:
# (Recommended) Create a new conda environment.
conda create -n myenv python=3.9 -y
conda activate myenv
# Install vLLM with CUDA 12.1.
pip install vllm==0.4.0
默认情况下,vLLM从HuggingFace下载模型。如果您想在以下示例中使用ModelScope中的模型,请设置环境变量:
echo 'export VLLM_USE_MODELSCOPE=True' >> ~/.bashrc
source ~/.bashrc
from vllm import LLM
prompts = [
"Hello, my name is",
"The president of the United States is",
"The capital of France is",
"The future of AI is",
]
llm = LLM(model="Qwen/Qwen-7B",trust_remote_code=True,gpu_memory_utilization=0.9)
outputs = llm.generate(prompts)
for output in outputs:
prompt = output.prompt
generated_text = output.outputs[0].text
print(f"Prompt: {prompt!r}, Generated text: {generated_text!r}")
vLLM可以部署为实现OpenAI API协议的服务器。这允许vLLM用作使用OpenAI API的应用程序的直接替代品。 默认情况下,它在http://localhost:8000启动服务器。您可以使用–host和–port参数指定地址。
启动服务器
python -m vllm.entrypoints.openai.api_server --trust-remote-code --model Qwen/Qwen-7B
默认情况下,服务器使用存储在令牌器中的预定义聊天模板。您可以使用–chat-template参数覆盖此模板:
python -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen-7B \
--chat-template ./examples/template_chatml.jinja
该服务器可以以与OpenAI API相同的格式查询。例如,列出模型:
curl http://localhost:8000/v1/models
curl http://localhost:8000/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen/Qwen-7B",
"prompt": "San Francisco is a",
"max_tokens": 7,
"temperature": 0
}'
-d 里面是请求的参数,可以自己设置。temperature 为 0,代表每次模型的回答都相同,不具有随机性,你可以自由调整参数来满足你的需求
您可能会遇到的OOM(内存溢出)问题。可以尝试将这两个参数进行修复。第一个参数是 --max-model-len 。我们提供的默认最大位置嵌入(max_position_embedding)为32768,因此服务时的最大长度也是这个值,这会导致更高的内存需求。将此值适当减小通常有助于解决OOM问题。另一个您可以关注的参数是 --gpu-memory-utilization 。默认情况下,该值为 0.9 ,你可以将其调高以应对OOM问题。这也是为什么您发现一个大型语言模型服务总是占用大量内存的原因。
RuntimeError: Failed to load the model config. If the model is a custom model not yet available in the HuggingFace transformers library, consider setting trust_remote_code=True
in LLM or using the --trust-remote-code
flag in the CLI.
启动llm时,指定trust_remote_code=True
llm = LLM(model="Qwen/Qwen-7B",trust_remote_code=True)
ValueError: The model’s max seq len (8192) is larger than the maximum number of tokens that can be stored in KV cache (7600). Try increasing gpu_memory_utilization
or decreasing max_model_len
when initializing the engine.
启动llm时,指定gpu_memory_utilization=0.9
llm = LLM(model="Qwen/Qwen-7B",gpu_memory_utilization=0.9)
https://docs.vllm.ai/en/latest/getting_started/quickstart.html
https://qwen.readthedocs.io/zh-cn/latest/deployment/vllm.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。