(1)使用vLLM在Linux上部署模型

部署运行你感兴趣的模型镜像

1.简介

vLLM是一个专为大规模语言模型(LLMs)设计的高效推理和服务框架,旨在优化模型的推理速度、吞吐量和内存利用率。它由加州大学伯克利分校的研究团队开发,特别适合在生产环境中部署大模型(如GPT、LLaMA等)。以下是其核心特点和优势:

1.1核心技术:PagedAttention

●内存管理优化:vLLM的核心创新是PagedAttention(类似操作系统的内存分页机制),通过将注意力机制中的键值(Key-Value)缓存分割为固定大小的“块”,按需分配和管理。这显著减少了内存碎片化问题,尤其适合处理长文本或高并发请求。
●内存效率提升:相比传统框架(如Hugging Face Transformers),vLLM可降低4倍以上的内存占用,同时支持更高的并发请求量。

1.2核心优势

●高吞吐量:通过连续批处理(Continuous Batching)和动态调度,并行处理多个请求,最大化GPU利用率。
●低延迟:优化内存访问和计算效率,减少单次推理的响应时间。
●易用性:兼容HuggingFace模型格式,仅需少量代码修改即可部署现有模型。
●可扩展性:支持分布式推理和多 GPU 扩展,适应超大规模模型部署。

1.3典型应用场景

●大模型 API 服务:高并发场景下的推理服务(如ChatGPT类应用)。
●长文本生成:支持长上下文(如文档摘要、代码生成)而无需牺牲速度。
●资源受限环境:在有限GPU内存下部署更大模型或服务更多用户。
●学术研究:快速实验不同模型的推理性能,减少计算成本。

3.安装vLLM

3.1安装GPU版本

●准备环境

系统CPU内存显卡硬盘
Ubuntu 22.04.1 LTS (Jammy Jellyfish)14 vCPU Intel(R) Xeon(R) Gold 6330 CPU @ 2.00GHz90GBRTX 3090(24GB) * 180GB

服务器信息如下:

●创建并激活conda虚拟环境

# 创建vllm虚拟环境
conda create -n vllm_env python=3.11 -y
# 激活vllm虚拟环境
conda activate vllm_env

●安装vllm包

# 安装vllm包
pip install vllm

●验证cuda和查看gpu信息

# 查看nvidia信息
nvidia-smi

因为我在autodl上租的服务器,已经安装好显卡驱动与cuda,所以不用手动安装,后面有时间再来学习如何安装显卡驱动与cuda。
●下载模型
从huggingface平台上提前下载好基于deepseek千问模型(deepseek-r1-distill-qwen-1.5b)与嵌入模型(nomic-embed-text-v1.5),路径为:/root/huggingface/models。
●基于vllm前台启动服务

# 切换到modelscope下载到qwen模型目录下
cd /root/modelscope/models/deepseek-r1-distill-qwen-1.5b
# 启动模型服务
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B

如下图所示:

●基于vllm后台启动服务
◎创建vllm后台启动服务目录

# 创建一个vllm后台启动服务目录
mkdir -p /root/vllm-start-bash

◎创建大模型后台启动文件

# 创建一个关于不同大模型后台启动文件
vim /root/vllm-start-bash/vllm-ds-qwen-start.sh
#!/bin/bash

# 切换到modelscope下载到qwen模型目录下
cd /root/modelscope/models/deepseek-r1-distill-qwen-1.5b

# 启动vllm并将其放在后台执行
vllm serve deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B --port 8000 &

# 输出后台进程的 PID
echo "vllm server is running in the background with PID $!"

◎授予后台启动文件权限

# 授予后台启动文件权限
chmod +x /root/vllm-start-bash/vllm-ds-qwen-start.sh

◎后台启动服务

# 后台启动服务
/root/vllm-start-bash/vllm-ds-qwen-start.sh

◎查看进程

# 查看进程
ps -ef | grep vllm

4.客户端调用

●vLLM可以部署为实现OpenAI API协议的服务器形式暴露出对外REST API接口,比如Chat Completions API交互:

curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
        "messages": [
            {"role": "system", "content": "You are a helpful assistant."},
            {"role": "user", "content": "Who won the world series in 2020?"}
        ]
}'

●代码实现

from openai import OpenAI
# Set OpenAI's API key and API base to use vLLM's API server.
openai_api_key = "EMPTY"
openai_api_base = "http://localhost:8000/v1"

client = OpenAI(
    api_key=openai_api_key,
    base_url=openai_api_base,
)

chat_response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is the capital of France?"},
    ]
)
print("Chat response:", chat_response)

5.本地VSCode如何对远程服务器代码进行调试与开发

●安装Remote-SSH插件
点击VSCode左侧的扩展按钮(或按Ctrl+Shift+X),搜索插件Remote - SSH进行安装:

●打开并设置Remote-SSH配置文件

HostName是远程服务器的 IP 地址,Port是远程服务器端口,User是用于登录的用户名称。

参考文献
vllm_quickstart:https://docs.vllm.ai/en/stable/getting_started/quickstart.html

您可能感兴趣的与本文相关的镜像

Vllm-v0.11.0

Vllm-v0.11.0

Vllm

vLLM是伯克利大学LMSYS组织开源的大语言模型高速推理框架,旨在极大地提升实时场景下的语言模型服务的吞吐与内存使用效率。vLLM是一个快速且易于使用的库,用于 LLM 推理和服务,可以和HuggingFace 无缝集成。vLLM利用了全新的注意力算法「PagedAttention」,有效地管理注意力键和值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值