windows 本地部署ollama+deepseek 可见前面文章.
linux 安装ollama
这里使用virtualbox 安装了rocky9.3
VirtualBox 是一款简单易用还免费的开源虚拟机虚拟机软件。
查看OS版本
cat /etc/redhat-release
Rocky Linux release 9.3 (Blue Onyx)
一健安装
curl -fsSL
https://ollama.com/install.sh | sh
自动化安装,但可能下载不了
注意:应该至少有8GB的可用内存来运行7B模型,16GB的可用内存来运行13B模型,以及32GB的内存来运行33B模型。
手动安装
https://github.com/ollama/ollama/blob/main/docs/linux.md
sudo rm -rf /usr/lib/ollama
1.8g左右
curl -L
https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
启动ollam服务
Start Ollama:
ollama serve
In another terminal, verify that Ollama is running:
验证安装:
ollama -v
ollama version is 0.5.1
添加用户限配置
useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
usermod -a -G ollama $(whoami)
修改ollama的运行端口
对于每个环境变量,在[Service]部分下添加一行Environment.
Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_ORIGINS=*" Environment="OLLAMA_DEBUG=1" Environment="OLLAMA_FLASH_ATTENTION=1"
Ollama 提供了多种环境变量以供配置:
OLLAMA_DEBUG:是否开启调试模式,默认为 false。 OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。 OLLAMA_HOST:0.0.0.0:11434 修改默认端口 11434 端口 OLLAMA_KEEP_ALIVE:设置模型加载到内存中保持 24 个小时(默认情况下,模型在卸载之前会在内存中保留 5 分钟) OLLAMA_LLM_LIBRARY:LLM 库,默认为空。 OLLAMA_MAX_LOADED_MODELS:设置同时加载多个模型,默认为 1。 OLLAMA_MAX_QUEUE:最大队列数,默认为空。 OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。 OLLAMA_MODELS:/mnt/data/.ollama/models 模型默认下载路径,默认为空。 OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。 OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。 OLLAMA_NUM_PARALLEL:设置用户并发请求,默认为 1。 OLLAMA_ORIGINS:允许的来源,默认为空。 OLLAMA_RUNNERS_DIR:运行器目录,默认为空。 OLLAMA_SCHED_SPREAD:调度分布,默认为空。 OLLAMA_TMPDIR:临时文件目录,默认为空。
Linux 的 tmp 目录设置为 noexec
如果你的系统将 Ollama 存储临时可执行文件的 tmp 目录设置为了 “noexec”,你可以通过设置 OLLAMA_TMPDIR 来指定一个用户可写的替代位置。例如 OLLAMA_TMPDIR=/usr/share/ollama/
配置为系统服务
设置为外部可以访问,端口为11434
cat </dev/null [Unit] Description=Ollama Service After=network-online.target [Service] Environment="OLLAMA_HOST=0.0.0.0:11434" Environment="OLLAMA_ORIGINS=*" Environment="OLLAMA_DEBUG=1" Environment="OLLAMA_FLASH_ATTENTION=1" ExecStart=\$BINDIR/ollama serve User=ollama Group=ollama Restart=always RestartSec=3 Environment="PATH=\$PATH" [Install] WantedBy=default.target EOF
重新加载 systemd 并重启 Ollama
systemctl daemon-reload #重载服务
systemctl enable ollama #开机启动
systemctl start ollama #启动服务
systemctl restart ollama #重启服务
systemctl status ollama #查看服务状态
运行模型
一旦您下载了模型,就可以使用 Ollama 的 run 命令来运行它们。
拉取模型
ollama pull llama3.2:3b
ollama pull qwen2:1.5b
ollama pull deepseek-r1:1.5b
1.5b的运行速度比较快,也不卡,但比较笨,如果追求性能,可以尝试7b及以上的.
运行千问模型
ollama run qwen2:1.5b
>>> hello world Hello! It's nice to meet you. Is there anything else you would like assistance with? Use Ctrl + d or /bye to exit. >>>
运行deepseek推理模型
ollama run deepseek-r1:7b
修改模型的存储目录
默认情况下,ollama模型的存储目录如下:
macOS: `~/.ollama/models` Linux: `/usr/share/ollama/.ollama/models` Windows: `C:\Users\\.ollama\models`
如需修改,vi
/etc/systemd/system/ollama.service
在[Service]下面加入一行新的Environment,新一行:
Environment="OLLAMA_MODELS=/path/to/ollama/models"
mkdir -p /data/ollama/
chown -R ollama:ollama /data/ollama
chmod 0777 /data/ollama
mv /usr/share/ollama/.ollama/models /data/ollama/
重启服务
systemctl daemon-reload
systemctl restart ollama.service
查看日志
journalctl -u ollama | grep -i 'prompt='
/set verbose #设置以查看token速度
测试
curl http://localhost:11434
Ollama is running
配制UI
支持windows的客户端工具
可以使用
Anything-LLM
Cherry Studio
Chatbox
LM Studio
浏览器插件
Chat with Ollama
Page Assist
第三方网站
chatboxai
Open-WebUI
Open WebUI是一个可扩展、功能丰富、用户友好的自托管 WebUI,旨在完全离线操作。它支持各种LLM运行程序,包括 Ollama 和 OpenAI 兼容的 API。Open WebUI 适配了 Ollama 接口,提供了 web 的方式来访问 Ollama API。
https://docs.openwebui.com/
支持多后端:LLaMA、GPT-NeoX 等,以及 CPU/GPU 等不同推理环境。
浏览器聊天界面:在局域网或本机通过网页即可与模型交互。
安装docker
yum install docker
rocky8 以上默认为podman,可以安装docker-ce
dnf install -y dnf-plugins-core
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io
验证安装
这里安装的是Podman
docker version
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg. Client: Podman Engine Version: 5.2.2 API Version: 5.2.2 Go Version: go1.22.7 (Red Hat 1.22.7-2.el9_5) Built: Tue Nov 12 20:34:59 2024 OS/Arch: linux/amd64
境像加速
当前没有魔法的情况下无法拉取到镜像,需要配制国内的镜像或者代理。
docker的加速
sudo tee /etc/docker/daemon.json <<-EOF
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn"
]
}
podman 的加速
vi /etc/containers/registries.conf
registry
prefix = "docker.io"
location = "docker.io"
mirror = [
{ location = "docker.nju.edu.cn" },
{ location = "docker.m.daocloud.io" }
]
重启docker查看一下
systemctl daemon-reload
systemctl restart docker
docker info
拉取 Open WebUI 镜像
通过以下命令,从 Open WebUI 官方 GitHub Container Registry (GHCR) 仓库拉取镜像
docker pull
ghcr.io/open-webui/open-webui:main
如果速度慢可以使用国内镜像再改名
docker pull
ghcr.nju.edu.cn/open-webui/open-webui:main
docker tag
ghcr.nju.edu.cn/open-webui/open-webui:main
ghcr.io/open-webui/open-webui:main
如有自已的代理加速魔法服务器
export https_proxy='192.168.244.1:8080'
先创建一个用于 Open WebUI 容器本地存储的本地目录
mkdir /opt/openwebui
通过以下命令启动容器, 映射本地3000 端口到容器内8080, 并挂载本地目录 /opt/openwebui 到容器的 /app/backend/data
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v /opt/openwebui:/app/backend/data --name openwebui ghcr.io/open-webui/open-webui:main
设容器为自动启动
docker update --restart always openwebui
手动启动
docker start openwebui
查看服务
netstat -lntp
Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3000 0.0.0.0:* LISTEN 2303/conmon tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1183/sshd: /usr/sbi tcp6 0 0 :::11434 :::* LISTEN 1589/ollama tcp6 0 0 :::22 :::* LISTEN 1183/sshd: /usr/sbi
如开启了防火墙,打开防火墙端口
firewall-cmd --get-default-zone
firewall-cmd --zone=public --add-port=3000/tcp --permanent
firewall-cmd --zone=public --add-port=11434/tcp --permanent
查看已经开启的防火墙端口
firewall-cmd --list-ports
firewall-cmd --get-services
重启防火墙修改才会生效
firewall-cmd --reload
虚拟机设置nat
在virtualbox虚拟机设置nat,映射宿主机127.0.0.1:3000端口到虚拟机 192.158.244.9:3000端口.
在浏览器访问http://127.0.0.1:3000 可以显示webui界面.
注册账号密码,创建管理员账号。
如果不习惯英文界面,可以设置成中文界面
现在,我们就可以用本地部署的 千问或deepseek-r1 模型进行聊天了。