本地部署 DeepSeek-R1-671B 满血版大模型

DeepSeek-R1大模型具备深度思考和推理能力,在数学、代码、自然语言推理等任务上都有着极大的提升。一方面由于官方或第三方的在线服务或多或少存在不稳定的问题,另一方面考虑到数据安全和隐私问题,本地私有化部署DeepSeek开源大模型对个人或企业来说也是一种不错的选择。本文主要介绍完整参数版本 deepseek-r1-671b 模型的部署和测试过程,对 deepseek-v3-671b 以及其他更小参数版本的模型同样适用。

前言

DeepSeek-R1 模型的最大参数版本是 671B (6710亿参数),同时提供 1.5B ~ 70B的小参数蒸馏版本,可根据机器资源选择适合的模型版本。选择的依据主要看显存的大小,一般来说我们需要至少能支持把整个模型文件都加载到显存中,才能完全发挥GPU的计算能力,保证一定的运行速度。

ollama 是一个模型管理的开源框架,可以通过这个工具下载、运行、管理大模型。ollama是目前最简单的本地运行大模型的开源框架,也是本文中使用的框架。在 ollama 的模型仓库中可以查看不同模型需要占用的空间大小:

[外链图片转存中…(img-e6ElGTL5-1740024258203)]

ollama 中的模型默认是经过 INT4量化的,即通过略微损失一定精度来压缩模型文件的大小。根据图中不同参数的模型大小可以看出 1.5b ~ 32b 模型都是有可能在个人电脑中部署运行的。

1.5b模型基本可以在大部分个人电脑甚至手机中运行,如果你有 6G 显存以上,那么可以部署7b模型,如果有16G显存,可以尝试14b的模型。而对于32b的模型,则需要24G显存的显卡,例如 3090 / 4090 系列;70B模型,则需要至少2张24G显存的显卡。 如果显存资源不足但内存足够,也可以尝试运行,只不过会使用CPU+GPU混合推理的模式,运行速度相比单纯的GPU模式会下降很多。

注:DeepSeek提供的1.5B ~ 70B的小参数R1模型是通过"蒸馏"产生的。蒸馏是一个知识迁移的过程,以其他开源模型(如qwen、llama)作为基座,用DeepSeek-R1大模型对这些模型进行训练,让这些参数较小的模型学习R1的生成结果、思考过程等,在显著降低模型参数规模的同时能保留一定的性能和精度。

准备

DeepSeek-R1的官方满血版精度为FP8,总大小大概在700G左右,Ollama提供的量化版本大小为 404GB,我们选择使用8块A800显卡来运行该模型,总显存为640GB,在能装下全部模型的情况下还为长上下文情况预留一定空间。

1.环境准备

硬件环境如下:

  • GPU:8 * A800 (至少需要6卡)
  • 显存:8 * 80G
  • vCPU:112核
  • 内存:224G

软件环境如下:

  • 操作系统:ubuntu 20.04
  • PyTorch:2.6.0
  • CUDA:12.2
  • ollama:最新版本

linux环境下在终端执行 nvidia-smi 可查看显卡信息:

model list

成本:单张 A100/A800 显卡购买价格预估在10万元左右,在线上租赁平台租用的价格大概在 5元/小时/卡 左右。如果对性能有更高要求,还有 H100/H800、H20 等显卡可选择。

2.Ollama 安装

前往

### 部署 DeepSeek-R1-671B 模型 对于 DeepSeek-R1-671B 的本地部署,过程类似于较小本的 DeepSeek-R1 模型。然而,由于该模型规模更大,资源需求也更高。 #### 准备环境 为了准备适合运行大型模型如 DeepSeek-R1-671B 的环境,建议使用具备强大计算能力和充足内存的工作站或服务器。确保操作系统已更新至最新状态,并安装必要的依赖项。 #### 安装 Ollama 和配置环境变量 按照官方指南操作,在目标机器上完成 ollama 工具链的安装: ```bash # 下载并安装 ollama curl -fsSL https://example.com/install.sh | sh - ``` 确认 `ollama` 命令能够正常工作后,将其路径添加到系统的 PATH 环境变量中以便全局调用。 #### 获取 DeepSeek-R1-671B 模型文件 启动命令行工具(例如 Windows PowerShell),利用 ollama 来拉取指定的大尺寸预训练模型: ```powershell PS C:\> ollama run deepseek-r1:671b ``` 等待下载完成后即可开始加载此大规模参数量的语言理解与生成框架实例。 #### 执行压力测试 针对已经成功部署好的 DeepSeek-R1-671B 实施性能评估之前,先要设计合理的负载场景来模拟真实应用场景下的请求模式。可以采用如下几种方式进行压测: - **并发访问**:创建多个线程或进程同时向服务端发送查询请求; - **持续时间**:设定固定的测试周期内保持一定频率的数据交互; - **数据集大小变化**:调整每次处理的任务复杂度以及输入长度; 具体实施时可借助专业的自动化测试平台或者编写简单的脚本来辅助完成上述任务。下面给出一段 Python 脚本作为参考案例用于发起批量 API 请求来进行初步的压力检测: ```python import requests from concurrent.futures import ThreadPoolExecutor, as_completed def send_request(url, payload): response = requests.post(url=url, json=payload) return response.status_code == 200 if __name__ == "__main__": url = "http://localhost:port/predict" payloads = [{"text": f"Test {i}"} for i in range(100)] with ThreadPoolExecutor(max_workers=5) as executor: futures = [executor.submit(send_request, url, p) for p in payloads] success_count = sum(f.result() for f in as_completed(futures)) print(f"{success_count}/{len(payloads)} successful responses.") ``` 这段代码展示了如何通过多线程方式异步提交 POST 请求给预测接口,并统计返回成功的次数比例[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值