前言
DeepSeek 是一款开创性的开源大语言模型,凭借其先进的算法架构和反思链能力,为 AI 对话交互带来了革新性的体验。通过私有化部署,你可以充分掌控数据安全和使用安全。你还可以灵活调整部署方案,并实现便捷的自定义系统。
前置准备
硬件环境:
- CPU >= 2 Core
- 显存/RAM ≥ 16 GiB(推荐)
- GPU型号:Tesla V100-PCIE-32GB(也可以不使用GPU,不用GPU的话模型就选小一点)
软件环境:
- Docker
- Ollama
- Open WebUI
- CUDA:
Driver Version: 550.90.07 CUDA Version: 12.4
开始部署
前提提示:
本篇以容器化部署为主!!!
本篇使用Singularity容器进行部署使用(Singularity后来改名为Apptainer,与Docker类似)。我会尽量附上docker命令,但不保证docker命令完全可行。
运行ollama并使用deepseek大模型
编译/拉取 ollama 镜像:https://hub.docker.com/r/ollama/ollama
singularity build --sandbox ollama-0.5.7 docker://ollama/ollama:0.5.7
docker命令:
docker pull ollama/ollama:0.5.7
运行ollama镜像
singularity shell --nv ollama-0.5.7/
docker命令:
docker run -d --gpus --name ollama --network=host ollama/ollama:0.5.7
进入容器并下载deepseek-r1模型
ollama serve & # 需要先后台运行ollama服务,之后才能使用ollama ollama run deepseek-r1:14b # 会默认保存在 ~/.ollama 目录
docker命令:
docker exec -it ollama bash # 进入容器命令 ollama run deepseek-r1:14b # 拉取并使用deepseek-r1模型(如果命令不能使用,检查一下ollama是否运行了)
在命令运行成功后,会直接进入模型对话框(首次需要下载模型会比较慢),如下:
Apptainer> ollama run deepseek-r1:14b pulling manifest pulling 6e9f90f02bb3... 100% ▕██████████████████████████████████████████████████████████████████████▏ 9.0 GB pulling 369ca498f347... 100% ▕██████████████████████████████████████████████████████████████████████▏ 387 B pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████████████████████████████████████▏ 1.1 KB pulling f4d24e9138dd... 100% ▕██████████████████████████████████████████████████████████████████████▏ 148 B pulling 3c24b0c80794... 100% ▕██████████████████████████████████████████████████████████████████████▏ 488 B verifying sha256 digest writing manifest success >>> 你是谁 <think> </think> 您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。 >>> /bye
其实到这里就可以正常使用了,但是不美观,且没法上传文件,接下来使用open-webui。
运行Open WebUI
编译/拉取 open-webui镜像:
官方文档给出的镜像为:
ghcr.io/open-webui/open-webui:main
dockerhub上有一个同步的镜像仓库是:
dyrnq/open-webui
,地址为:https://hub.docker.com/r/dyrnq/open-webui
最初是因为看到可以open-webui中有打好的ollama版本,但这里并没有使用,所以只是当做webui来用(拉取不带ollama的版本就行了)。
singularity build --sandbox open-webui-ollama docker://dyrnq/open-webui:main-ollama
docker命令:
docker pull dyrnq/open-webui:main-ollama
运行容器
容器内需要持久化的目录为:
/app/backend/data
singularity exec --nv --writable-tmpfs -B /home/hpcadmin/wuye/deepseek/open-webui-data:/app/backend/data \ --env PORT=$WEB_UI_PORT --env AIOHTTP_CLIENT_TIMEOUT=1200 --env USE_OLLAMA_DOCKER=false --env OLLAMA_BASE_URL=http://10.240.214.77:11434 \ /home/hpcadmin/wuye/build_image/open-webui/ bash -c 'cd /app/backend/ && bash start.sh'
docker命令:
docker run -d -p 3000:8080 -e AIOHTTP_CLIENT_TIMEOUT=1200 -e OLLAMA_BASE_URL=http://10.240.214.77:11434 -v open-webui:/app/backend/data --name open-webui --restart always dyrnq/open-webui:main-ollama
然后你就可以打开浏览器去访问了(Open WebUI需要先创建用户登录进去使用)。如图: