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


一,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各方面优于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
在这里插入图片描述

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

在这里插入图片描述
安装成功如下图:
在这里插入图片描述
在这里插入图片描述

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 模型,可以选择不同版本的模型(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 

在这里插入图片描述

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

在这里插入图片描述

4,ollama 测试 deepseek-r1 模型

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

在这里插入图片描述

5,springboot 调用 deepseek-r1 模型

创建springboot工程 引入springweb ollama
在这里插入图片描述
在这里插入图片描述
工程结构如下图

在这里插入图片描述
pom文件
在这里插入图片描述

application.properties 配置文件在这里插入图片描述
写个单元测试,尝试调用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 部署对于开发者已经完成。为了更便捷地对 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 发行版,按照相应的官方文档或指南进行操作即可。
安装成功如下图
在这里插入图片描述

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版本)
在这里插入图片描述
注意: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

安装成功如下图
在这里插入图片描述
最后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

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

在这里插入图片描述

访问 http://127.0.0.1:3000/
在这里插入图片描述
首次访问需要注册一个账号

设置ollama api地址
在这里插入图片描述
在这里插入图片描述

最终效果如下图
在这里插入图片描述

查看任务管理器gpu已经参与工作
在这里插入图片描述

反复测试发现磁盘读写很高成了响应瓶颈 建议大家使用SSD在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/hugejiletuhugejiltu/article/details/145612624
今日推荐