本地部署deepseek

Scroll Down

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

方式二: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
使用客户端请求模式:勾上响应会快一些
模型列表:会自动获取,选择对应的模型即可

4.1.4.点击连通性检查,检查通过,就可以返回聊天页面开始聊天了