在许多企业场景中,数据不能离开内网,甚至不能经过任何外部服务。金融、政务、军工、医疗等行业对数据主权和网络隔离有刚性要求。私有化部署的 RAG 方案必须做到全链路离线运行,同时确保数据在存储、传输、使用各环节的安全。本节介绍一套经过实践验证的部署架构与安全策略。
22.4.1 全链路离线部署的组件选型
要实现完全离线,RAG 技术栈中的每一个组件都必须有可本地部署、不依赖外部 API 的版本。
嵌入模型(Embedding Model)
- 选型:使用开源嵌入模型,如 BGE(BAAI General Embedding)、M3E、text2vec 系列。这些模型在中文场景表现优秀,且支持本地部署。
- 部署方式:通过 ONNX Runtime、TensorRT 或 vLLM 等推理框架加载模型,对外提供本地 API。模型文件只需在部署初期一次性下载,后续完全离线运行。
向量数据库
- 选型:Milvus、Qdrant、Weaviate、Elasticsearch(8.x 以上原生支持向量)等均支持纯本地部署,无需云服务。
- 部署方式:Docker Compose 或 Kubernetes 本地集群拉起,数据持久化到内网存储(NAS、本地磁盘阵列)。关闭遥测功能,确保无数据外传。
大语言模型(LLM)
- 选型:使用可本地部署的开源大模型,如 Qwen(通义千问)、ChatGLM、Baichuan、Llama 系列等。根据硬件条件选择 7B、13B、70B 等尺寸。
- 部署方式:vLLM、llama.cpp、Text Generation Inference 等框架均可本地部署,提供 OpenAI 兼容 API 接口。支持量化(INT4/INT8)以降低资源消耗。
- 硬件:若选用 7B 量化模型,单张 A10/A100 或消费级 24GB 显存显卡即可,甚至可以在 CPU 上运行(速度较慢但满足低并发)。
文档解析与切片
- 文档解析框架如 Unstructured、LangChain 的 Document Loaders、自研解析服务,全部在内网执行,文件不会离开服务器。
整体架构可以概括为:
用户浏览器/客户端(内网)
│
▼
应用后端(内网服务器)
├──> 向量数据库(本地)
├──> 嵌入模型服务(本地 GPU/CPU)
└──> LLM 推理服务(本地 GPU)
所有组件之间通过内网 HTTP/gRPC 通信,无需互联网连接。首次部署时,模型文件、依赖镜像可在安全环境中下载,校验后移入内网。
22.4.2 数据安全保障措施
私有化部署解决了网络链路问题,但数据安全还需要在多个层面加固。
1. 知识库文档的访问控制
原始文档往往包含敏感信息,不是所有用户都能查看所有文档。需要在 RAG 的检索阶段就嵌入权限过滤。
- 做法:在向量入库时,为每个文本切片附加权限标签(如部门、密级、用户组)。检索时,根据当前用户的身份信息,在查询向量之外附加过滤条件,向量数据库只返回该用户有权访问的切片。
- 实现:Milvus 支持标量过滤、Qdrant 支持 payload 过滤、Elasticsearch 支持布尔查询与向量混合检索。
- 效果:即使两个用户提出完全相同的问题,他们看到的答案所依据的片段也不同,从数据源头上实现了细粒度权限隔离。
2. 传输与存储加密
- 传输层:所有组件间通信强制使用 HTTPS/TLS,内网同样建议加密,防止旁路嗅探。
- 存储层:向量数据库的持久化存储可使用磁盘加密(LUKS、自加密硬盘)。原始文档存储同样需要加密,建议使用对象存储(如 MinIO)开启服务端加密。
3. 日志与审计脱敏
- 用户提问和生成的回答可能包含敏感信息,日志系统必须支持自动脱敏或选择性记录。
- 可以保留检索片段 ID 和生成结果摘要用于质量监控,但避免明文记录完整问题和答案。审计日志的访问权限严格限定给安全管理员。
4. 模型安全
- 本地部署的开源模型不会自动将数据外传,但仍需注意:关闭任何可能的上报或遥测功能(如部分框架的匿名统计)。
- 模型文件本身经过完整性校验(SHA256),确保未遭篡改。
5. 网络完全隔离
- 整个 RAG 服务集群部署在独立的安全域,通过防火墙策略完全阻断出站流量(除必要的内部服务通信)。
- 运维时如需更新模型或知识库,通过专用物理介质或单向导入设备(如网闸、光闸)将经过安全扫描的数据移入。
22.4.3 典型部署规模的参考配置
下面给出小、中、大三种规模的参考配置,企业可根据实际请求量和预算选择。
| 规模 | 适用场景 | 嵌入模型 | LLM | 向量数据库 | 服务器配置举例 |
| -------------- | ---------------------- | --------------------- | ------------------- | -------------- | ----------------------------- |
| 小型(试点) | <50 并发,内部 POC | BGE-small(CPU 即可) | Qwen-7B(INT4量化) | Qdrant 单节点 | 一台服务器:2×24GB GPU + 64GB 内存 |
| 中型(部门级) | 50-200 并发,日常使用 | BGE-base(GPU) | Qwen-14B(INT8) | Milvus 集群 | 2-3 台 GPU 节点 + 1 台存储节点 |
| 大型(企业级) | >200 并发,多个业务线 | BGE-large(GPU) | Qwen-72B / 多模型组合| Milvus 分布式 | 10+ GPU 节点,高性能存储网络 |
22.4.4 高可用与灾备
- 向量数据库配置副本,数据同步到不同物理节点或机架。
- LLM 推理服务可做负载均衡,通过多个实例分担请求,单个实例故障不影响整体。
- 定期备份向量数据和原始文档,备份数据加密后异地(不同机房或灾备中心)保存。
- 制定回滚预案:当知识库更新引起回答质量下降时,可快速切换回上一版本索引。
22.4.5 实施步骤概览
- 环境准备:在内网准备好 Docker/Kubernetes 基础平台,确认 GPU 驱动和 CUDA 环境。
- 模型获取:在可信网络上下载开源模型,校验哈希后通过安全方式传输到内网。
- 部署基础组件:依次拉起向量数据库、嵌入模型服务、LLM 推理服务,验证连通性。
- 构建知识索引:将内部文档经加密链路导入,预处理、切片、向量化后存入数据库。
- 对接应用:开发或接入业务前端,实现权限过滤、问答接口、溯源展示。
- 安全校验:进行渗透测试,确认所有外联均已阻断,日志脱敏生效,权限过滤正确。
- 上线与监控:监控各组件资源使用率、检索延迟、生成质量,设置告警。
通过以上方案,企业可以在完全掌控的私有环境中运行 RAG 系统,既享受了检索增强生成带来的准确性和实时性,又确保了核心数据不出内网、不经过第三方,满足最严格的数据安全与合规要求。