欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 在Ubuntu 20上使用vLLM部署DeepSeek大模型的完整指南

在Ubuntu 20上使用vLLM部署DeepSeek大模型的完整指南

2025/2/25 0:21:05 来源:https://blog.csdn.net/u013261578/article/details/145792729  浏览:    关键词:在Ubuntu 20上使用vLLM部署DeepSeek大模型的完整指南

文章目录

  • 步骤一:安装Hugging Face工具
  • 步骤二:下载DeepSeek模型
  • 步骤三:安装vLLM
  • 步骤四:使用vLLM部署模型
  • 步骤五:测试推理服务
  • 性能优化建议
  • 常见问题排查

前言
随着大语言模型(LLM)的快速发展,如何高效部署和运行这些模型成为开发者关注的重点。本文将演示在Ubuntu 20系统环境下:

使用huggingface-cli下载DeepSeek模型
通过vLLM实现高性能模型推理
创建简单的API服务

环境准备

系统要求

Ubuntu 20.04 LTS
NVIDIA显卡驱动 ≥ 515.48.07
CUDA 11.8+
Python 3.8+

基础依赖安装

sudo apt update && sudo apt install -y python3-pip git nvidia-cuda-toolkit

步骤一:安装Hugging Face工具

  1. 安装huggingface_hub
pip install huggingface_hub
  1. 置访问令牌(如需下载私有模型)
huggingface-cli login
# 输入Hugging Face账号的access token

步骤二:下载DeepSeek模型

DeepSeek系列模型对比表

模型名称参数规模架构/类型核心优势显存需求适用场景是否开源成本效益
DeepSeek-V3-Base671B(激活370B)混合专家(MoE)支持14.8万亿token预训练,通用性能媲美GPT-4o≥80GB(需多卡)科研级多模态任务、大规模企业应用训练成本仅557万美元
DeepSeek-V3同Base版优化混合专家(MoE)优化版评测成绩超越Qwen2.5-72B,闭源模型竞争力强≥80GB(需多卡)复杂逻辑推理、跨领域生成任务部分开源与闭源模型性价比相当
DeepSeek-R1未公开(对标o1)深度推理模型支持联网搜索,数学/编程竞赛表现超越GPT-4o,中文写作能力顶尖24GB+(单卡RTX 5090)高难度推理、实时数据分析、创意写作API价格仅为o1的3.7%
DeepSeek-R1-Zero同R1原生版本未蒸馏原版推理模型完整保留R1推理链,支持数万字思维链生成24GB+学术研究、复杂问题拆解免费使用
DeepSeek-R1-Distill-Llama-70B70BLlama架构蒸馏版保留70%原模型能力,支持长文本生成48GB(双卡并行)企业级文档处理、多轮对话系统训练成本降低60%
DeepSeek-R1-Distill-Qwen-32B32BQwen架构蒸馏版优化代码生成稳定性,适配国产GPU(如芯瞳CQ2040)24GB+工业自动化、代码辅助开发国产硬件适配成本低
DeepSeek-R1-Distill-Qwen-14B14BQwen轻量级蒸馏版平衡性能与资源消耗,支持动态批处理16GB+中小企业智能客服、数据分析单卡部署性价比最优
DeepSeek-R1-Distill-Llama-8B8BLlama超轻量蒸馏版支持端侧部署,响应速度达200 tokens/s8GB+移动端应用、边缘计算场景边缘设备适配成本极低
DeepSeek-R1-Distill-Qwen-7B7BQwen微型蒸馏版中文NLP任务优化,文风模拟精度达85%8GB+社交媒体文案生成、个性化推荐适合初创团队低成本试水
DeepSeek-R1-Distill-Qwen-1.5B1.5BQwen极轻量蒸馏版最低硬件门槛,支持实时交互4GB+智能家电控制、简单问答系统物联网设备批量部署首选

我们目标模型为deepseek-ai/DeepSeek-R1-Distill-Qwen-7B模型

huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local-dir DeepSeekR1 --resume-download

关键参数说明:

–local-dir: 指定本地存储路径, 我起了文件夹,命名为DeepSeekR1
–resume-download: 支持断点续传

步骤三:安装vLLM

推荐使用venv创建隔离环境:

python -m venv vllm-env
source vllm-env/bin/activate
pip install vllm torch

验证安装:

python -c "from vllm import LLM; print('vLLM version:', LLM().__class__)"

步骤四:使用vLLM部署模型

启动API服务器

vllm serve DeepSeekR1 --port 8000 --max-model-len 16384\--gpu-memory-utilization 0.9 > vllm.log 2>&1

参数说明

–max-model-len: 允许模型最大大小
–gpu-memory-utilization: 显存利用率设置 (数值太小,模型跑不起来,或者不用这个参数)

查看vllm.log,
在这里插入图片描述

nvidia-smi查看内存情况,大概运行了20G左右的显存
在这里插入图片描述

步骤五:测试推理服务

使用ApiFox(类似postman)测试

{"model": "DeepSeekR1","prompt": "请解释量子计算的基本原理","role": "user","max_tokens": 1024
}

在这里插入图片描述

Python客户端示例

