前言
最近因为访问人数过多,大家在访问Deepseek官网或是使用手机APP版本的时候,经常会遇到服务器繁忙,请稍后再试的情况。于是就出现了很多本地部署DeepSeek大模型的文章或者视频教程,但是跑跑轻量级的还好,如果想体验满血版DeepSeek R1 671B这种几百个G的大模型,那在本地部署所需的硬件配置与费用也会更高。
各种版本的DeepSeek参数和本地部署的要求大家可以参考下图:
为了能花更少的钱体验到满血版的DeepSeek和蒸馏版的到底使用起来有什么区别,笔者尝试使用一套更具性价比的硬件配置挑战将DeepSeek R1 671B 的满血量化版Q4大模型运行在个人PC上,成本压缩在1.5万,经过测试,跑出的速度可达到2.18 tokens/s ,基本可用,如下图所示:
下面就来详细分享一下具体配置与实际运行效果。
- 硬件配置
服务器:技嘉X99
CPU:单路E5-2673v4
显卡:2080Ti 22G*4
内存:512G
机箱:工作站全塔机箱
电源:1200W
- 软件配置
操作系统:Ubuntu 22.04.5
本地大模型运行工具:Ollama
curl -fsSL https://ollama.com/install.sh | sh
大模型:DeepSeek R1 671B满血量化版 404GB
ollama run deepseek-r1:671b
- 调优配置
如果按默认安装Ollama会报内存溢出错误,这里配置了几个调优参数,可以使得显卡不再内存溢出,会使用内存当显存,同时因为是4张显卡启动,所以在开机初始化时,加了延迟10秒启动Ollama,这样会让4张显卡启动正常后,再加载Ollama。
ExecStartPre=sleep 10
Environment=”OLLAMA_HOST=0.0.0.0″
Environment=”GGML_CUDA_ENABLE_UNIFIED_MEMORY=1″
- 实际运行效果
首先ssh登录到服务器后,查看Ollama当前环境所有大模型列表:
ollama list
可以看到,当前已经下载好的deepseek-r1:671b满血全量模型,大小 404GB
然后运行Deepseek R1 671B:
ollama run deepseek-r1:671b
进入运行画面后,设置输出明细信息:/set verbose
这里加载可能需要一些时间,加载完成后进行提问,即能看到实际运行的速率了:
- 安装Dify服务
如果想要在网页中与Deepseek大模型交互,我们可以使用Docker来本地部署Dify服务来实现,首先需要安装Docker:
sudo curl -fsSL https://gitee.com/tech-shrimp/docker_installer/releases/download/latest/linux.sh | bash -s docker –mirror Aliyun
然后本地部署Dify:
克隆 Dify 源代码至本地环境:
git clone https://github.com/langgenius/dify.git
环境配置:
cd dify/docker #进入 Dify 源代码的 Docker 目录
cp .env.example .env #复制环境配置文件
启动容器:
sudo docker compose up -d
Dify 接入Ollama:
进入Dify主界面,点击设置—模型供应商—Ollama,添加模型名称,基础URL,支持Vision保存。
回到主页面当中,点击创建空白应用,选择deepseek-r1:671b模型,在文本框中编辑文字即可进行对话。
6.安装内网穿透远程访问
如果想实现其他用户跨网络环境,远程访问本地部署的Deepseek R1 671B,可以通过安装cpolar内网穿透工具实现。
sudo curl https://get.cpolar.sh | sh
安装完成后,执行下方命令查看cpolar服务状态:(如图所示即为正常启动)
sudo systemctl status cpolar
Cpolar安装和成功启动服务后,在浏览器上输入Ubuntu主机IP加9200端口即:【http://localhost:9200】访问Cpolar管理界面,使用Cpolar账号登录后即可看到配置界面:
点击左侧仪表盘的隧道管理——创建隧道:
隧道名称:可自定义,本例使用了: dify 注意不要与已有的隧道名称重复
协议:http
本地地址:80
域名类型:随机域名
地区:选择China Top
点击创建
创建成功后,打开左侧在线隧道列表,可以看到刚刚通过创建隧道生成了两个公网地址,接下来就可以在其他电脑(异地)上,使用任意一个网址在浏览器中访问即可。
成功实现使用公网地址异地远程访问本地部署的Dify在网页中与Deepseek R1 671B聊天了!
为了方便演示,我们在上边的操作过程中使用了cpolar生成的公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用,然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
如果有长期远程访问本地 Dify开发应用平台或者其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想地址好看又好记,那我推荐大家选择使用固定的二级子域名方式来远程访问,带宽会更快,使用cpolar在其他用途还可以保留多个子域名,支持多个cpolar在线进程。
配置固定Dify公网地址
我们可以为Dify配置二级子域名,该地址为固定地址,不会随机变化【ps:cpolar.cn已备案】
注意需要将cpolar套餐升级至基础套餐或以上,且每个套餐对应的带宽不一样。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,地区选择china vip,然后设置一个二级子域名名称,填写备注信息,点击保留。
然后登录cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道:dify,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
域名类型:选择二级子域名
Sub Domain:填写保留成功的二级子域名
地区: China VIP
点击更新
更新完成后,打开在线隧道列表,此时可以看到随机的公网地址已经发生变化,地址名称也变成了保留和固定的二级子域名名称。
最后,我们使用固定的公网地址访问 Dify 界面可以看到访问成功,这样一个永久不会变化的网址就设置好了。
接下来就可以随时随地进行cpolar生成的公网地址来远程使用本地部署的Dify与deepseek满血大模型聊天了,你也可以把分享这个固定的公网地址,方便团队协作,同时也大大提高了工作效率!自己用的话,无需云服务器,还可以实现异地其他设备登录!
总结
本次挑战中,笔者使用的基本均为多年前上市但极具性价比的硬件来实现本地部署deepseek满血大模型,并结合cpolar内网穿透工具将你本地的deepseek服务发布公网,轻松实现让好友或是同事也能远程访问你在本机部署的大模型,无需二次部署,节省成本的同时也不用再体验deepseek服务器繁忙的情况了。
目前笔者正在测试新的部署方案,期望是达成提高每秒tokens速度的同时还能进一步降低硬件的配置预算,敬请期待,如果感觉本篇文章对您有帮助的小伙伴,希望大家可以点赞、留言、分享来支持一下。如果您在本地配置过程中,遇到了什么问题,也欢迎在下面留言,互相学习交流。