0

0

如何使用vLLM部署DeepSeek V2 Lite模型

雪夜

雪夜

发布时间:2025-04-23 21:58:01

|

1281人浏览过

|

来源于php中文网

原创

近期,许多企业在考虑数据隐私问题时,选择在内部部署私有化的大语言模型。常见的部署工具包括ollama、vllm、xinference、sglang和lm studio。其中,ollama和lm studio仅支持gguf类型量化的大语言模型,而vllm、xinference和sglang则支持pytorch或transformer类型的大模型,这些模型通常可以在huggingface上找到。ollama和lm studio适用于桌面显卡领域的个人电脑部署,而vllm、xinference和sglang则更适合服务器领域的部署。本文将重点介绍如何使用vllm部署和量化deepseek大语言模型,部署环境为4卡nvidia 2080ti,共约48g显存。

  1. 下载LLM模型

    首先,我们需要下载所需的大语言模型。在国内,通常使用ModelScope下载,因为其速度快且稳定。我们使用ModelScope官方提供的工具modelscope来下载,它支持自动重连和断点续传功能。首先,我们需要切换到conda的base环境,并安装modelscope。

    conda activate base
    pip install modelscope

    然后,我们访问ModelScope,找到要下载的模型,例如DeepSeek V2 Lite模型。

    如何使用vLLM部署DeepSeek V2 Lite模型

    拷贝模型的限定名称,并使用以下命令将其下载到当前目录。

    modelscope download --model deepseek-ai/DeepSeek-V2-Lite-Chat --local_dir .

    下载速度很快,约为30MB/s。

    如何使用vLLM部署DeepSeek V2 Lite模型

  2. 安装vLLM推理引擎

    接下来,创建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

    然后,根据官方文档安装vLLM。

    pip install vllm

    注意,如果使用CUDA 11.8,可以使用以下命令安装vLLM。

    # 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. 开始部署

    使用以下命令开始部署DeepSeek V2 Lite Chat模型。

    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 - 指定上下文长度,vLLM会自动预留KV Cache。虽然DeepSeek V2支持128K上下文,但这会占用大量显存,因此需要逐步尝试找到最佳上下文长度。
    • gpu-memory-utilization - 指定显存利用率,默认0.9,意味着最大可以使用48*0.9=43.2G显存。
    • tensor-parallel-size - 张量并行推理,如果单卡显存不足以承载大模型,可以启用此选项,根据显卡数量设置大小。

    在尝试部署时,发现8K上下文导致显存不足,无法启动。通过将gpu-memory-utilization增大到0.95,可以启动并支持8K上下文,速度约为每秒15 tokens。

    如何使用vLLM部署DeepSeek V2 Lite模型

  4. 使用Lora

    如果在基础模型上进行微调,可以通过以下方式指定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}来指定Lora模型。在使用OAI兼容的接口请求时,必须将模型名称指定为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量化。

    如何使用vLLM部署DeepSeek V2 Lite模型

    此处使用AWQ进行4bit量化。

    pip install autoawq

    还需要单独安装一个依赖,否则会报错。

    pip install flash_attn

    如果安装时找不到nvcc,可以执行以下命令找到nvcc路径并手动设置CUDA_HOME。

    which nvcc

    然后根据获得的地址手动设置CUDA_HOME并安装。

    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)

    Save quantized model

    model.save_quantized(quant_path) tokenizer.save_pretrained(quant_path)

    如果显卡支持FP8量化,可以使用AutoFP8进行离线量化。

    git clone https://www.php.cn/link/89b3f18cd4609f9af4d1aa05a3df378e
    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 static activation scales

    quantize_config = BaseQuantizeConfig(quant_method="fp8", activation_scheme="dynamic")

    For dynamic activation scales, there is no need for calbration examples

    examples = []

    Load the model, quantize, and save checkpoint

    model = AutoFP8ForCausalLM.from_pretrained(pretrained_model_dir, quantize_config) model.quantize(examples) model.save_quantized(quantized_model_dir)

总结

本文主要记录了我在RTX 2080Ti上部署DeepSeek V2 16B模型的过程,希望能为大家提供一个参考。更多的参数设置可以参考vLLM官方文档。此外,DeepSeek V2模型使用的MLA(Multi-head Latent Attention)目前vLLM尚未实现,但sglang最近实现了MLA,速度有了明显提升。下一篇文章我们将尝试使用sglang进行部署。

参考资料

[1] ModelScope: https://www.php.cn/link/6d9814b5207f1d3ff1d50bc3a89ac9b3

[2] DeepSeek V2 Lite模型: https://www.php.cn/link/6d9814b5207f1d3ff1d50bc3a89ac9b3/deepseek-ai/deepseek-v2-lite-chat

[3] 官方文档: https://www.php.cn/link/8596dd1dc67d1200fe0606146fcee1a4

[4] vLLM官方文档: https://www.php.cn/link/37c9c9e3401bacdf3fb42cb447dadb4b

相关文章

AI工具
AI工具

AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型,支持联网搜索。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

310

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1155

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

215

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1981

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

22

2026.01.19

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1155

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

215

2025.10.17

C++ 设计模式与软件架构
C++ 设计模式与软件架构

本专题深入讲解 C++ 中的常见设计模式与架构优化,包括单例模式、工厂模式、观察者模式、策略模式、命令模式等,结合实际案例展示如何在 C++ 项目中应用这些模式提升代码可维护性与扩展性。通过案例分析,帮助开发者掌握 如何运用设计模式构建高质量的软件架构,提升系统的灵活性与可扩展性。

14

2026.01.30

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 8.1万人学习

Git 教程
Git 教程

共21课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号