在Ubuntu 20上利用vLLM摆设DeepSeek大模型的完整指南

打印 上一主题 下一主题

主题 968|帖子 968|积分 2904

媒介
随着大语言模型(LLM)的快速发展,如何高效摆设和运行这些模型成为开辟者关注的重点。本文将演示在Ubuntu 20系统环境下:
   利用huggingface-cli下载DeepSeek模型
通过vLLM实现高性能模型推理
创建简朴的API服务
  环境准备
系统要求
   Ubuntu 20.04 LTS
NVIDIA显卡驱动 ≥ 515.48.07
CUDA 11.8+
Python 3.8+
  基础依赖安装
  1. sudo apt update && sudo apt install -y python3-pip git nvidia-cuda-toolkit
复制代码
步骤一:安装Hugging Face工具


  • 安装huggingface_hub
  1. pip install huggingface_hub
复制代码

  • 置访问令牌(如需下载私有模型)
  1. huggingface-cli login
  2. # 输入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模型
  1. huggingface-cli download --resume-download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B --local-dir DeepSeekR1 --resume-download
复制代码
关键参数阐明:
   –local-dir: 指定当地存储路径, 我起了文件夹,定名为DeepSeekR1
–resume-download: 支持断点续传
  步骤三:安装vLLM

保举利用venv创建隔离环境:
  1. python -m venv vllm-env
  2. source vllm-env/bin/activate
  3. pip install vllm torch
复制代码
验证安装:
  1. python -c "from vllm import LLM; print('vLLM version:', LLM().__class__)"
复制代码
步骤四:利用vLLM摆设模型

启动API服务器
  1. vllm serve DeepSeekR1 --port 8000 --max-model-len 16384\
  2.   --gpu-memory-utilization 0.9 > vllm.log 2>&1
复制代码
参数阐明
   –max-model-len: 允许模型最大大小
–gpu-memory-utilization: 显存利用率设置 (数值太小,模型跑不起来,或者不用这个参数)
  检察vllm.log,

nvidia-smi检察内存情况,大概运行了20G左右的显存

步骤五:测试推理服务

利用ApiFox(类似postman)测试
  1. {
  2.     "model": "DeepSeekR1",
  3.     "prompt": "请解释量子计算的基本原理",
  4.     "role": "user",
  5.     "max_tokens": 1024
  6. }
复制代码

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

性能优化建议


  • 启用连续批处理(默认已开启)
  • 调解–max-num-seqs参数控制并发量
  • 利用AWQ量化技能减少显存占用
  • 监控GPU利用情况:nvidia-smi -l 1
常见题目排查


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

  • 模型加载失败
  1. # 检查模型完整性
  2. huggingface-cli download --repo-type model --revision main deepseek-ai/deepseek-llm-7b-chat --local-dir ./deepseek-7b-chat
复制代码

  • 显存不敷
   降低–gpu-memory-utilization
利用–quantization awq参数

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

半亩花草

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表