前言
自从deepseek R1发布之后,deepseek便爆火
爆火以后便应了“人红是非多”那句话,不但遭受各种大规模攻击,即便后来挡住了大部分攻击,但海内外大量闯入deepseek官网一探究竟的网友也把他们的服务器压得不堪重负
导致一提问,要么频繁显示:服务器繁忙,请稍后再试;要么回答了 但无法联网,致使我朋友圈内一些不知情的朋友说:看把媒体给能的,各种瞎吹,但其实不过尔尔…
怎么办呢?
-
一方面,微信上的好友老师木发圈表示
“ 这个春节有点特别,虽然没有休息一天,大家也没有怨言。看到DeepSeek创造的一个又一个奇迹,我很焦急但苦于没有资源,同事突发奇想:国产卡多,用国产卡吧 ”
于是,在25年的2.1日,硅基流动 x 华为云联合推出基于昇腾云的 DeepSeek R1 & V3 推理服务!个人认为这是国产GPU替代英伟达GPU之路的里程碑时刻
虽然在此之前,华为以及不少国内公司在GPU国产化上做了很多工作、努力,而且在不少政务单位已经做了很多替代
但我们过去两年 对外接各种大模型项目的时候——我司「七月在线」除了开发一系列内部产品 也对外接各种项目,不论是客户还是我们内部,对国产GPU是否好适配、以及适配之后是否丝滑好用 始终存在着一定的担忧我相信,这一情况会随着本次的「昇腾云的 DeepSeek R1 & V3 推理服务」而越来越好
-
二方面,我原本不想看什么本地部署的,也不得不关注下各种版本下的本地部署
本文便来重点探讨各种版本下、各种情况下的DeepSeek-R1的本地部署「当然,某乎上也有很多类似“ 如何在本地部署DeepSeek-R1模型?” 的帖子,但有了本文之后,你基本上不用再看别的帖子了」
如此,本文来了,以下是本文的更新记录「本文不用付费、不用各种附加条件,直接看即可,且涵盖各种版本的部署、各种交互模式、各种额外功能比如联网、知识库——齐活」
-
2.3日下午,在我自己的iMac上本地部署了下R1 7B蒸馏版,详见下文的
2.1.1 Ollama下的终端命令行交互
2.1.2 Ollama下的open-webui交互:基于docker安装,且支持联网搜索 -
2.4日晚上,可能是自己早已习惯在博客中尽可能把所有细节一次性讲清楚
所以我自己又尝试了
2.1.3 基于Ollama + ChatBox部署deepseek-r1:7b
2.2.1 基于Ollama + Page Assist搭建本地知识库问答系统:且支持联网搜索且同时让同事文弱尝试了通过vLLM推理deepseek-r1,也已更新在了下文的
2.3 通过vLLM推理deepseek-r1 -
2.5日早上,再度尝试了
2.2.2 基于Ollama + AnythingLLM搭建本地知识库问答
第一部分 本地部署之前的准备工作:各个版本、推理框架、硬件资源
**1.1 DeepSeek-R1的多个版本:**加上2个原装671B的,总计8个参数版本
在huggingface上总共有以下几种参数的deepseek R1
- DeepSeek-R1 671B
- DeepSeek-R1-Zero 671B
- DeepSeek-R1-Distill-Llama-70B
- DeepSeek-R1-Distill-Qwen-32B
- DeepSeek-R1-Distill-Qwen-14B
- DeepSeek-R1-Distill-Llama-8B
- DeepSeek-R1-Distill-Qwen-7B
- DeepSeek-R1-Distill-Qwen-1.5B
1.2 主流的大模型推理框架:分为PC端和Android端
首先,看推理框架,目前主流的大模型推理框架主要有以下5种:
- SGLang
完全支持 BF16 和 FP8 推理模式下的 DeepSeek-V3 模型 - Ollama,相对简单易用,大众用户首选
- vLLM,开发者首选,便于商业化诉求
支持 FP8 和 BF16 模式的 DeekSeek-V3 模型,用于张量并行和管道并行
详见:一文通透vLLM与其核心技术PagedAttention:减少KV Cache碎片、提高GPU显存利用率(推理加速利器) - LLaMA.cpp
- MNN-LLM,偏Android手机端
MNN-LLM展现了卓越的CPU性能,预填充速度相较于llama.cpp提高了8.6倍,相较于fastllm提升了20.5倍,解码速度分别快了2.3倍和8.9倍
更多详情,请参见论文《MNN-LLM: A Generic Inference Engine for Fast Large Language Model Deployment on Mobile Devices》
1.3 不同参数的模型所要求的硬件
其次,看硬件要求,很显然,不同参数的模型所要求的硬件各不相同(下表修改自微信好友杨老师整理的表格)
模型参数 | 最低GPU配置 | 最低CPU配置 | 建议内存 | 建议硬盘空间 |
---|---|---|---|---|
R1 or R1-Zero 满血版 | ||||
A/H100(80G) x 16-18 |
某乎上便有篇文章:16张H100部署模型DeepSeek-R1
值得一提的是,A100/A800原生并不支持FP8运算,如果A800要执行FP8精度计算,需要在指令层面进行模拟(存在精度转换计算)
如下图所示(图源)
| Xeon 8核 | 192GB | 2TB固态 |
| R1-distill-llama70B | RTX 4090(24GB) x 2 | i9-13900K | 64GB | 1TB固态 |
| R1-distill-Qwen32B | RTX 4090(24GB) | i7-13700K | 64GB | 1TB固态 |
| R1-distill-Qwen14B | RTX 4060S(16GB) | Ryzen 7 | 32GB | 500G固态 |
可以看到
-
完全开源的DeepSeek-R1 671B参数进行本地私有化部署的显卡资源要求极高
包括我司七月在线内部之前也最多用过8张80G的A100——通过1.5K条paper-review数据微调LLaMA2 70B「详见此文《七月论文审稿GPT第4.2版:通过15K条paper-review数据微调Llama2 70B(含各种坑)》」 -
由于 FP8 训练是Deepseek 的框架中原生采用的,故DeepSeek-R1/3均(DeepSeek-R1基于DeepSeek-V3-base后训练)均为FP8精度训练「详见此文《一文通透让Meta恐慌的DeepSeek-V3:在MoE、GRPO、MLA基础上提出Multi-Token预测(含FP8训练详解)》」,下图是各个精读的对比(图源)
详见:
一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答_知识图谱_AI-智能-DeepSeek技术社区