DeepSeek 最新发布的 R1 系列大模型凭借其卓越性能,在全球范围内引发了广泛关注。本文将以 UltraRAG 框架为例,详细介绍如何在本地部署 DeepSeek R1 模型,并深入探讨 UltraRAG 的核心功能与优势。我们将逐步引导您完成 VanillaRAG 的运行,并尝试将 DeepSeek R1 集成到 Adaptive-Note 中,通过实际案例展示其在复杂问答场景下的强大能力。
DeepSeek R1 的崛起与本地部署的必要性
DeepSeek R1 系列模型的发布,标志着国产大模型技术迈向了一个新的高度。然而,由于官方服务器资源有限,许多用户面临着“服务器繁忙”的问题,难以充分体验 R1 的强大功能。因此,掌握 DeepSeek R1 的本地部署方法显得尤为重要。本地部署不仅可以摆脱服务器拥堵的限制,还能更好地进行定制化开发和实验,充分挖掘 R1 的潜力。正如原文提到,即使是精简版的14B模型,也能在本地环境中发挥令人惊喜的效果。
UltraRAG:RAG 技术的集大成者
UltraRAG 是一个由清华大学 THUNLP、东北大学 NEUIR 等团队联合提出的 RAG (Retrieval-Augmented Generation,检索增强生成) 框架,旨在简化 RAG 系统的领域适配过程。它通过敏捷部署和模块化构建,引入自动化的“数据构建-模型微调-推理评估”知识适应技术体系,为研究人员和开发者提供一站式的 RAG 系统解决方案。UltraRAG 降低了 RAG 技术的应用门槛,即使是零代码基础的用户也能轻松上手,利用其强大的 WebUI 界面进行流水线设置和优化。例如,UltraRAG 支持 VisRAG 等多模态 RAG 解决方案,为用户提供了更加丰富的应用场景。
VanillaRAG 与 Adaptive-Note:RAG 技术的两种形态
在 UltraRAG 框架下,我们可以体验两种不同的 RAG 技术形态:VanillaRAG 和 Adaptive-Note。VanillaRAG 是最基础的 RAG 形式,它遵循典型的 Query Formation (查询构建)、Retrieval (检索) 和 Generation (生成) 工作流程,没有经过特别的优化或增强。而 Adaptive-Note 是一种自适应的笔记增强 RAG 方法,专为复杂的问答任务设计。它采用 Retriever-and-Memory 机制,迭代地收集和完善知识结构,并通过自适应记忆回顾和面向任务的生成,提高知识交互的质量。此外,Adaptive-Note 还采用了基于笔记的探索终止策略,确保信息的充分获取,最终提升答案的质量。
原文中的案例对比清晰地展示了 Adaptive-Note 的优势。当被问及“酒后打人可能面临什么法律责任?”时,VanillaRAG 的回答简单直接,仅列出了可能的指控和建议。而 Adaptive-Note 不仅总结了潜在的指控,还分析了血液酒精含量和事后态度如何影响判决和赔偿,甚至引用了法律来源,提供了充分的论证。这表明 Adaptive-Note 在处理复杂问题时,能够提供更深入、更全面的答案。该论文 (https://arxiv.org/abs/2410.08821) 对Adaptive-Note的原理进行了详细阐述,感兴趣的读者可以深入研究。
本地部署 UltraRAG 的硬件环境准备
在开始 UltraRAG 的本地部署之前,我们需要准备相应的硬件环境。DeepSeek R1 提供了多个蒸馏模型版本,包括 7B、14B、70B 和完整的 671B 版本。考虑到资源限制和性能需求,我们选择 14B 模型进行部署。以下是运行 UltraRAG 的基本硬件要求:
| Parameter | Value |
| ——————– | ————— |
| GPU | A100–80GB (or another 80GB GPU) |
| CUDA | ≥ 12.4 |
| OS | Ubuntu 22.04 (optional) |
| Disk Space | ≥ 50GB |
需要注意的是,NVIDIA GPU 驱动程序必须与 CUDA 版本兼容。否则,vllm 在运行模型时可能会遇到错误。如果遇到兼容性问题,建议重新安装驱动程序和 CUDA。NVIDIA 官方网站提供了 CUDA Toolkit 的下载,用户可以根据自己的系统环境选择合适的版本进行安装。推荐使用 runfile 方法,因为它简单易用。
UltraRAG 的配置与安装步骤详解
在拥有稳定的运行环境后,我们可以开始配置 UltraRAG。首先,从 GitHub 仓库 (https://github.com/OpenBMB/UltraRAG) 下载 UltraRAG,并将其放置在合适的目录中。接下来,需要配置 UltraRAG 所需的 Python 库依赖。
目前,有两种运行 UltraRAG 的方式:Docker 和 conda 环境。如果您的机器已经安装并配置了 nvidia-docker,并且拥有运行权限(通常需要 root 权限),那么使用 Docker 是最简单的方法。只需执行以下命令:
docker-compose up --build -d
如果您的机器没有安装 nvidia-docker,也不用担心。我们可以通过 conda 环境来运行 UltraRAG。首先,确保您的本地机器上安装了 conda。如果没有安装,请访问 Anaconda 官网获取安装说明。
接下来,需要在 conda 环境中安装 UltraRAG 的依赖项。依次运行以下命令:
# 创建 conda 环境
conda create -n ultrarag python=3.10
# 激活 conda 环境
conda activate ultrarag
# 安装相关依赖
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
完成上述步骤后,环境依赖就准备好了。接下来,我们需要下载模型。下载的模型包括 LLM 模型、embedding 模型和 reranker 模型:
| Model | Function | Download Command |
| —————————— | ————— | ————————————————————————————————————- |
| DeepSeek-R1-Distill-Qwen-14B | LLM 模型 | modelscope download --model deepseek-ai/DeepSeek-R1-Distill-Qwen-14B --local_dir ./resource/model/DeepSeek-R1-Distill-Qwen-14B
|
| MiniCPM-Embedding-Light | embedding 模型 | modelscope download --model OpenBMB/MiniCPM-Embedding-Light --local_dir ./resource/model/MiniCPM-Embedding-Light
|
| MiniCPM-Reranker-Light | reranker 模型 | modelscope download --model OpenBMB/MiniCPM-Reranker-Light --local_dir ./resource/model/MiniCPM-Reranker-Light
|
启动 LLM 服务与运行 UltraRAG WebUI
模型下载完成后,我们需要启动 LLM 服务。执行以下命令:
vllm serve DeepSeek-R1-Distill-Qwen-14B --gpu-memory-utilization 0.8 --dtype auto --api-key token-abc123
参数说明:
--gpu-memory-utilization 0.8
: 表示 GPU 使用率,在 80G VRAM 的情况下,0.8 意味着最大使用 64GB VRAM。--dtype auto
: 表示 vllm 自动选择模型参数类型。--api-key token-abc123
: 自定义模型的 API 密钥为 token-abc123。
vllm 服务部署后,将启动一个 OpenAI 兼容的服务,默认参数为:
base_url
:http://localhost:8000/v1
model
:DeepSeek-R1-Distill-Qwen-14B
api-key
:token-abc123
为了在后台持久运行,可以使用以下命令:
nohup vllm serve DeepSeek-R1-Distill-Qwen-14B --gpu-memory-utilization 0.8 --dtype auto --api-key token-abc123 &
现在,环境已经设置好,模型也已下载完成,我们可以运行 UltraRAG 了。执行以下命令:
streamlit run ultrarag/webui/webui.py --server.fileWatcherType none
如果一切顺利,您将看到 WebUI 启动并运行的结果。将显示的 URL 复制到浏览器中,即可访问 UltraRAG 的 Web 界面。该界面通常提供多个 URL,您可以选择其中任何一个进行访问。通过 WebUI,您可以轻松体验 DeepSeek R1 的强大功能,并与 UltraRAG 进行交互。
UltraRAG 的核心优势:简化 RAG 技术应用
UltraRAG 框架由清华大学 THUNLP、东北大学 NEUIR、面壁智能团队和 9#AISoft 团队联合提出,旨在通过敏捷部署和模块化构建,引入自动化的“数据构建-模型微调-推理评估”知识适应技术体系,从而简化 RAG 系统的领域适配过程。UltraRAG 的核心优势体现在以下几个方面:
- 零代码编程 WebUI 支持: 用户无需编写任何代码,即可轻松操作整个流水线设置和优化过程,包括多模态 RAG 解决方案 VisRAG。
- 一键合成和微调解决方案: 以 KBAlign 和 RAG-DDR 等专有方法为中心,提供一键式系统数据构建和性能优化,并支持多样化的检索和生成模型微调策略。
- 多维度、多阶段鲁棒评估: 基于内部 RAGEval 方法,集成了专注于有效和关键信息的多阶段评估技术,显著增强了模型评估的鲁棒性。
- 研究友好的探索性工作集成: 内置来自 THUNLP-RAG 团队的专有方法和其他前沿 RAG 方法,支持持续的模块级探索和开发。
所有这些功能都可以通过 Web 前端快速实现,极大地降低了 RAG 技术的应用门槛,方便研究人员和开发者高效地解决复杂任务。
结论与展望:DeepSeek R1 与 UltraRAG 的未来
通过本文的详细介绍,我们了解了 DeepSeek R1 模型及其在 UltraRAG 框架下的本地部署方法。UltraRAG 作为一个强大的 RAG 框架,极大地简化了 RAG 技术的应用,让更多人能够体验到大模型的强大能力。DeepSeek R1 与 UltraRAG 的结合,为我们提供了探索和开发 RAG 技术的理想平台。随着大模型技术的不断发展,我们相信 DeepSeek R1 和 UltraRAG 将在未来的应用中发挥更大的作用,推动 RAG 技术走向更加成熟和普及。 期待 UltraRAG 能够集成更多优秀的大模型,并在各个领域展现其强大的知识增强能力,为用户带来更智能、更便捷的体验。