手把手教你使用vLLM部署DeepSeek V2 Lite模型的完整步骤详解
私有化部署大模型时,数据隐私是很多企业最先考虑的问题。于是,在内部自主部署大语言模型就成了一个常见选择。市面上能帮忙部署大模型的工具还真不少——Ollama、vLLM、Xinference、SGLang、LM Studio,各有各的脾气。其中,Ollama和LM Studio只支持GGUF格式的量化
私有化部署大模型时,数据隐私是很多企业最先考虑的问题。于是,在内部自主部署大语言模型就成了一个常见选择。市面上能帮忙部署大模型的工具还真不少——Ollama、vLLM、Xinference、SGLang、LM Studio,各有各的脾气。其中,Ollama和LM Studio只支持GGUF格式的量化模型,适合个人电脑的桌面显卡;而vLLM、Xinference和SGLang则支持PyTorch或者说Transformer类型的模型,这类模型在HuggingFace上通常都能找到,更适合服务器场景。今天就重点聊聊怎么用vLLM来部署和量化DeepSeek模型,机器环境是4块Nvidia 2080Ti,总共48G显存。

1. 下载LLM模型
首先得把模型搞到手。国内推荐用ModelScope[1]下载,速度稳,还支持断点续传。先切到base环境,安装modelscope工具:
conda activate base
pip install modelscope
然后去ModelScope上找到目标模型,比如DeepSeek V2 Lite Chat[2]。复制模型名称,直接拉下来:
modelscope download --model deepseek-ai/DeepSeek-V2-Lite-Chat --local_dir .
速度不错,能跑到30MB/s左右。
2. 安装vLLM推理引擎
接下来搭个专门的环境:
conda create -n vllm python=3.11
conda activate vllm
为了加速安装,配置一下国内镜像源:
conda config --show channels
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --set channel_priority flexible
然后按照官方文档[3]装vLLM:
pip install vllm
需要注意一点:默认pip安装的是基于CUDA 12.1编译的版本,也能兼容12.2和12.4。但如果你的CUDA是11.8,那就得换种方式:
# Install vLLM with CUDA 11.8.
export VLLM_VERSION=0.4.0
export PYTHON_VERSION=310
pip install https://github.com/vllm-project/vllm/releases/download/v${VLLM_VERSION}/vllm-${VLLM_VERSION}+cu118-cp${PYTHON_VERSION}-cp${PYTHON_VERSION}-manylinux1_x86_64.whl --extra-index-url https://download.pytorch.org/whl/cu118
3. 开始部署
模型下载好、环境就绪,就可以拉起服务了:
CUDA_VISIBLE_DEVICES=0,1,2,3 python -m vllm.entrypoints.openai.api_server --model deepseek-ai/DeepSeek-V2-Lite-Chat --port 11434 --tensor-parallel-size 4 --gpu-memory-utilization 0.9 --max-model-len 8192 --trust-remote-code --enforce_eager --dtype=half
几个参数值得单独说一下:
- dtype:RTX 2080Ti只支持半精度,所以必须设成
half。 - max-model-len:上下文长度,它会自动预留KV Cache。DeepSeek V2虽然支持128K上下文,但预留显存会飙升,建议一点点往上加,找到显卡能承受的极限。
- gpu-memory-utilization:显存利用率,默认0.9。48G显存乘以0.9就是43.2G可用。
- tensor-parallel-size:张量并行,单卡放不下模型时,可以按显卡数量启用。
实际跑的时候,发现48G显存连一个BF16的16B模型加8K上下文都怼不进去,报错说KV Cache容量不足。把gpu_memory_utilization从0.9调到0.95,总算能跑起来了,8K上下文勉强支持,推理速度约15 tokens/s。
4. 使用LoRA
如果你在base模型上微调过,可以在启动时挂载LoRA模块:
vllm serve meta-llama/Llama-2-7b-hf
--enable-lora
--lora-modules sql-lora=$HOME/.cache/huggingface/hub/models--yard1--llama-2-7b-sql-lora-test/snapshots/0dfa347e8877a4d4ed19ee56c140fa518470028c/
关键参数是--enable-lora --lora-modules {name}={lora-path}。调用时,API请求里的模型名要改成LoRA模块的名字:
curl http://localhost:8000/v1/completions
-H "Content-Type: application/json"
-d '{
"model": "sql-lora",
"prompt": "San Francisco is a",
"max_tokens": 7,
"temperature": 0
}' | jq
5. 量化DeepSeek Lite Chat模型
量化需要考虑显卡架构。RTX 2080Ti是Turing架构,计算能力7.5,不支持FP8量化,所以走AWQ的4bit量化路线。
先装autoawq:
pip install autoawq
再装flash_attn,否则会报ImportError。如果装flash_attn时提示找不到nvcc,可以用which nvcc找到路径,然后手动设置:
CUDA_HOME=/usr/local/cuda pip install flash_attn
注意编译wheel可能会卡很久,一个小时以上都有可能。另外,量化和vLLM的依赖有时会冲突,建议建两个独立的虚拟环境。
量化脚本如下:
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer
model_path = 'hub/deepseek-ai/DeepSeek-V2-Lite-Chat/'
quant_path = 'hub/deepseek-ai/DeepSeek-V2-Lite-Chat-awq-int4/'
quant_config = { "zero_point": True, "q_group_size": 128, "w_bit": 4, "version": "GEMM" }
# Load model
model = AutoAWQForCausalLM.from_pretrained(model_path, **{"low_cpu_mem_usage": True})
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
# Quantize
model.quantize(tokenizer, quant_config=quant_config)
# Sa ve quantized model
model.sa ve_quantized(quant_path)
tokenizer.sa ve_pretrained(quant_path)
如果你的显卡支持FP8(比如Ada Lovelace架构),可以用AutoFP8做离线量化,动态激活规模因子,不损失精度:
git clone https://github.com/neuralmagic/AutoFP8.git
pip install -e AutoFP8
然后执行:
from auto_fp8 import AutoFP8ForCausalLM, BaseQuantizeConfig
pretrained_model_dir = "hub/deepseek-ai/DeepSeek-V2-Lite-Chat/"
quantized_model_dir = "hub/deepseek-ai/DeepSeek-V2-Lite-Chat-FP8/"
# Define quantization config with dynamic activation scales
quantize_config = BaseQuantizeConfig(quant_method="fp8", activation_scheme="dynamic")
# For dynamic activation scales, no calbration examples needed
examples = []
# Load, quantize, and sa ve
model = AutoFP8ForCausalLM.from_pretrained(pretrained_model_dir, quantize_config)
model.quantize(examples)
model.sa ve_quantized(quantized_model_dir)
总结
这篇文章记录了在RTX 2080Ti四卡上部署DeepSeek V2 16B模型的过程,希望能给有类似需求的朋友一些参考。更多参数细节还是得翻vLLM官方文档。值得一提的是,DeepSeek V2使用的MLA(Multi-head Latent Attention)目前vLLM还没实现,但sglang已经支持了,速度提升明显。下一篇准备试试sglang的方案。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:手把手教你使用vLLM部署DeepSeek V2 Lite模型的完整步骤详解要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点通过设定不同高度视角锚点(1 2m、1 65m、0 85m),绑定空间坐标与景深,可生成俯视、平视、微仰三种角度。配套顶光、侧窗光、地面反光等光影逻辑,并运用透视网格校验偏差,确保输出结果可控。
稿定设计多端同步依赖同一账号登录与自动云端保存,无需手动操作。所有设备使用同一账号,设计稿实时上传至云端,其他端自动更新。作品统一归集于“我的作品”,删除文件30天内可回收。同步异常可检查网络、版本或清除缓存。
通过专属模板、智能结构化、术语强制统一及带逻辑校验的大纲体系,火龙果写作将传统5天的培训教材编写流程压缩至1天,解决格式拉锯、术语分歧与逻辑断层问题,实现高效落地。
豆包官网登录入口位于首页右上角,支持手机号验证码或微信授权登录,新用户自动生成账号ID并建议绑定邮箱。同一账号多端数据云同步,支持基础智能与超能模式,具备代码块嵌入与在线调试功能。界面交互友好,注重隐私加密与访问权限控制。
- 日榜
- 周榜
- 月榜
热点快看
