当前位置: 首页 > news >正文

新鲜速递:DeepSeek-R1开源大模型本地部署实战—Ollama + MaxKB 搭建RAG检索增强生成应用

在AI技术快速发展的今天,开源大模型的本地化部署正在成为开发者们的热门实践方向。最火的莫过于吊打OpenAI过亿成本的纯国产DeepSeek开源大模型,就在刚刚,凭一己之力让英伟达大跌18%,纳斯达克大跌3.7%,足足是给中国AI产业扬眉吐气了一回。

本文将手把手教大家如何利用DeepSeek-R1开源大模型,通过Ollama工具实现本地部署,并结合MaxKB搭建一个简单的RAG(检索增强生成)应用。

一、环境准备

在开始之前,请确保你的开发环境满足以下要求:

操作系统:Windows/Mac/Linux
Python版本:3.8及以上
硬件要求:建议使用NVIDIA显卡,至少16GB内存
安装工具:Git、Python3.9、pip、pytorch,实现请准备好CUDA驱动、pytorch的GPU版本

运行nvidia-smi命令可以查看CUDA版本在这里插入图片描述
然后到https://developer.nvidia.com/cuda-toolkit-archive下载对应版本的CUDA Toolkit
在这里插入图片描述
接下来安装cuDNN:https://developer.nvidia.com/rdp/cudnn-archive,找好对应CUDA版本的cuDNN
在这里插入图片描述
再接下来安装pytorch,到官网https://pytorch.org/get-started/locally/
在这里插入图片描述
当环境准备妥当之后,进入python,输入import torch,再输入torch.cuda.is_available()回车,看看是不是True,如果不是,则说明安装的版本不正确,比如驱动版本不对、CUDA版本不对、python版本不对、pytorch版本不对,特别要注意使用了国内镜像安装pytorch的朋友,有可能默认命中的是cpu版本而不是gpu版本,必要时需要手动下载whl安装包进行安装。
在这里插入图片描述
如果还想要后续使用MaxKB作为界面的话,那么Windows还需要启动Hyper-V并安装Docker Desktop,Linux则安装一套docker就可以,这里不再赘述。

二、Ollama本地部署DeepSeek-R1

Ollama是一个轻量级的AI模型运行框架,支持多种开源大模型的本地化部署。以下是部署deepseek-r1的具体步骤:

1. 安装Ollama

打开终端,Linux输入以下命令安装Ollama:

curl -fsSL https://ollama.com/install.sh | sh

而Windows就相对更容易安装一些,直接到官网下载即可
在这里插入图片描述

2. 下载并安装DeepSeek-R1模型

使用Ollama拉取DeepSeek-R1模型,这里因为我用的是4090显卡,显存只有24G,所以最大能运行32b模型:

ollama run deepseek-r1:32b

如果下载速度较慢,可以尝试使用镜像源或代理加速。下载完成之后即可在命令行里进行问答。
在这里插入图片描述
其中的think标签即它的深度思考过程
在这里插入图片描述
默认情况下,Ollama会在http://localhost:11434端口提供API服务,后面搭建MaxKB会用到。

三、使用MaxKB搭建RAG应用

MaxKB是一个专注于文档问答的开源工具,支持与本地AI模型结合使用。以下是具体步骤:

1. 安装MaxKB

如果你是使用Linux操作系统,则在有docker的情况下运行

docker run -d --name=maxkb --restart=always -p 8080:8080 -v ~/.maxkb:/var/lib/postgresql/data -v ~/.python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb

如果用的是Windows操作系统,则运行

docker run -d --name=maxkb --restart=always -p 8080:8080 -v C:/maxkb:/var/lib/postgresql/data -v C:/python-packages:/opt/maxkb/app/sandbox/python-packages cr2.fit2cloud.com/1panel/maxkb

2. 配置DeepSeek-R1模型

用浏览器打开localhost:8080,按指示操作初始化管理员用户名和密码
然后到模型设置里手动填上deepseek-r1:32b模型
在这里插入图片描述
随后我们创建一个应用
在这里插入图片描述
然后我们设置这个应用,把刚才添加的AI模型选中,点击保存并发布
在这里插入图片描述
然后点击演示按钮,即可开始和deepseek-r1模型进行对话了
在这里插入图片描述
我们可以看到它在写代码方面非常出色
在这里插入图片描述
以下是它写出来的代码,效果还不错:

