DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

06-01 1708阅读

文章目录

  • 一,DeepSeek-R1简介
    • 发展历程
    • 主要功能
      • 训练方式
      • 思维链
      • 任务表现
      • 相关测评
      • 国际关注
      • 相关评价
      • 二,DeepSeek-R1 部署
        • 1 , Ollama 安装
        • 2 ,Ollama 相关命令
        • 3,ollama deepseek-r1 模型下载
        • 4,ollama 测试 deepseek-r1 模型
        • 5,springboot 调用 deepseek-r1 模型
        • 6,docker安装
        • 6,Open WebUI 安装

          一,DeepSeek-R1简介

          DeepSeek-R1 是幻方量化旗下大模型公司 DeepSeek 研发的系列推理模型,以下是关于它的简介:

          发展历程

          2024 年 11 月 20 日:DeepSeek-R1-Lite 预览版正式上线网页端,仅支持网页使用,暂不支持 API 调用。

          2025 年 1 月 20 日:DeepSeek 正式发布 DeepSeek-R1 模型,并同步开源模型权重。

          2025 年 1 月 24 日:在 Arena 上,DeepSeek-R1 基准测试升至全类别大模型第三,在风格控制类模型分类中与 OpenAI o1 并列第一。

          2025 年 1 月 31 日:英伟达、微软与亚马逊三家美国头部企业接入 DeepSeek-R1 模型。

          2025 年 2 月 1 日:DeepSeek 和华为云联合首发并上线基于华为云昇腾云服务的 DeepSeek R1 推理服务。

          2025 年 2 月 2 日:腾讯云宣布 DeepSeek-R1 大模型一键部署至腾讯云 HAI 上,开发者仅需 3 分钟就能接入调用。

          主要功能

          训练方式

          使用强化学习训练,在后训练阶段大规模使用了强化学习技术,在仅有极少标注数据的情况下,极大提升了模型推理能力。

          思维链

          推理过程包含大量反思和验证,思维链长度可达数万字。

          任务表现

          在数学、代码以及各种复杂逻辑推理任务上应用出色,取得了媲美 OpenAI o1-preview 的推理效果,并为用户展现了 o1 没有公开的完整思考过程。在自然语言推理等任务上,性能比肩 OpenAI o1 正式版。DeepSeek 还通过 DeepSeek-R1 的输出,蒸馏了 6 个小模型开源给社区,其中 32B 和 70B 模型在多项能力上实现了对标 OpenAI o1-mini 的效果。

          相关测评

          DeepSeek-R1-Lite 预览版模型在美国数学竞赛(AMC)中难度等级最高的 AIME 以及全球顶级编程竞赛(codeforces)等评测中,超越了 GPT-4 等模型。

          国际关注

          美国媒体 Business Insider 报道称,DeepSeek-R1 模型秉承开放精神,完全开源,为美国 AI 玩家带来了麻烦。

          著名投资公司 A16z 的创始人马克・安德森发文称,Deepseek-R1 是他见过的最令人惊叹、最令人印象深刻的突破之一,而且还是开源的,它是给世界的一份礼物。A16z 合伙人 Anjney Midha 表示,从斯坦福到麻省理工,DeepSeek-R1 几乎一夜之间成为美国顶尖大学研究人员的首选模型。

          英国《金融时报》发表评论文章表示,DeepSeek-R1 对全球用户产生极大吸引力,有利于推动人工智能技术的开发和应用,可能会吸引美国科技巨头的一部分客户。

          相关评价

          俄罗斯外交部长拉夫罗夫评价称,中国科学家在人工智能领域取得的成就,以及包括 DeepSeek 的出现,超越了美国相关研发人员在该领域的成果。

          二,DeepSeek-R1 部署

          DeepSeek-R1 github地址: https://github.com/deepseek-ai/DeepSeek-R1

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          根据上图看出DeepSeek-r1各方面优于OpenAI,在某些方面评估甚至强于OpenAI。下面我开始搭建

          1 , Ollama 安装

          本节针对于不需要 OpenUI 的 Ubuntu 用户以及开发者,同时也是为了帮助大家深入理解 ollama,这里介绍一种独立安装 ollama 的方式。值得注意的是,这种安装方式无需借助 docker 即可运行 ollama。而需要安装 OpenWebUI的用户,可直接跳转至第六节继续操作

          ollama 是一个强大的工具,它为模型的管理和运行提供了便利。它可以简化模型的下载、配置和启动过程,让用户能够快速地将不同的模型集成到自己的工作流程中。例如,在处理多个不同类型的大语言模型时,ollama 可以轻松管理这些模型之间的切换和调用,提高开发效率。

          ollama 下载地址 : https://ollama.com/download

          ollama github地址 : https://github.com/ollama/ollama

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          #复制官网Linux自动安装命令执行即可
          curl -fsSL https://ollama.com/install.sh | sh
          

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          安装成功如下图:

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          2 ,Ollama 相关命令

          Ollama 提供了多种命令行工具(CLI)供用户与本地运行的模型进行交互。

          我们可以用 ollama --help 查看包含有哪些命令:

          Large language model runner
          Usage:
            ollama [flags]
            ollama [command]
          Available Commands:
            serve       Start ollama
            create      Create a model from a Modelfile
            show        Show information for a model
            run         Run a model
            stop        Stop a running model
            pull        Pull a model from a registry
            push        Push a model to a registry
            list        List models
            ps          List running models
            cp          Copy a model
            rm          Remove a model
            help        Help about any command
          Flags:
            -h, --help      help for ollama
            -v, --version   Show version information
          

          3,ollama deepseek-r1 模型下载

          根据 ollama 说明文档 可以看出deepSeek-r1 支持的模型。

          也可以到(Ollama 支持 ollama.com/library 上查看可用的模型列表)

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          点击进入 deepseek-r1 模型,可以选择不同版本的模型(1.5b/7b/14b/32b/70b/671b)。

          deepseek-r1 提供多个版本,参数量越大,模型的性能越强大,但也需要更多的存储和计算资源。1.5b 模型参数为15亿/1.1GB,7b 模型参数约为 70亿/4.7GB,14b 模型参数约为 140亿/9GB。

          # 使用 ollama 获取 deepseek-r1 模型7b
          # 在ubuntu命令行执行
          ollama pull deepseek-r1:7b 
          

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          # 查看已下载模型列表
          ollama list
          

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          4,ollama 测试 deepseek-r1 模型

          # 1,在ubuntu命令行执行
          ollama run deepseek-r1:7b
          # 2,命令行输入对话内容回车,如:请介绍deepseek-r1  如下图所示成功响应即可
          

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          5,springboot 调用 deepseek-r1 模型

          创建springboot工程 引入springweb ollama

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          工程结构如下图

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          pom文件

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          application.properties 配置文件DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          写个单元测试,尝试调用Ollama中的deepseek-r1模型,这里尝试实现一个翻译的功能

          package org.hdsoft.ollamademo;
          import org.junit.jupiter.api.Test;
          import org.springframework.ai.ollama.OllamaChatModel;
          import org.springframework.beans.factory.annotation.Autowired;
          import org.springframework.boot.test.context.SpringBootTest;
          @SpringBootTest
          class OllamaDemoApplicationTests {
          //    @Test
          //    void contextLoads() {
          //    }
              @Autowired
              private OllamaChatModel ollamaChatModel;
              @Test
              public void testChatModel() {
                  String prompt = """
                          你是一个精通中文和英文的翻译大师。如果我给你英文就翻译成中文,给你中文就翻译成英文。
                          """;
                  String message = """
                          Ollama now supports tool calling with popular models such as Llama 3.1.
                          This enables a model to answer a given prompt using tool(s) it knows about,
                          making it possible for models to perform more complex tasks or interact with the outside world.
                          """;
                  String result = ollamaChatModel.call(prompt + ":" + message);
                  System.out.println(result);
              }
          }
          

          运行结构图下图

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          目前,我们的 DeepSeek-R1 部署对于开发者已经完成。为了更便捷地对 DeepSeek-R1 进行测试与使用,接下来我们需要安装 Open WebUI。 Open WebUI我们借助docker容器化安装部署。

          6,docker安装

          Docker 作为一款开源引擎,具备强大的功能,能够便捷地为任意应用创建轻量级、可移植且自给自足的容器。开发者在笔记本上完成编译与测试的容器,可批量部署至生产环境,涵盖 VMs(虚拟机)、裸机、OpenStack 集群以及其他基础应用平台。其核心优势在于,能将应用程序及其依赖项打包成独立容器。

          以 DeepSeek 部署为例,借助 Docker,可确保 DeepSeek-R1 在不同环境下拥有一致的运行状态。无论是开发、测试还是生产环境,只要安装了 Docker,就能够运行相同的 DeepSeek-R1 容器,有效规避因环境差异引发的兼容性难题,极大提升了部署效率与稳定性。

          docker的安装请参考 Windows安装 WSL2、Ubuntu 、docker

          上文中基于 WSL2 搭建了 Ubuntu 虚拟环境,并在其中完成了 docker 的安装。实际上,在 Linux 系统下安装 docker 的流程与之相似,大家只需依据自己的 Linux 发行版,按照相应的官方文档或指南进行操作即可。

          安装成功如下图

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          6,Open WebUI 安装

          Open WebUI 作为一款开源的、功能强大的大模型 WebUI 工具,能为我们提供专业级的对话平台,不仅可以让我们轻松对接 DeepSeek-R1,还支持图形化界面操作,极大地提升使用的便捷性和灵活性。

          Open WebUI官网

          GPU 版本: 如果您想使用 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 版本: 如果您的设备没有 GPU,请运行:

          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
          

          在这里我们选择GPU版。选择GPU版前提配置NVIDIA的GPU驱动,可在windows powerShell中输入nvidia-smi查看详细情况(没有合适显卡的选择cpu版本)

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          注意:wsl2和windows共享一个nvidia驱动,但是不包含容器工具包。所以windows安装nvidia驱动,ubuntu安装 NVIDIA Container Toolkit 否则会出现错误

          Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
          

          ubuntu安装 NVIDIA Container Toolkit 根据英伟达官方文档,直接执行以下内容

          #在ubuntu中依次执行
          curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
            && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
              sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
              sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
          #更新内核
          sudo apt-get update
          #安装nvidia-container-toolkit
          sudo apt-get install -y nvidia-container-toolkit
          

          安装成功如下图

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          最后ubuntu系统强制指定为独显

          #  在~/.bashrc文件最下方中添加一下内容 重启生效
          export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA 
          
          #获取权限
          sudo -i
          #停止之前测试时的 ollama 服务 否则11434端口冲突
          systemctl stop ollama
          # 检查11434端口是否占用
          lsof -i:11434
          #启动容器 open-webui
          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
          #启动 docker 容器中运行 ollama
          docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
          #查看容器列表
          docker ps
          

          看到容器已经成功启动如下图:

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          访问 http://127.0.0.1:3000/

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          首次访问需要注册一个账号

          设置ollama api地址

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          最终效果如下图

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          查看任务管理器gpu已经参与工作

          DeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

          反复测试发现磁盘读写很高成了响应瓶颈 建议大家使用SSDDeepSeek-R1本地化部署 java调用 图文教程(Ollama+Docker+OpenWebUI)

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码