使用Ollama+Docker+Open-WebUI给linux服务器离线搭建内网版DeepSeek

一、DeepSeek 基础知识介绍

1. DeepSeek 是什么?

DeepSeek 是一款基于深度学习技术的大规模语言模型,旨在通过自然语言处理(NLP)技术实现智能问答、文本生成、数据分析等功能。它能够理解和生成自然语言,适用于多种场景,如智能客服、文档生成、代码辅助等。

2. 内网部署 DeepSeek 的作用

·数据安全:内网部署确保敏感数据不外泄,满足企事业单位对数据隐私和安全的高要求。避免内网敏感数据导出到外网后的泄密风险。

·定制化:可根据需求定制模型,优化特定任务的实现。

·高效响应:内网部署减少网络延迟,提升响应速度。不会出现高峰期提示“服务器繁忙,请稍后再试。”的问题。

·合规性:满足行业或地区的合规要求,避免法律风险。

3. 不同模型的区别

·模型规模:不同模型的参数量不同,参数量越大,模型能力通常越强,但计算资源需求也更高。以DeepSeek为例,现在有1.5B、7B、8B、14B、32B、70B、671B这些规模。这里的“B”通常表示“Billion”,即“十亿”。例如,一个7B的模型表示该模型有70亿个参数。参数量是衡量模型复杂度和性能的一个重要指标,通常参数越多,模型能够学习到的数据特征就越复杂,理论上可以提供更精确、更丰富的输出。    

·应用场景:不同模型针对不同任务优化,如有的擅长文本生成,有的擅长问答。

·训练数据:不同模型使用的训练数据集不同,影响其表现和适用场景。

·计算资源:大规模模型需要更多计算资源,小规模模型则更适合资源有限的环境。

           

参数量

含义

特点

1.5B

15亿参数

适合轻量级任务,如移动端或边缘设备。

7B

70亿参数

适合复杂对话、代码生成等任务,可在单卡GPU上运行。

13B

130亿参数

性能更强,适合复杂逻辑推理,需要专业GPU支持。

70B

700亿参数        

接近人类水平的泛化能力,适合专业领域推理,需要多卡或高端服务器级GPU。

671B

6710亿参数

超大规模模型,适合企业级应用,训练和推理成本极高。

选择模型大小时,需要根据具体的硬件条件和应用场景进行权衡。例如,资源有限的环境适合选择小模型(如1.5B),而追求高性能的场景则可以选择中等或大模型。

4. 什么是蒸馏?蒸馏技术和完整模型、量化模型的联系和区别是什么?

蒸馏(Knowledge Distillation)是一种模型压缩技术,通过将大模型(教师模型)的知识传递给小模型(学生模型),使小模型在保持较高性能的同时减少计算资源需求。蒸馏通常通过以下步骤实现:

·训练教师模型:先训练一个复杂的大模型。

·生成软标签:使用教师模型生成软标签(概率分布)。

·训练学生模型:学生模型学习模仿教师模型的输出。

完整模型、量化模型和蒸馏技术在深度学习模型优化中有着紧密的联系,但它们在目标、方法和应用场景上存在显著区别。以下是它们的联系与区别:

联系:    

1.目标一致:三者都旨在优化深度学习模型,使其在保持较高性能的同时,减少计算资源和存储需求,以便更好地部署在资源受限的环境中。

2.可结合使用:在实际应用中,量化和蒸馏技术可以结合使用,以实现更高效的模型压缩。例如,先通过蒸馏训练一个较小的学生模型,然后对学生模型进行量化,从而在保持性能的同时进一步减少模型大小。

区别

特性

完整模型

量化模型

蒸馏技术

定义

原始的、未经优化的深度学习模型,通常具有高精度但计算和存储成本高。

通过降低模型参数和激活值的数值精度(如从32位浮点数转换为8位整数)来减少模型大小和计算需求。

将大型教师模型的知识迁移到小型学生模型中,通过软标签指导学生模型的训练,使其在较小规模下接近教师模型的性能。

优化目标        

无优化,追求最高精度。

减少模型存储空间和计算成本,提高推理速度。

在保持较小模型规模的同时,尽可能保留教师模型的性能。

实现方法

直接训练得到的模型,不涉及优化。

训练后量化(PTQ)或量化感知训练(QAT)。