<template><div class="container"><h1 class="title">商品列表</h1><a-row :gutter="24"><a-col v-for="item in products" :key="item.id" :xs="24" :sm="12" :md="8" :lg="6" :xl="6"><a-card class="product-card" hoverable><template #cover><div class="image-wrapper"><a-image v-if="item.picture" :src="item.picture" alt="商品图片" /></div></template><div class="card-content"><h3 class="product-name">{{ item.name }}</h3><p class="product-description">{{ item.description }}</p><div class="price-section"><span class="price">¥{{ item.price }}</span></div><div class="action-buttons"><a-button type="primary" style="background-color: #ff6600; border-color: #ff6600;">查看详情</a-button><a-button style="margin-left: 8px; background-color: white; color: #ff6600; border-color: #ff6600;">加入购物车</a-button></div></div></a-card></a-col></a-row></div>
</template><script>
import { defineComponent } from 'vue';
import { Row, Col, Card, Image, Button } from 'ant-design-vue';export default defineComponent({components: {ARow: Row,ACol: Col,ACard: Card,AImage: Image,AButton: Button},data() {return {products: [{id: 1,name: '商品名称1',price: 99.99,picture: 'https://via.placeholder.com/200x200',description: '这是一个商品的简要描述,展示商品的基本信息。'},// 其他商品数据...]};}
});
</script><style scoped>
.container {padding: 24px;background-color: #f5f5f5;
}.title {margin-bottom: 24px;color: #333;font-size: 28px;text-align: center;
}.product-card {background-color: white;border-radius: 8px;transition: transform 0.2s;margin-bottom: 24px;
}.product-card:hover {transform: translateY(-5px);
}.image-wrapper {height: 200px;overflow: hidden;border-radius: 8px 8px 0 0;
}a-image {width: 100%;height: 100%;object-fit: cover;
}.card-content {padding: 16px;
}.product-name {margin: 0 0 12px 0;color: #333;font-size: 18px;
}.product-description {color: #666;font-size: 14px;line-height: 1.5;margin-bottom: 16px;
}.price-section {margin-bottom: 16px;
}.price {color: #ff6600;font-size: 20px;font-weight: bold;
}.action-buttons {display: flex;gap: 8px;justify-content: space-between;align-items: center;
}
</style>

那么它生成这么多token,耗时是多少呢?后台可以看到的
在这里插入图片描述
按这么算,生成速度是95tokens每秒,这么棒的效果只需要一块不到2万的4090D,简直不敢相信,相当于2万给自己找了一个会深度思考的助手,而且不是月薪,是妥妥的买断。

四、实战:构建一个简单的RAG应用

将需要问答的文档上传到MaxKB的知识库中。支持的文件格式包括PDF、Word、PPT等。
在这里插入图片描述
然后建议你上传markdown文档作为知识库,解析效率比较好,上传完成后可以批量进行向量化并生成问题。
在这里插入图片描述
在设置应用的时候勾选关联知识库即可在回答前搜索知识库。
在这里插入图片描述

五、总结

通过本文的实践,我们成功地将DeepSeek-R1模型部署到本地,并结合MaxKB搭建了一个简单的RAG应用。这种方式不仅节省了云服务的成本,还能够更好地控制数据隐私和模型性能,随时都可以对模型的回答进行RAG知识库的微调。如果你对AI技术感兴趣,不妨可以尝试一下。

相关文章:

新鲜速递:DeepSeek-R1开源大模型本地部署实战—Ollama + MaxKB 搭建RAG检索增强生成应用

在AI技术快速发展的今天&#xff0c;开源大模型的本地化部署正在成为开发者们的热门实践方向。最火的莫过于吊打OpenAI过亿成本的纯国产DeepSeek开源大模型&#xff0c;就在刚刚&#xff0c;凭一己之力让英伟达大跌18%&#xff0c;纳斯达克大跌3.7%&#xff0c;足足是给中国AI产…...

Linux_线程同步生产者消费者模型

同步的相关概念 同步&#xff1a;在保证数据安全的前提下&#xff0c;让线程能够按照某种特定的顺序访问临界资源&#xff0c;从而有效避免饥饿问题&#xff0c;叫做同步竞态条件&#xff1a;因为时序问题&#xff0c;而导致程序异常&#xff0c;我们称之为竞态条件。 同步的…...

Origami Agents:通过AI驱动的研究工具提升B2B销售效率

在当今竞争激烈的商业环境中,B2B销售团队面临着巨大的挑战,如何高效地发现潜在客户并进行精准的外展活动成为关键。Origami Agents通过其创新的AI驱动研究工具,正在彻底改变这一过程。本文将深入探讨Origami Agents的产品特性、技术架构以及其快速增长背后的成功因素。 一、…...

linux的/proc 和 /sys目录差异

/proc 和 /sys 都是Linux系统中用于提供系统信息和进行系统配置的虚拟文件系统&#xff0c;但它们的原理并不完全一样&#xff0c;以下是具体分析&#xff1a; 目的与功能 /proc &#xff1a;主要用于提供系统进程相关信息以及内核运行时的一些参数等&#xff0c;可让用户和程…...

AIGC时代的Vue或React前端开发

在AIGC&#xff08;人工智能生成内容&#xff09;时代&#xff0c;Vue开发正经历着深刻的变革。以下是对AIGC时代Vue开发的详细分析&#xff1a; 一、AIGC技术对Vue开发的影响 代码生成与自动化 AIGC技术使得开发者能够借助智能工具快速生成和优化Vue代码。例如&#xff0c;通…...

代码随想录算法训练营第三十九天-动态规划-337. 打家劫舍 III

老师讲这是树形dp的入门题目解题思路是以二叉树的遍历&#xff08;递归三部曲&#xff09;再结合动规五部曲dp数组如何定义&#xff1a;只需要定义一个二个元素的数组&#xff0c;dp[0]与dp[1] dp[0]表示不偷当前节点的最大价值dp[1]表示偷当前节点后的最大价值这样可以把每个节…...

Java线程认识和Object的一些方法

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 要对Java线程有整体了解&#xff0c;深入认识到里面的一些方法和Object对象方法的区别。认识到Java对象的ObjectMonitor&#xff0c;这有助于后面的Synchron…...

【算法应用】基于A*-蚁群算法求解无人机城市多任务点配送路径问题

目录 1.A星算法原理2.蚁群算法原理3.结果展示4.代码获取 1.A星算法原理 A*算法是一种基于图搜索的智能启发式算法&#xff0c;它具有高稳定性和高节点搜索效率。主要原理为&#xff1a;以起点作为初始节点&#xff0c;将其加入开放列表。从开放列表中选择具有最小总代价值 f (…...

电梯系统的UML文档14

对于 HallButtonControl&#xff0c;我们有二个状态: "门厅灯开 " 和 " 门厅灯关"。 从给出的初始信息&#xff0c;初始的状态应该是"门厅灯关"。行为定义&#xff1a; " 当 HallCall[f&#xff0c;d]是真&#xff0c;则指令 HallLight[f&…...

一种用于低成本水质监测的软传感器开源方法:以硝酸盐(NO3⁻)浓度为例

论文标题 A Soft Sensor Open-Source Methodology for Inexpensive Monitoring of Water Quality: A Case Study of NO3− Concentrations 作者信息 Antonio Jess Chaves, ITIS Software, University of Mlaga, 29071 Mlaga, Spain Cristian Martn, ITIS Software, Universi…...

[250130] VirtualBox 7.1.6 维护版本发布 | Anthropic API 推出全新引用功能

目录 VirtualBox 7.1.6 维护版本发布⚙️ 功能改进&#x1f6e0;️ Bug 修复 Anthropic API 推出全新引用功能&#xff0c;让 Claude 的回答更可信 VirtualBox 7.1.6 维护版本发布 VirtualBox 7.1.6 现已发布&#xff0c;这是一个维护版本&#xff0c;主要修复了一些错误并进行…...

JVM_类的加载、链接、初始化、卸载、主动使用、被动使用

①. 说说类加载分几步&#xff1f; ①. 按照Java虚拟机规范,从class文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下7个阶段: 第一过程的加载(loading)也称为装载验证、准备、解析3个部分统称为链接(Linking)在Java中数据类型分为基本数据类型和引用数据…...

2025最新版MySQL安装使用指南

2025最新版MySQL安装使用指南 The Installation and Usage Guide of the Latest Version of Oracle MySQL in 2025 By JacksonML 1. 获取MySQL 打开Chrome浏览器&#xff0c;访问官网链接&#xff1a;https://www.mysql.com/ &#xff0c;随即打开MySQL官网主页面&#xff…...

MIMIC IV数据库中mimiciv_hosp的transfers表的careunit分析

以下是MIMIC IV数据库中mimiciv_hosp的transfers表的careunit的所有值&#xff0c;从医学专业角度分析&#xff0c;下面哪些科室会有实施心脏或神经手术&#xff1f; Cardiac Surgery Cardiac Vascular Intensive Care Unit (CVICU) Cardiology Cardiology Surgery Intermediat…...

AI学习指南HuggingFace篇-Hugging Face 的环境搭建

一、引言 Hugging Face作为自然语言处理(NLP)领域的强大工具,提供了丰富的预训练模型和数据集,极大地简化了开发流程。本文将详细介绍如何搭建适合Hugging Face开发的环境,包括Python环境配置、依赖安装以及推荐的开发工具,帮助读者准备好开发环境。 二、Python环境配置…...

白嫖DeepSeek:一分钟完成本地部署AI

1. 必备软件 LM-Studio 大模型客户端DeepSeek-R1 模型文件 LM-Studio 是一个支持众多流行模型的AI客户端&#xff0c;DeepSeek是最新流行的堪比GPT-o1的开源AI大模型。 2. 下载软件和模型文件 2.1 下载LM-Studio 官方网址&#xff1a;https://lmstudio.ai 打开官网&#x…...

C# dataGridView1获取选中行的名字

在视觉项目中编写的框架需要能够选择产品或复制产品等方便后续换型&#xff0c;视觉调试仅需调试相机图像、调试视觉相关参数、标定&#xff0c;再试跑调试优化参数。 C# dataGridView1 鼠标点击某一行能够计算出是那一行 使用CellMouseClick事件 首先&#xff0c;在Form的构造…...

Day28(补)-【AI思考】-AI会不会考虑自己的需求?

文章目录 AI会不会考虑自己的需求&#xff1f;一、**技术本质&#xff1a;深度≠理解**二、**传播机制&#xff1a;热搜如何制造幻觉**三、**伦理考量&#xff1a;为何必须"撇清"**关键结论 AI会不会考虑自己的需求&#xff1f; 让思想碎片重焕生机的灵魂&#xff1a…...

幸运数字——蓝桥杯

1.问题描述 哈沙德数是指在某个固定的进位制当中&#xff0c;可以被各位数字之和整除的正整数。例如 126126 是十进制下的一个哈沙德数&#xff0c;因为 (126)10mod(126)0&#xff1b;126 也是八进制下的哈沙德数&#xff0c;因为 (126)10(176)8&#xff0c;(126)10​mod(176)…...

快速提升网站收录:避免常见SEO误区

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/26.html 在快速提升网站收录的过程中&#xff0c;避免常见的SEO误区是至关重要的。以下是一些常见的SEO误区及相应的避免策略&#xff1a; 一、关键词堆砌误区 误区描述&#xff1a; 很多…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装

以下是基于 vant-ui&#xff08;适配 Vue2 版本 &#xff09;实现截图中照片上传预览、删除功能&#xff0c;并封装成可复用组件的完整代码&#xff0c;包含样式和逻辑实现&#xff0c;可直接在 Vue2 项目中使用&#xff1a; 1. 封装的图片上传组件 ImageUploader.vue <te…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

短视频矩阵系统文案创作功能开发实践,定制化开发

在短视频行业迅猛发展的当下&#xff0c;企业和个人创作者为了扩大影响力、提升传播效果&#xff0c;纷纷采用短视频矩阵运营策略&#xff0c;同时管理多个平台、多个账号的内容发布。然而&#xff0c;频繁的文案创作需求让运营者疲于应对&#xff0c;如何高效产出高质量文案成…...

解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist

现象&#xff1a; android studio报错&#xff1a; [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决&#xff1a; 不要动CMakeLists.…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?

在工业自动化持续演进的今天&#xff0c;通信网络的角色正变得愈发关键。 2025年6月6日&#xff0c;为期三天的华南国际工业博览会在深圳国际会展中心&#xff08;宝安&#xff09;圆满落幕。作为国内工业通信领域的技术型企业&#xff0c;光路科技&#xff08;Fiberroad&…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

数据库——redis

一、Redis 介绍 1. 概述 Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的、高性能的内存键值数据库系统&#xff0c;具有以下核心特点&#xff1a; 内存存储架构&#xff1a;数据主要存储在内存中&#xff0c;提供微秒级的读写响应 多数据结构支持&…...