春节期间,DeepSeek 的横空出世引发了广泛关注。作为一款强大的语言模型,DeepSeek 因其强大的功能和广泛的应用而受到用户的热烈追捧。然而,随着使用量的不断增加,我们在使用过程中经常遇到“服务器繁忙”,令人破防。
![](https://static1.juicefs.com/images/1_qCRNdWA.original.png)
为了解决这一问题,本文将探讨如何通过本地部署 DeepSeek 服务,打造一个高效自主的使用环境。通过结合 JuiceFS 的存储能力和 Ollama 的部署优势,用户可以轻松建立自己的“DeepSeek 牧场”,从而实现更灵活、更高效的模型使用体验。
JuiceFS:打造数字牧场
JuiceFS 是一款性能卓越的分布式文件系统,同时支持数据预热、分布式缓存等功能,天然地适合作为大模型的共享存储。在大模型服务就绪前,其模型文件就已经在本地,不需要另外从远端拉取,进一步节省 GPU 的运行时间。并且,在启动多个 Ollama 服务时,可以共享模型文件,不需要重复拉取。
只需要将 JuiceFS 挂载在 Ollama 的模型文件路径即可。准备 JuiceFS 只需一行命令:
$ juicefs mount weiwei-oss /root/.ollama --subdir=ollama
..OK, weiwei-oss is ready at /root/.ollama
Ollama:牧场的得力农场主
Ollama 是一个简化大模型部署和运行的工具,一方面通过提供类 Docker 的使用方式,运行一个大模型实例就和启动一个容器一样简单,另一方面,通过提供 OpenAI 兼容的 API,磨平大模型之间的使用差异。
从官方下载并安装 Ollama:
curl -fsSL https://ollama.com/install.sh | sh
养殖 DeepSeek 模型
按需选择拉取模型,本文以 8b 模型为例:
$ ollama pull deepseek-r1:8b
pulling manifest
pulling 6340dc3229b0... 100% ▕██████████████████████████████████████████████████████████████▏ 4.9 GB
pulling 369ca498f347... 100% ▕██████████████████████████████████████████████████████████████▏ 387 B
pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████████████████████████████▏ 1.1 KB
pulling f4d24e9138dd... 100% ▕██████████████████████████████████████████████████████████████▏ 148 B
pulling 0cb05c6e4e02... 100% ▕██████████████████████████████████████████████████████████████▏ 487 B
verifying sha256 digest
writing manifest
success
放牧模型群
一切准备就绪后,可以在各个环境都运行 Ollama,并提供 DeepSeek 服务。
Linux 环境
在 Linux 环境中,JuiceFS 支持一键将挂载信息写入 /etc/fstab
,实现开机自动挂载。
$ sudo juicefs mount --update-fstab weiwei-oss /root/.ollama --subdir=ollama
Ollama 可以用 systemd 安装,且设置在 JuiceFS 后启动:
$ cat > /etc/systemd/system/ollama.service << EOF
[Unit]
Description=Ollama Service
After=network.target jfs.mount
[Service]
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
Environment=HOME=/root
Environment=OLLAMA_HOST="0.0.0.0"
[Install]
WantedBy=default.target
EOF
$ sudo systemctl daemon-reload
$ sudo systemctl start ollama
Kubernetes 环境
在 Kubernetes 集群中也可以快速部署。JuiceFS 提供了 CSI Driver,只需要声明 PVC 和 PV,即可使用:
apiVersion: v1
kind: PersistentVolume
metadata:
name: ollama-vol
labels:
juicefs-name: ollama-vol
spec:
capacity:
storage: 10Pi
volumeMode: Filesystem
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
csi:
driver: csi.juicefs.com
volumeHandle: ollama-vol
fsType: juicefs
nodePublishSecretRef:
name: ollama-vol
namespace: kube-system
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: ollama-vol
namespace: default
spec:
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 10Gi
selector:
matchLabels:
juicefs-name: ollama-vol
部署 Ollama 时使用 JuiceFS 的 PVC:
apiVersion: apps/v1
kind: Deployment
metadata:
name: ollama
spec:
replicas: 1
selector:
matchLabels:
app: ollama
template:
metadata:
labels:
app: ollama
spec:
containers:
- image: registry.cn-hangzhou.aliyuncs.com/hdls/ollama:0.5.7
env:
- name: OLLAMA_HOST
value: "0.0.0.0"
ports:
- name: ollama
containerPort: 11434
args:
- "serve"
name: ollama
volumeMounts:
- mountPath: /root/.ollama
name: shared-data
subPath: ollama
volumes:
- name: shared-data
persistentVolumeClaim:
claimName: ollama-vol
---
apiVersion: v1
kind: Service
metadata:
name: ollama-svc
spec:
selector:
app: ollama
ports:
- name: http
protocol: TCP
port: 11434
targetPort: 11434
Chatbox:顾客的最终消费
ChatBox 提供了一个用户友好的界面,用于与大模型对话。在其官方网站可以选择任何系统的客户端下载安装。安装完成后,只需在设置页面的 “Model Provider” 选择 “OLLAMA API”,并配置上之前部署的 Ollama 的服务地址即可。Chatbox 会自动识别 Ollama 中已有的模型。
![](https://static1.juicefs.com/images/2_6MRXqAm.original.png)
随后,就可以愉快地在本地使用 DeepSeek 了。
![](https://static1.juicefs.com/images/3_nIK9yq3.original.png)