训练一个大型教师模型,然后用其输出指导小型学生模型的训练。

精度影响

通常具有最高的精度。

精度可能因量化而有所损失,但可以通过优化方法尽量减少这种损失。

学生模型的精度通常接近教师模型,甚至在某些情况下可以超过教师模型。

适用场景

适用于计算资源充足且对精度要求极高的场景。

适用于边缘计算、实时应用和大规模部署等对存储和计算资源要求严格的场景。

适用于资源受限的设备,如移动设备和嵌入式系统,以及需要快速推理的场景。

5. DeepSeek 相较于其他大模型的优势和特长

·高效性:DeepSeek 在保持高性能的同时,优化了计算资源使用,适合多种部署环境。

·定制化:支持根据企业需求定制模型,提升特定任务的表现。    

·数据安全:内网部署确保数据安全,适合对隐私要求高的场景。

·多语言支持:支持多种语言,适合国际化企业。

·易用性:提供友好的API和工具,便于集成到现有系统中。           

二、部署资源要求

部署资源要求,可以参看https://apxml.com/posts/gpu-requirements-deepseek-r1

完整模型:(通常指未经量化的原始深度学习模型,其参数和激活值通常以高精度的浮点数(如32位的FP32)表示)

Model

Parameters (B)

VRAM Requirement (GB)

Recommended GPU

DeepSeek-R1-Zero

671B

~1,543 GB

Multi-GPU setup (e.g., NVIDIA A100 80GB x16)

DeepSeek-R1        

671B

~1,543 GB

Multi-GPU setup (e.g., NVIDIA A100 80GB x16)

DeepSeek-R1-Distill-Qwen-1.5B

1.5B

~3.9 GB

NVIDIA RTX 3060 12GB or higher

DeepSeek-R1-Distill-Qwen-7B

7B

~18 GB

NVIDIA RTX 4090 24GB or higher

DeepSeek-R1-Distill-Llama-8B

8B

~21 GB

NVIDIA RTX 4090 24GB or higher

DeepSeek-R1-Distill-Qwen-14B        

14B

~36 GB

Multi-GPU setup (e.g., NVIDIA RTX 4090 x2)

DeepSeek-R1-Distill-Qwen-32B

32B

~82 GB

Multi-GPU setup (e.g., NVIDIA RTX 4090 x4)

DeepSeek-R1-Distill-Llama-70B

70B

~181 GB

Multi-GPU setup (e.g., NVIDIA A100 80GB x3)

量化模型:(通过将模型中的参数和激活值从高精度数值(如32位浮点数)转换为低精度数值(如8位整数或更低)来优化模型,以减少存储需求和计算成本)

Model

Parameters (B)

VRAM Requirement (GB) (4-bit)

Recommended GPU

DeepSeek-R1-Zero        

671B

~436 GB

Multi-GPU setup (e.g., NVIDIA A100 80GB x6)

DeepSeek-R1

671B

~436 GB

Multi-GPU setup (e.g., NVIDIA A100 80GB x6)

DeepSeek-R1-Distill-Qwen-1.5B

1.5B

~1 GB

NVIDIA RTX 3050 8GB or higher

DeepSeek-R1-Distill-Qwen-7B

7B

~4.5 GB

NVIDIA RTX 3060 12GB or higher

                   

                   

                   

                   

DeepSeek-R1-Distill-Llama-8B        

8B

~5 GB

NVIDIA RTX 3060 12GB or higher

DeepSeek-R1-Distill-Qwen-14B

14B

~9 GB

NVIDIA RTX 4080 16GB or higher

DeepSeek-R1-Distill-Qwen-32B

32B

~21GB

NVIDIA RTX 4090 24GB or higher

DeepSeek-R1-Distill-Llama-70B

70B

~46 GB

Multi-GPU setup (e.g. NVIDIA RTX 4090 24GB x2)

           

三、安装部署环境

现场安装部署服务器配置:    

CPU:Intel Xeno(R)Gold 5318Y CPU @ 2.10GHZ(96核)

GPU:英伟达T4 16G *2

内存:512G

硬盘:300G系统盘+1T数据盘

操作系统:CentOS 7.5           

四、安装步骤

所需离线安装文件进行了整合,文件结构如下:

图片

1、安装基础环境-GPU驱动

将“01_驱动/NVIDIA-Linux-x86_64-535.129.03.run”、“01_驱动/cuda_11.8.0_520.61.05_linux.run”这两个文件上传至到 Linux 系统任意目录下,如/home 下。            

切换到/home目录     

cd /home            

执行以下命令给包赋予可执行权限 

chmod +x NVIDIA-Linux-x86_64-535.129.03.run           

因为安装 GPU 驱动需要关闭图形界面,所以要执行以下命令来切换到命令行终端            

init 3           

执行以下命令安装 

./NVIDIA-Linux-x86_64-535.129.03.run --no-opengl-files            

在“Install NVIDIA's 32-bit compatibility libraries?”提示框中选择“Yes”,按 Enter 键,在界面选中“OK”,按 Enter 键,此时 NVIDIA GPU 卡驱动安装完毕。 安装完成执行命令 nvidia-smi 查看显卡信息,如回显中可以显示显卡的型号及相关信息,说明驱动安装正常。    

图片

执行命令 init 5 进入图形界面。

init 5

执行以下命令给包赋予可执行权限 

chmod +x cuda_11.8.0_520.61.05_linux.run

然后sh cuda_11.8.0_520.61.05_linux.run,根据提示输入accept,后面的提示默认按回车就行。

安装好之后执行nvidia-smi,可以看到cuda的版本号,上面的截图里可以看到。

我们这个环境里是两块显卡,用nvidia-smi命令也是上面的截图,可以看出显卡编号分别是0和1号。

执行命令export CUDA_VISIBLE_DEVICES=0,1

上面的命令作用是设置环境变量,限制 CUDA 程序能够访问的 GPU 设备。具体来说,这条命令表示只允许程序使用编号为 0 和 1 的 GPU 设备。避免多个程序同时占用同一块 GPU,导致资源竞争    

2、安装docker

将“02_docker” 包整个目录上传到服务器中

cd 02_docker 

yum install *.rpm 

若安装过程提示依赖冲突或缺少依赖,可以执行以下命令 

cp other/*.rpm ./ 

yum install *.rpm 

若还是缺少依赖,则需要从网站上面下载对应的包了,可以从此地址下载对应的包 http://mirror.centos.org/centos/7/os/x86_64/Packages/           

创建自启动服务

systemctl enable docker           

3、安装docker插件

将“03_docker_plugin” 文件目录上传到服务器中

cd 03_docker_plugin 

yum install *.rpm     

nvidia-docker 如果回显正常说明安装成功           

重启docker

systemctl restart docker           

4、安装ollama

将”04_ollama”文件目录上传到服务器中

cd 04_ollama

chmod +x install.sh

sudo sh install.sh           

输入ollama --version查看版本信息

图片

5、安装deepkeepr1大模型

将“05_deepseekR1整合包”文件目录上传到服务器上

cd 05_deepseekR1整合包

执行ollama create deepseekr1:7b -f ./deepseek-r1-7b.modelfile安装deepseek

其中deepseekr1:7b为模型名称,可以自定义

执行ollama list查看模型    

图片

然后执行ollama run deepseekr1:7b

此时可以提问测试模型情况           

如果要后台运行,执行nohup ollama run deepseekr1:7b >ollama.log 2>&1 &           

6、安装open-webui

将“06_open_webui”文件目录上传到服务器上

cd 06_open_webui

先导入镜像

docker load -i dyrnq-open-webui-main.tar

执行docker images查看镜像

图片

启动open-webui

执行docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always dyrnq/open-webui:main       此时可以客户端访问open-webui

http://服务器ip:8080

           

图片

需要用较高版本浏览器访问,如果显示空白,请升级浏览器版本,已测试360安全浏览器13.3版本和谷歌Chrome131版本是可以的。           

五、Open-WebUI配置说明

首次注册账号为管理员账号,其他用户账号由管理员在设置中创建,也可开启首页注册功能,也可以批量导入账号,其他功能大家可自行研究。

离线安装资源整合包已上传百度网盘。整理收集不易,大家可以请小编喝杯奶茶或者打赏,我给大家发整合包链接,包括1.5B到70B的模型包。安装遇到问题可以留言,我们也有技术交流群,我们都是热爱技术的一群人,欢迎加入一起交流分享。来吧,交个朋友!我们等着你!

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维技术小记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值