1698  
查询码: 00000210
DeepSeek-R1 + RAG系统部署测试
2025年03月03日 发布 ,于 2026年07月28日 编辑

背景介绍

本测试实验部署一个基于DeepSeek-R1大语言模型的RAG(检索增强生成)系统。该系统由两部分组成:一台服务器上的向量数据库服务和另一台服务器上的RAG推理服务。系统搭建后,用户可以通过Web界面向系统提问,系统会检索相关文档并生成基于检索内容的准确回答。

系统支持的知识库包含:

  1. 引用自天数智芯官网的新闻的"Infini-AI异构云平台的介绍"
  2. "哪吒之魔童闹海"的维基百科内容

环境要求

需要两台能访问互联网的服务器:

  • 服务器A:用于部署向量数据库服务
  • 服务器B:用于部署DeepSeek-R1推理服务和RAG服务

第一部分:在服务器A上部署向量数据库

容器准备

基于较新的软件栈部署Docker环境,确保Docker能够访问互联网。需要开放端口供向量数据库提供对外服务:

docker run -p 8001:8001 [其他参数] [镜像名称]

如果使用其他端口号,需要相应修改add_data_to_chroma.pylaunch_server.sh中的port参数。

进入容器后,安装所需依赖:

pip3 install -r requirements.txt

下载embedding模型

使用m3e-base作为embedding模型:

  1. 下载模型
  2. 修改add_data_to_chroma.py中的embedding_model_path为模型的本地路径

处理特定格式文件需要NLTK数据:

  1. 下载nltk_data的官方GitHub仓库:https://github.com/nltk/nltk_data
  2. packages目录重命名为nltk_data
  3. add_data_to_chroma.py开头添加:
import nltk_NLTK_PATH = "/path/to/your/nltk_data"nltk.data.path.insert(0, _NLTK_PATH)

向Chroma添加知识库文档

Chroma支持多种格式文档(md/pdf/doc/txt等)和网络链接:

  1. 将本地文档放置在demo_data目录下
  2. add_data_to_chroma.py中的data_path_list添加文档路径或网络链接:
data_path_list = [f"{cwd}/demo_data", "https://zh.wikipedia.org/zh-cn/%E5%93%AA%E5%90%92%E4%B9%8B%E9%AD%94%E7%AB%A5%E9%97%B9%E6%B5%B7"]

启动向量数据库服务:

bash launch_server.sh

注意:在CentOS或版本较老的系统上可能遇到SQLite版本问题,此时需要在/usr/local/lib64/python3.10/site-packages/chromadb/__init__.py文件开头添加:

__import__("pysqlite3")
import sys
sys.modules['sqlite3'] = sys.modules.pop("pysqlite3")

新开一个窗口,运行以下命令将文档添加到向量数据库:

python add_data_to_chroma.py

第二部分:在服务器B上部署RAG服务

容器准备

基于较新的软件栈部署Docker环境,确保容器中的VLLM可正常运行。需要开放端口供RAG提供Web服务:

docker run -p 3333:3333 [其他参数] [镜像名称]

如需使用其他端口,相应修改launch_app.sh中的port

进入容器后,安装所需依赖:

pip3 install -r requirements.txt

下载模型

DeepSeek-R1-Distill-Qwen-32B作为LLM推理模型:

  1. ModelScope下载模型
  2. 修改launch_vllm.sh中的model为模型的本地路径
  3. 修改模型的tokenizer_config.json,将chat_template中的最后部分从{{'<Assistant><think>\\n'}}{% endif %}"改为{{'<Assistant>'}}{% endif %}"以获得更好的RAG效果

注意:如果需要使用70B的蒸馏模型DeepSeek-R1-Distill-Llama-70B,需要将--tensor-parallel-size设置为8

同样需要下载embedding模型m3e-base,并修改rag.py中的embedding_model_path为本地路径。

修改rag.py中的chroma_hostchroma_port为部署的向量数据库服务器(服务器A)IP地址和端口号。

运行VLLM服务并确认服务日志正常:

bash launch_vllm.sh

测试RAG服务

本地测试RAG服务:

python3 test_rag_local.py

启动RAGWeb应用:

bash launch_app.sh

在浏览器中访问http://{host_ip}:3333,其中{host_ip}为服务器BIP地址。

测试结果

笔记



 附件

附件类型

PNGPNG

  目录
    天数智芯知识库系统 -V 5.2.7 -wcp