17  
查询码: 00000209
DeepSeek-R1 + RAG + Web界面问答系统部署指南
作者: 滕天逸 于 2025年03月03日 ,于 2025年05月14日 编辑

背景介绍

RAG(检索增强生成)是一种将检索技术与生成式AI结合的技术,可以让AI模型基于特定知识库生成更准确的回答。本指南将帮助你在两台服务器上部署一个基于DeepSeek-R1(671B - int8)大语言模型的RAG系统,使用本地数据辅助问答生成,并开启一个WEB端口作为用户交互界面。

环境需求

  • 两台服务器
  • 有高宽带网卡互联,配置网络接口用于NCCL和Gloo通信
  • 天数软件栈环境
文档中示例使用的服务器地址:

  • 主节点(n110):IP地址为10.31.10.110
  • 子节点(n113):IP地址为10.31.10.113
  • 两机通过InfiniBand(ib)网卡互联

第一部分:部署DeepSeek-R1推理服务

本文档的Deepseek部署是基于DeepSeek-V3及DeepSeek-R1 671B在天数加速卡部署指南-知识分享平台的双服务器模式,详细步骤请参考原文档。

1. 在两台服务器上启动Ray服务

Ray是一个用于分布式计算的框架,可以在多台机器上分布式运行AI工作负载。

在主节点(n110)执行:

停止任何现有Ray服务:

ray stop
 启动Ray头节点服务:

ray start --block --head --port=6379 --num-gpus=16

在子节点(n113)执行:

停止任何现有Ray服务:

ray stop
设置网络环境变量并启动Ray工作节点:

export GLOO_SOCKET_IFNAME=bond0;export NCCL_SOCKET_IFNAME=bond0;export VLLM_FORCE_NCCL_COMM=1;export MASTER_ADDR="10.31.10.110"
ray start --block --address=$MASTER_ADDR:6379 --num-gpus=16

环境变量说明:

  • GLOO_SOCKET_IFNAME=bond0: 指定Gloo(一个通信库)使用bond0网络接口
  • NCCL_SOCKET_IFNAME=bond0: 指定NCCL(NVIDIA Collective Communications Library)使用bond0网络接口
  • VLLM_FORCE_NCCL_COMM=1: 强制VLLM使用NCCL进行通信
  • MASTER_ADDR="10.31.10.110": 设置主节点地址

2. 在主节点启动推理服务

在主节点(n110)执行:

设置网络环境变量:

export NCCL_SOCKET_IFNAME=bond0;export VLLM_FORCE_NCCL_COMM=1;export GLOO_SOCKET_IFNAME=bond0
启动模型推理服务:

python3 -m vllm.entrypoints.openai.api_server --model /data1/model/DeepSeek-R1-int8/ --served-model-name rag_llm_model --pipeline-parallel-size 4 --tensor-parallel-size 8 --trust-remote-code --max-model-len 10240

参数说明:

  • --pipeline-parallel-size 4: 使用4路流水线并行
  • --tensor-parallel-size 8: 使用8路张量并行
  • --max-model-len 10240: 设置最大序列长度为10240token

第二部分:部署RAG和交互端口

本文档的RAG和交互端口部署是基于DeepSeek-R1 + RAG系统部署测试-知识分享平台的测试,详细步骤请参考原文档。

1. 在子节点添加数据并启动向量数据库

在子节点(n113)执行:

获取RAG演示代码:

git clone ssh://git@bitbucket.iluvatar.ai:7999/psr/dist_rag_demo.git 
添加数据到向量数据库:

编辑
add_data_to_chroma.py
文件,在
data_path_list
变量中添加你需要处理的数据路径

执行脚本将数据添加到Chroma:

Chroma是一种向量数据库,用于存储文档的嵌入表示,以便进行语义搜索。

python3 add_data_to_chroma.py
启动Chroma服务:

cd dist_rag_demo/vector_db_server
bash launch_server.sh

2. 在主节点设置RAG服务

在主节点(n110)执行:

获取RAG演示代码:

git clone ssh://git@bitbucket.iluvatar.ai:7999/psr/dist_rag_demo.git
进入RAG服务器目录:

cd dist_rag_demo/rag_server 
本地测试RAG服务:

python3 test_rag_local.py
启动Web界面:

bash launch_app.sh

这会在3333端口开启Web服务,作为用户交互界面

系统工作原理

部署完成后,用户可以通过访问主节点的3333端口来使用RAG系统。这种设置允许用户通过Web界面向系统提问,系统会:

  1. 从问题中提取关键信息
  2. 在向量数据库中检索相关文档
  3. 将检索到的信息与原始问题一起发送给语言模型
  4. 生成基于检索内容的更准确的回答
笔记



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