加载中...

在Linux中使用ollama私有化部署DeepSeek-R1大模型


前言

DeepSeek 是一款开创性的开源大语言模型,凭借其先进的算法架构和反思链能力,为 AI 对话交互带来了革新性的体验。通过私有化部署,你可以充分掌控数据安全和使用安全。你还可以灵活调整部署方案,并实现便捷的自定义系统。

前置准备

硬件环境:

  • CPU >= 2 Core
  • 显存/RAM ≥ 16 GiB(推荐)
  • GPU型号:Tesla V100-PCIE-32GB(也可以不使用GPU,不用GPU的话模型就选小一点)

软件环境:

开始部署

前提提示:

本篇以容器化部署为主!!!

本篇使用Singularity容器进行部署使用(Singularity后来改名为Apptainer,与Docker类似)。我会尽量附上docker命令,但不保证docker命令完全可行。

运行ollama并使用deepseek大模型

  1. 编译/拉取 ollama 镜像:https://hub.docker.com/r/ollama/ollama

    singularity build --sandbox ollama-0.5.7 docker://ollama/ollama:0.5.7

    docker命令:

    docker pull ollama/ollama:0.5.7
  2. 运行ollama镜像

    singularity shell --nv ollama-0.5.7/

    docker命令:

    docker run -d --gpus --name ollama --network=host ollama/ollama:0.5.7
  3. 进入容器并下载deepseek-r1模型

    ollama serve  &               # 需要先后台运行ollama服务,之后才能使用ollama
    ollama run deepseek-r1:14b    # 会默认保存在 ~/.ollama 目录

    docker命令:

    docker exec -it ollama bash   # 进入容器命令
    ollama run deepseek-r1:14b    # 拉取并使用deepseek-r1模型(如果命令不能使用,检查一下ollama是否运行了)
  4. 在命令运行成功后,会直接进入模型对话框(首次需要下载模型会比较慢),如下:

    Apptainer> ollama run deepseek-r1:14b
    pulling manifest 
    pulling 6e9f90f02bb3... 100% ▕██████████████████████████████████████████████████████████████████████▏ 9.0 GB                         
    pulling 369ca498f347... 100% ▕██████████████████████████████████████████████████████████████████████▏  387 B                         
    pulling 6e4c38e1172f... 100% ▕██████████████████████████████████████████████████████████████████████▏ 1.1 KB                         
    pulling f4d24e9138dd... 100% ▕██████████████████████████████████████████████████████████████████████▏  148 B                         
    pulling 3c24b0c80794... 100% ▕██████████████████████████████████████████████████████████████████████▏  488 B                         
    verifying sha256 digest 
    writing manifest 
    success 
    >>> 你是谁
    <think>
    
    </think>
    
    您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。
    
    >>> /bye

其实到这里就可以正常使用了,但是不美观,且没法上传文件,接下来使用open-webui。

运行Open WebUI

  1. 编译/拉取 open-webui镜像:

    官方文档给出的镜像为:ghcr.io/open-webui/open-webui:main

    dockerhub上有一个同步的镜像仓库是:dyrnq/open-webui,地址为:https://hub.docker.com/r/dyrnq/open-webui

    最初是因为看到可以open-webui中有打好的ollama版本,但这里并没有使用,所以只是当做webui来用(拉取不带ollama的版本就行了)。

    singularity build --sandbox open-webui-ollama docker://dyrnq/open-webui:main-ollama

    docker命令:

    docker pull dyrnq/open-webui:main-ollama
  2. 运行容器

    容器内需要持久化的目录为:/app/backend/data

    singularity exec --nv --writable-tmpfs -B /home/hpcadmin/wuye/deepseek/open-webui-data:/app/backend/data  \
        --env PORT=$WEB_UI_PORT --env AIOHTTP_CLIENT_TIMEOUT=1200 --env USE_OLLAMA_DOCKER=false --env OLLAMA_BASE_URL=http://10.240.214.77:11434 \
         /home/hpcadmin/wuye/build_image/open-webui/ bash -c 'cd /app/backend/ && bash start.sh'

    docker命令:

    docker run -d -p 3000:8080 -e AIOHTTP_CLIENT_TIMEOUT=1200 -e OLLAMA_BASE_URL=http://10.240.214.77:11434 -v open-webui:/app/backend/data --name open-webui --restart always dyrnq/open-webui:main-ollama
  3. 然后你就可以打开浏览器去访问了(Open WebUI需要先创建用户登录进去使用)。如图:

    open-webui


文章作者: 无夜
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 无夜 !
评论
  目录