from litellm import completion
import osos.environ["OPENAI_API_BASE"] = "http://192.168.0.110:8000/v1"  # 仅保留到 /v1
os.environ["OPENAI_API_KEY"] = "no-key-required"response = completion(model="DeepSeekR1",  # 确保与 vLLM 启动时的模型名称一致messages=[{"role": "user", "content": "如何快速学习Python编程?"}],  # 使用 "content" 而非 "prompt"custom_llm_provider="openai",temperature=0.7,max_tokens=1024,
)print(response.choices[0].message.content)

deepseek回答:

嗯,我现在想学习Python编程,但感觉有点难,不知道从哪里开始。先看看别人是怎么学的吧。好的,首先,我应该先了解基础语法。Python的变量、数据类型、运算符这些是基础,对吧?比如变量的声明,整数、字符串这些数据类型,还有一些运算符怎么用,应该先把这些弄明白。可能得花点时间写一些简单的代码,比如打印“Hello World!”,然后看看变量怎么用,比如a=5,b=“hello”,然后a + b会报错,因为类型不对,但至少知道它们是不同的类型。接下来是流程控制,这部分包括条件语句和循环。条件语句比如if-else,用来判断不同的情况,循环的话像for循环和while循环。比如用for循环遍历一个列表,打印每个元素,或者用while循环不断让变量增减直到满足某个条件。这部分可能需要多写一些循环结构的代码,比如计算阶乘或者找出质数之类的。然后是函数。函数可以让代码更模块化,更易读。学习如何定义函数,传递参数,返回值。比如写一个函数来计算两个数的和,或者更复杂的比如排序函数。理解默认参数和可变参数也是有必要的,这样在需要时能灵活使用函数。接下来是模块和库。Python有很多标准库,比如math库、datetime库,这些可以扩展功能。学习如何导入和使用模块,可能还需要了解如何查找帮助文档。比如,当我不记得某个函数怎么用的时候,可以用help函数看看文档,这样就能找到解决问题的方法。然后是面向对象编程,这部分可能有点难。理解类和对象的概念,构造函数,属性和方法,继承和多态性。比如写一个Rectangle类,继承自形状基类,然后定义宽度和高度,计算面积和周长。这有助于以后处理更复杂的问题,结构更清晰。数据结构也是必须学习的,比如列表、元组、字典、集合。掌握它们的操作,比如添加、删除、查找、排序等。比如用字典来存储用户信息,键是用户名,值是用户资料,这样访问起来方便。学习列表的高级操作,比如列表推导式,或者切片,这些在数据处理中非常有用。异常处理也很重要,编程中可能会遇到意外情况,比如文件读取错误或者除以零的情况。学习如何用try-except语句来捕获和处理异常,这样程序会更健壮,不会崩溃。然后是版本控制,使用Git来管理代码仓库。学习如何克隆仓库、分支、合并、commit等基本操作。这对于以后和团队合作或者长期项目管理很有帮助。可能需要花点时间熟悉这个工具,因为很多人使用它来管理项目。最后是做项目来巩固学习。找到一个项目,比如计算器、脚本处理工具、游戏程序,然后一步步实现。通过实际项目,能够将所学知识应用起来,发现不足并加以改进。比如做一个计算器,实现加减乘除,甚至括号运算,这样就能理解运算优先级和错误处理。还需要注意实践,写代码的时候要多思考,理解每个部分的作用,而不是只看别人写的代码。不要害怕犯错,调试能力也很重要,学会如何通过调试器一步一步排查问题。保持耐心也很关键,编程不是一天就能掌握的,需要持续学习和练习。可能刚开始会觉得枯燥,但坚持下去,一定能有收获。对了,可能还有模块化开发和代码注释的部分,这部分可以分阶段学习。先了解模块的作用,再学习注释,这样代码更容易被理解和维护。比如使用装饰器来简化代码结构,或者用注释来解释复杂的逻辑。总之,学习Python编程需要系统地掌握基础知识,逐步深入,多实践,多练习,遇到问题及时解决,这样才能逐渐掌握这门编程语言。
</think>学习Python编程需要系统地掌握基础知识,并逐步深入,同时通过实践来巩固和应用所学知识。以下是一个有条理的学习步骤指南:1. **了解基础语法**- **变量和数据类型**:学习整数、字符串、浮点数等数据类型,以及变量的声明和赋值。- **运算符**:掌握算术、比较、逻辑和位运算符,理解运算优先级。- **字符串操作**:学习字符串的切片、拼接、格式化等操作。2. **掌握流程控制结构**- **条件语句**:使用`if`、`elif`、`else`语句进行条件判断和分支处理。- **循环结构**:学习`for`循环和`while`循环的使用,以及如何处理循环中的常见问题,如无限循环。3. **学习函数和模块**- **函数定义和调用**:理解函数

查看vllm.log
在这里插入图片描述

性能优化建议

  1. 启用连续批处理(默认已开启)
  2. 调整–max-num-seqs参数控制并发量
  3. 使用AWQ量化技术减少显存占用
  4. 监控GPU使用情况:nvidia-smi -l 1

常见问题排查

  1. CUDA版本不匹配

确认CUDA版本:nvcc --version
重新安装对应版本的vLLM

  1. 模型加载失败
# 检查模型完整性
huggingface-cli download --repo-type model --revision main deepseek-ai/deepseek-llm-7b-chat --local-dir ./deepseek-7b-chat
  1. 显存不足

降低–gpu-memory-utilization
使用–quantization awq参数

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词