1.硬件需求
测试了几台电脑,供参考,主要看显存和内存
设备1:台式机,Intel i5-14400F,NVIDIA RTX 4060Ti 8G显卡,32G内存,SSD
- deepseek-r1:8b及以下,流畅运行。
- deepseek-r1:14b勉强能跑,显存不够,十分卡顿。
设备2:macbook pro,M1 pro,16G统一内存,SSD
- deepseek-r1:14b及以下,流畅运行,内存占用14-15G。
- deepseek-r1:32b,内存爆满,严重卡顿,基本不可用。
设备3:迷你主机,Intel N100,无独显,16G内存,SSD
- deepseek-r1:1.5b,流畅运行。
- deepseek-r1:7b,内存紧张,cpu占用率100%,十分卡顿。
设备4:树莓派4B,8G内存+4G虚拟内存,TF卡+HDD
- deepseek-r1:1.5b,勉强运行,十分卡顿,cpu占用率400%。
设备5:腾讯云轻量应用服务器,2C2G,4G虚拟内存,SSD
- deepseek-r1:1.5b,严重卡顿,基本不可用。
2.需要搭建的组件
2.1.后端组件——Ollama
官网:https://ollama.com/
Ollama是一个运行AI大模型的容器,可以下载大模型在其上面运行。它是Meta公司为适配自家的Llama模型开发的,是个开源组件。它不仅是AI模型的容器,也是模型仓库,目前支持很多开源模型,可以像git一样用命令行拉取模型。
2.2.前端组件——Open Web UI、LobeChat、Chatbox等
Open Web UI Github地址:https://github.com/open-webui/open-webui
在Ollama上启动模型后,就可以直接对话了。但只能在命令行界面使用,也只能在本机使用。如果想要美观的页面,或者需要多人使用,就需要安装前端组件,用网页访问。
目前看到推荐最多的就是Open Web UI,目前使用下来,功能的确挺多,支持多用户(可开启注册),带权限控制,同时支持多个模型并可以一键下载,支持开启联网搜索,文本朗读等。但唯一一个缺点是硬件性能要求较高,用低性能设备时,访问页面需要等待较长时间,树莓派部署时,登录后要等待2分钟才能看到主页面。
其次是LobeChat,它的优点是访问速度快,但是社区版仅支持单用户,也不支持联网搜索,联网搜索需要购买第三方服务。
官网:https://lobehub.com/zh
如果是单机部署,也可以试试Chatbox,但Chatbox不能远程访问,只适合个人在本机使用,个人不是很推荐。
3.搭建步骤
3.1.安装Ollama
访问官网https://ollama.com
下载即可。
windows系统:exe安装包可视化安装,默认安装在C盘,安装路径不可修改。
mac系统:下载zip包,解压后直接运行。
linux:执行以下命令安装。
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,进入命令行,输入任意ollama命令,即可启动ollama。
如列出已下载的模型:
ollama ls
Ollama启动后,可以访问127.0.0.1:11434
,显示Ollama is running
,表示启动成功。
如果开启了防火墙,记得放开11434端口。
以上是独立安装Ollama。此外,还可以随Open Web UI一起安装,它有一个docker镜像内置了Ollama。
3.2.环境变量配置
安装好Ollama,默认只能本地访问,且模型存放路径在C盘(windows)。这里需要配置两个环境变量,修改存放路径和放开远程访问。
环境变量
名称 | 值 | 含义 |
---|---|---|
OLLAMA_HOST | 0.0.0.0 | 允许远程访问 |
OLLAMA_MODELS | 指定的路径 | 修改模型存放地址 |
linux
1.编辑/etc/profile
,添加以下两行并保存。
export OLLAMA_HOST=0.0.0.0
export OLLAMA_MODELS=指定的路径 #linux可以不修改这个
2.保存后使其永久生效。
source /etc/profile
3.ollama重启后,环境变量才会在ollama生效,所以先找到并杀死ollama进程。
ps -ef|grep ollama
kill -9 对应的pid
4.重启ollama。
ollama ls
mac os
1.编辑~/.bash_profile
,添加以下两行并保存。
export OLLAMA_HOST=0.0.0.0
export OLLAMA_MODELS=指定的路径 #mac可以不修改这个
2.保存后使其永久生效。
source ~/.bash_profile
3.屏幕右上角的状态栏上找到ollama图标,右键退出。
4.重启ollama。
ollama ls
windows(win11为例)
1.进入资源管理器,左边此电脑
处点击鼠标右键,点击属性。
2.点击高级系统设置。
3.点击环境变量。
4.系统变量处点击新建,填入变量名和变量值,点击确定。重复该步骤,将第二个变量也配置完成。
5.配置完成后,打开任务管理器,搜索ollama,将所有进程杀死。(ollama重启后,环境变量才会生效)之前试了直接在图标处点退出无效,只有杀进程有用。
6.打开命令行,执行ollama ls
再次启动ollama。
3.3.拉取模型
在命令行中执行以下命令。
ollama run deepseek-r1:7b
- 参数量有1.5b、7b、8b、14b、32b、70b、671b,b指billion(10亿)。个人设备基本到32b就到顶了(RTX 4090 24G显存),再往上就需要高性能的服务器,或者多台mac设备组集群(用EXO联机)才能跑。除671b是和官网一样的满血版R1模型,其余都是基于qwen2和llama架构的蒸馏模型。
启动后,就可以在命令行和AI聊天了。命令行关闭后,ollama仍会在后台运行,下次执行ollama run可以直接聊天。
3.4.安装Open Web UI
Github上的readme页面有各种部署方式的官方教程,这里写个人觉得最方便的一种方式,docker部署。docker的安装不再赘述,下面直接介绍Open Web UI的安装。
它有两个版本的镜像。一种内置Ollama,适合单机部署。一种只有Open Web UI,适合Ollama和Web分机器部署,提高性能。
内置Ollama版本
方式一:docker命令部署
使用gpu,有独显的执行这个。
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
使用cpu,没有独显,或者用上面的命令无法启动的选这个。
docker run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
- 端口映射到了3000,访问地址:http://IP:3000
方式二:docker compose命令部署(推荐这种,方便维护)
1.编写docker-compose.yml。
使用gpu,没有测试过,不知道能不能运行。查了一下应该只支持英伟达显卡,据说docker compose版本要V2以上。
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: always
container_name: open-webui
volumes:
- open-webui:/app/backend/data
- ollama:/root/.ollama
environment:
- OLLAMA_BASE_URL=http://ollama服务器ip:11434
ports:
- 3000:8080
runtime: nvidia
environment:
- NVIDIA_VISIBLE_DEVICES=all
command: nvidia-smi
使用cpu
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
restart: always
container_name: open-webui
volumes:
- open-webui:/app/backend/data
- ollama:/root/.ollama
environment:
- OLLAMA_BASE_URL=http://ollama服务器ip:11434
ports:
- 3000:8080
2.启动
docker compose up -d
访问地址:http://IP:3000
如果开启了防火墙,记得开放3000端口。
注册管理员账号后,就可以愉快的跟AI聊天了。(进入主页面可能会有点慢)
4.其他前端组件(可选)
4.1.lobechat
lobechat支持多种AI服务,其中就包括ollama。
官网:https://lobehub.com/zh
github地址:https://github.com/lobehub/lobe-chat?tab=readme-ov-file
使用lobechat作为前端,ollama需要配置OLLAMA_ORIGINS=*
环境变量以支持跨域,否则无法联通。
4.1.1.编写docker-compose.yml
services:
lobe-chat:
image: lobehub/lobe-chat
container_name: lobe-chat
restart: always
ports:
- '3000:3210'
environment:
ACCESS_CODE: 设置一个访问密码
OLLAMA_PROXY_URL: http://ollama服务器ip:11434/v1
访问地址:http://ip:3000
4.1.2.点击右上角三条杠的按钮进入设置页面
4.1.3.进入语言模型,找到ollama,打开开关
ollama服务地址:http://ollama服务器ip:11434
使用客户端请求模式:勾上响应会快一些
模型列表:会自动获取,选择对应的模型即可