可以在腾讯云上先按小时收费的方式,租一个小机器部署70b的练手
有偿部署可联系VX digo0924
部署671B可以用GT4型号
部署70B可以用GN10XP型号(推荐)
模型权重文件联网下载(windows)
- 安装ollama(OllamaSetup.exe)
- 文件默认存储在(C:\Users\用户名.ollama\models)目录下,如果C盘可用空间小于400GB,更换ollama默认存储位置
- 通过powershell运行以下脚本(.ps1),拉取模型权重。(定时中断稳定下载网速)
while ($true) {
$modelExists = ollama list | Select-String "deepseek-r1:671b"
if ($modelExists) {
Write-Host "model is ready"
break
}
Write-Host "download..."
$process = Start-Process -FilePath "ollama" -ArgumentList "run", "deepseek-r1:671b" -PassThru -NoNewWindow
Start-Sleep -Seconds 60
try {
Stop-Process -Id $process.Id -Force -ErrorAction Stop
Write-Host "kill and restart..."
}
catch {
Write-Host "error"
}
}
基础环境
OS: CentOS 7.6
GCC版本:GCC 9+
Anaconda: 24.7.1
PYTHON:3.11.7
CUDA: 11.7
OLLAMA: 0.5.11
离线安装软件包
OLLAMA安装(sudo权限)
https://ollama.readthedocs.io/gpu/#linux
OLLAMA安装包(ollama-linux-amd64.tgz)拷贝到用户根目录
# 安装anaconda新环境, 一直yes,等待安装完成
chmod 777 Anaconda3-2024.02-1-Linux-x86_64.sh
./Anaconda3-2024.02-1-Linux-x86_64.sh
**!!!重启一个终端**
# 安装ollama包
# curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
# 开始 Ollama:
ollama serve
# 设置启动目录
# OLLAMA_MODELS=/home/ollama/models ollama serve
# 在另一个终端中,验证 Ollama 是否正在运行:
ollama -v
添加 Ollama 为开机启动服务(推荐,暂时先不设置)
创建 Ollama 的用户和组:
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)
在 /etc/systemd/system/ 目录下创建一个服务文件 ollama.service:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
# Environment="OLLAMA_HOST=0.0.0.0"
# Environment="OLLAMA_ORIGINS=*"
[Install]
WantedBy=default.target
然后启动服务:
sudo systemctl daemon-reload
sudo systemctl enable ollama
deepseek-r1 671B模型安装
模型导入(权重文件迁移)
# 将模型保存到/usr/share/ollama/.ollama目录下
unzip deepseek-r1-70b.zip -d /usr/share/ollama/.ollama/models/blobs
# /home/ollama/models/ 树结构如下
(base) /usr/share/ollama/.ollama$ tree /usr/share/ollama/.ollama/models/
/usr/share/ollama/.ollama/models/
├── blobs
│ ├── sha256-369ca498f347f710d068cbb38bf0b8692dd3fa30f30ca2ff755e211c94768150
│ ├── sha256-4cd576d9aa16961244012223abf01445567b061f1814b57dfef699e4cf8df339
│ ├── sha256-5e9a45d7d8b98eb61a65815d36008bfef6fd6ebad6f0be432fb61d83b70550f8
│ ├── sha256-6e4c38e1172f42fdbff13edf9a7a017679fb82b0fde415a3e8b3c31c6ed4a4e4
│ └── sha256-f4d24e9138dd4603380add165d2b0d970bef471fac194b436ebd50e6147c6588
└── manifests
└── registry.ollama.ai
└── library
└── deepseek-r1
└── 70b
#
OLLAMA_MODELS=/usr/share/ollama/.ollama/models/ ollama serve
# 如果设置成系统服务,则重启
sudo systemctl restart ollama
# 重新打开一个终端,查看模型
ollama list
deepseek-r1:671b模型运行
# 运行deepseek-r1:671b
ollama run deepseek-r1:671b
服务端口安全暴露(推荐)
# CentOS/RHEL
# 仅暴露11434端口,使用 firewall-cmd
sudo firewall-cmd --permanent --add-port=11434/tcp --zone=public
sudo firewall-cmd --permanent --remove-port=11434/tcp --zone=public
sudo firewall-cmd --reload
API开放-Dify部署
docker安装(如有跳过)
# 选择版本进行下载,下载成功后解压docker包。
tar -zxvf docker-26.1.3.tgz
# 给docker执行文件赋予可执行权限
sudo chmod 755 -R docker
# 将解压出来的docker文件内容拷贝或者移动到 /usr/bin/目录下
cp docker/* /usr/bin/
# 使用 docker -v 或者 docker info 命令验证是否可以输出docker信息了。
docker -v
编辑配置文件
vim /etc/systemd/system/docker.service
添加内容:
[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock --selinux-enabled=false --default-ulimit nofile=65536:65536
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target
启动 docker 服务
# 添加文件可执行权限
sudo chmod +x /etc/systemd/system/docker.service
# 配置成功后,重新加载 daemon 服务
sudo systemctl daemon-reload
# 启动 docker 服务
sudo systemctl start docker
# 将 docker 服务设置为开机自动启动
sudo systemctl enable docker
安装docker-compose
将下载后的docker-compose安装包传至需要安装docker-compose服务的服务器上。
# 复制docker-compose到/usr/local/bin/目录下
sudo cp -f docker-compose-linux-x86_64.v2.28.1 /usr/local/bin/docker-compose
# 赋予docker-compose可执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 查看docker-compose版本
sudo docker-compose -v
导入dify
- 将项目文件和镜像文件复制到生产服务器
- 加载 Docker 镜像:
# 外网服务器上
docker save -o dify-web.tar langgenius/dify-web:0.15.3
docker save -o dify-api.tar langgenius/dify-api:0.15.3
docker save -o postgres.tar postgres:15-alpine
docker save -o nginx.tar nginx:latest
docker save -o dify-sandbox.tar langgenius/dify-sandbox:0.2.10
docker save -o squid.tar ubuntu/squid:latest
docker save -o weaviate.tar semitechnologies/weaviate:1.19.0
docker save -o redis.tar redis:6-alpine
cd docker_images
docker load -i dify-web.tar
docker load -i dify-api.tar
docker load -i postgres.tar
docker load -i nginx.tar
docker load -i dify-sandbox.tar
docker load -i redis.tar
docker load -i squid.tar
docker load -i weaviate.tar
# 到dify/docker目录
cd dify/docker/
cp .env.example .env
# 编辑 .env 文件,配置必要的环境变量
# 启动服务
docker compose up -d
# 然后打开一个新的浏览器,输入 localhost:80,或者本机 IP 地址:80,可以看到进入到了 Dify 中。
dify配置ollama api
在 Dify 主界面,点击右上角个人名字圆圈,点击设置——模型供应商——Ollama
- 模型名称:llava
- 基础 URL:http://<本机IP地址>:11434
此处需填写可访问到的 Ollama 服务地址。
若 Dify 为 docker 部署,建议填写局域网 IP 地址,如:http://192.168.1.100:11434 或 docker 宿主机 IP 地址,如:http://172.17.0.1:11434。
若为本地源码部署,可填写 http://localhost:11434。 - 模型类型:对话
- 模型上下文长度:4096
模型的最大上下文长度,若不清楚可填写默认值 4096。 - 最大 token 上限:4096
模型返回内容的最大 token 数量,若模型无特别说明,则可与模型上下文长度保持一致。 - 是否支持 Vision:是
当模型支持图片理解(多模态)勾选此项,如 llava。
OLLAMA环境变量设置
- OLLAMA_HOST:这个变量定义了Ollama监听的网络接口。通过设置OLLAMA_HOST=0.0.0.0,我们可以让Ollama监听所有可用的网络接口,从而允许外部网络访问。
- OLLAMA_MODELS:这个变量指定了模型镜像的存储路径。通过设置OLLAMA_MODELS=F:\OllamaCache,我们可以将模型镜像存储在E盘,避免C盘空间不足的问题。
- OLLAMA_KEEP_ALIVE:这个变量控制模型在内存中的存活时间。设置OLLAMA_KEEP_ALIVE=24h可以让模型在内存中保持24小时,提高访问速度。
- OLLAMA_PORT:这个变量允许我们更改Ollama的默认端口。例如,设置OLLAMA_PORT=8080可以将服务端口从默认的11434更改为8080。
- OLLAMA_NUM_PARALLEL:这个变量决定了Ollama可以同时处理的用户请求数量。设置OLLAMA_NUM_PARALLEL=4可以让Ollama同时处理两个并发请求。
- OLLAMA_MAX_LOADED_MODELS:这个变量限制了Ollama可以同时加载的模型数量。设置OLLAMA_MAX_LOADED_MODELS=4可以确保系统资源得到合理分配。
- OLLAMA_ORIGINS: 允许的源列表,星号*或使用逗号分隔。
- OLLAMA_DEBUG:是否开启调试模式,默认为 false。
- OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
- OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
- OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
- OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
- OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
- OLLAMA_MAX_QUEUE:最大队列数,默认为空。
- OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
- OLLAMA_MODELS:模型目录,默认为空。
- OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
- OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
- OLLAMA_NUM_PARALLEL:并行数,默认为 1。
- OLLAMA_ORIGINS:允许的来源,默认为空。
- OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
- OLLAMA_SCHED_SPREAD:调度分布,默认为空。
- OLLAMA_TMPDIR:临时文件目录,默认为空。Here is the optimized list in the desired format:
- OLLAMA_DEBUG:是否开启调试模式,默认为 false。
- OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
- OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
- OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
- OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
- OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
- OLLAMA_MAX_QUEUE:最大队列数,默认为空。
- OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
- OLLAMA_MODELS:模型目录,默认为空。
- OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
- OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
- OLLAMA_NUM_PARALLEL:并行数,默认为 1。
- OLLAMA_ORIGINS:允许的来源,默认为空。
- OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
- OLLAMA_SCHED_SPREAD:调度分布,默认为空。
- OLLAMA_TMPDIR:临时文件目录,默认为空。