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模型

    Seele AI
    Seele AI

    3D虚拟游戏生成平台

    下载

    量化模型时,需要考虑显卡平台支持的量化类型。由于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

相关专题

更多
html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

603

2023.06.14

html在线编辑器
html在线编辑器

html在线编辑器是用于在线编辑的工具,编辑的内容是基于HTML的文档。它经常被应用于留言板留言、论坛发贴、Blog编写日志或等需要用户输入普通HTML的地方,是Web应用的常用模块之一。php中文网为大家带来了html在线编辑器的相关教程、以及相关文章等内容,供大家免费下载使用。

644

2023.06.21

html网页制作
html网页制作

html网页制作是指使用超文本标记语言来设计和创建网页的过程,html是一种标记语言,它使用标记来描述文档结构和语义,并定义了网页中的各种元素和内容的呈现方式。本专题为大家提供html网页制作的相关的文章、下载、课程内容,供大家免费下载体验。

466

2023.07.31

html空格
html空格

html空格是一种用于在网页中添加间隔和对齐文本的特殊字符,被用于在网页中插入额外的空间,以改变元素之间的排列和对齐方式。本专题为大家提供html空格的相关的文章、下载、课程内容,供大家免费下载体验。

245

2023.08.01

html是什么
html是什么

HTML是一种标准标记语言,用于创建和呈现网页的结构和内容,是互联网发展的基石,为网页开发提供了丰富的功能和灵活性。本专题为大家提供html相关的各种文章、以及下载和课程。

2882

2023.08.11

html字体大小怎么设置
html字体大小怎么设置

在网页设计中,字体大小的选择是至关重要的。合理的字体大小不仅可以提升网页的可读性,还能够影响用户对网页整体布局的感知。php中文网将介绍一些常用的方法和技巧,帮助您在HTML中设置合适的字体大小。

503

2023.08.11

html转txt
html转txt

html转txt的方法有使用文本编辑器、使用在线转换工具和使用Python编程。本专题为大家提供html转txt相关的文章、下载、课程内容,供大家免费下载体验。

310

2023.08.31

html文本框代码怎么写
html文本框代码怎么写

html文本框代码:1、单行文本框【<input type="text" style="height:..;width:..;" />】;2、多行文本框【textarea style=";height:;"></textare】。

422

2023.09.01

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

25

2026.01.09

热门下载

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

精品课程

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

共48课时 | 7万人学习

Git 教程
Git 教程

共21课时 | 2.6万人学习

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

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