链载Ai

标题: 玩转 Deepseek-R1 本地部署 知识库搭建 多轮RAG,保姆级教程! [打印本页]

作者: 链载Ai    时间: 昨天 17:15
标题: 玩转 Deepseek-R1 本地部署 知识库搭建 多轮RAG,保姆级教程!

最近,深度求索开源的 DeepSeek-R1 系列模型火遍全球,但因为“服务器繁忙”劝退不少人。为了解决这个问题,我们将以 UltraRAG 框架为例,为大家介绍 DeepSeek-R1 的本地部署流程,同时带领大家熟悉 UltraRAG 的细节和功能。在成功跑通 VanillaRAG 后,我们还简单尝试了在 DeepSeek-R1 加持下的 Adaptive-Note,提出法律领域的问题,效果居然出乎意料的好,有截图为证:
如上图,在 UltraRAG 上对 VanillaRAGAdaptive-Note分别提问“我喝多后撞了人可能会承担什么罪责?”VanillaRAG 简单直接,分别列出了罪名和建议,内容全面,但是稍微有点不够细致。再看看 Adaptive-Note 的回答,不光总结了可能的几点罪名,并且分析了酒精含量和事后处理态度对量刑和赔偿的影响,引经据典,令人信服。整体来看, Adaptive-Note 的回答更加可信。
ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;text-wrap: wrap;background-color: rgb(255, 255, 255);letter-spacing: 0.578px;visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;">
VanillaRAG:是最基础的 RAG(Retrieval-Augmented Generation,检索增强生成)架构,通常指的是未经优化或改进的标准 RAG 方法。它的基本流程包括:查询构造(Query Formation)、检索(Retrieval)、生成(Generation)
Adaptive-Note: 一种用于复杂问答任务的自适应笔记增强 RAG 方法,采用 检索-记忆(Retriever-and-Memory) 机制, iteratively 收集和优化知识结构。它通过自适应记忆复审和任务导向生成提高知识交互质量,并采用基于笔记的探索终止策略确保信息充分获取,以提升答案质量。论文: https://arxiv.org/abs/2410.08821
看到这里,我猜大家已经迫不及待想要体验 UltraRAG 了,所以接下来我们将手把手详细介绍 UltraRAG 的部署流程。


ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;letter-spacing: 0.544px;float: left;visibility: visible !important;width: 26px !important;"/>

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;caret-color: rgb(34, 34, 34);text-align: left;visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;">

ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;background-color: rgb(255, 255, 255);visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;">

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;caret-color: rgb(34, 34, 34);text-align: left;visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;">硬件环境准备

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;visibility: visible;line-height: 1.75em;margin-bottom: 24px;margin-left: 8px;margin-right: 8px;">

DeepSeek-R1 的模型有多个蒸馏版本,分别是 7B、14B、70B 以及满血的 671B 版本。权衡了条件和效果后,我们选择 14B 的模型进行部署,以下是运行 UltraRAG 的基本硬件要求:
这里需要注意 nvidia 的显卡驱动需要和 cuda 版本兼容,否则 vllm 运行模型有可能出现报错的情况。如果你的显卡出现不兼容的情况,可以尝试重装驱动和 cuda。这里推荐一个简单好用的安装方法,可以有效避免 cuda 和驱动的不兼容问题:登录 nvidia 官方网站(https://developer.nvidia.com/cuda-toolkit-archive),选择适合 cuda-toolkit 版本安装和安装参数(推荐使用 runfile 方式安装,真的简单好用!)。
cuda-toolkit参数配置页面

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;">

ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;visibility: visible;line-height: 1.75em;margin-left: 8px;margin-right: 8px;"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 17px;letter-spacing: 0.544px;float: left;visibility: visible !important;width: 26px !important;"/>

UltraRAG配置

好了,现在你已经拥有了一个稳定的运行环境,可以配置 UltraRAG 了。接下来从 GitHub 仓库中下载UltraRAG并放到合适的位置,https://github.com/OpenBMB/UltraRAG (点个 star 支持一下吧)。

运行 UltraRAG 有两种方法,一种通过 docker 运行,这种方式最简单,需要你的机器上已经安装配置好了 nvidia-docker ,并拥有它的运行的权限(一般情况下需要 root 权限)。这种情况下,你只需要执行这行代码就行了:
docker-composeup--build-d
如果你的机器上没有 nvidia-docker 也不要紧,可以配置 conda 环境来运行。
要确保你的本地机器安装了 conda,没有的话也可以在这个网址(https://docs.anaconda.com/miniconda/install/)中找到安装的方法,使用普通账户直接安装,几行代码很好执行~
接着,就是在 conda 环境上安装 UltraRAG 的依赖,下面的代码依次执行就好了~
#创建conda环境condacreate-nultraragpython=3.10#激活conda环境condaactivateultrarag安装相关依赖pipinstall-rrequirements.txt-ihttps://pypi.tuna.tsinghua.edu.cn/simple
以上步骤操作完成之后,环境依赖就准备好了。接下来开始下载模型。
我们需要下载以下 3 个模型,分别执行命令。
模型下载完成之后,紧接着运行 llm 服务,具体执行这个命令即可~
vllmserveDeepSeek-R1-Distill-Qwen-14B--gpu-memory-utilization0.8--dtypeauto--api-keytoken-abc123
这里简单说明一下参数的含义:
--gpu-memory-utilization 0.8:表示 GPU 的占用率,显存 80G 时,0.8 意味着最大占用 64GB 的显存。
--dtype auto:表示 vllm 自动选择模型参数类型。
--api-key token-abc123:自定义模型 API 的密钥为token-abc123。
vllm 服务部署完成后将会启动 OpenAI-Compatibly 的服务,默认参数为:
为了常驻后台,你也可以使用以下命令运行:
nohupvllmserveDeepSeek-R1-Distill-Qwen-14B--gpu-memory-utilization0.8--dtypeauto--api-keytoken-abc123&
好了,现在环境搭好了,模型也下载好了,我们现在来运行 UltraRAG:
streamlitrunultrarag/webui/webui.py--server.fileWatcherTypenone
如果一切顺利,我们会看到下图的结果。这意味着 WebUI 已经跑起来了,我们把 URL 复制到浏览器,应该就能访问页面了,你可以使用3 个 URL 中的任何一个进行访问:

和DeepSeek-R1对话

这里附上超详细视频教程,可以对照细节一步步上手:




什么是 UltraRAG?

UltraRAG 框架由清华大学 THUNLP 联合东北大学 NEUIR 、面壁智能团队及 9#AISoft 团队共同提出,基于敏捷化部署与模块化构造,引入了自动化的“数据构建-模型微调-推理评测”知识适配技术体系,提供了一站式、科研与开发双重友好的 RAG 系统解决方案。UltraRAG 显著简化了 RAG 系统在领域适配过程中,从数据构建到模型微调的全流程,助力科研人员与开发者高效应对复杂任务:
UltraRAG 框架具有以下优势:
零代码编程 WebUI 支持:零编程经验用户亦可上手操作全链路搭建和优化过程,包括 多模态 RAG 方案 VisRAG ;
合成与微调一键式解决:以自研KBAlign、RAG-DDR等方法为核心,一键式系统化数据构建 + 检索、生成模型多样微调策略支持下的性能优化;
多维多阶段稳健式评估:以自研RAGEval方法为核心,融入面向有效/关键信息的多阶段评估方法,显著提升“模型评估”的稳健性;
科研友好探索工作集成:内置THUNLP-RAG组自研方法及其他前沿RAG 方法,支持模块级持续探索与研发。

以上全部功能,都可以直接通过 web 前端快速实现。









欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5