简话 RAG 本地部署(DeepSeek + RAGFlow)

一、前置说明

1、RAG(Retrieval-Augmented Generation 检索增强生成)技术
  • 先把自己的私有资料(文本、图片等)收集到一个 “知识库”
  • 让AI从知识库中搜索可用资料,整理成增强版的提示词后交给大模型,让大模型统筹通用知识和你的私有知识后,再输出答案
  • 解决问题:
    • 当你问的问题大模型不知道的时候,会胡说八道(RAG 让他可以从你的知识库中寻找答案)
    • 你自己的私有资料需要保密
2、本地部署环境:
  • 操作系统:Windows 11(RAM32G,GPU2G)(中配笔记本电脑)
  • 部署运行 DeepSeek:Ollama + DeepSeek
    • Ollama:本地运行大型语言模型的工具
  • 部署运行 RAG:Docker + RAGFlow
    • Docker:一键运行人家帮你集成打包好的 RAGFlow 平台
    • RAGFlow:用于实现 “检索增强生成(RAG)” 的平台,可以傻瓜式完成一个简易的 RAG 系统,就如同本文
      • 自带 Embedding 大模型,并自动创建和维护向量数据库(知识库)
      • 可以通过界面来快速构建知识库、对话助手

二、部署步骤

1、本地部署 DeepSeek

这里选择 Ollama + DeepSeek 的组合,我前面有一篇文章专门说了方法,这里不再赘述,见《 简话 DeepSeek 本地部署及接口调用
另外,为了确保部署在 Docker 中的 RAGFlow 能够正确地与 Ollama 进行通信 ,需要添加一个环境变量:
<
### 部署RAG模型的关键要素 在部署检索增强生成(Retrieval-Augmented Generation, RAG)模型时,需考虑多个方面以确保其有效性和效率。为了使该过程顺利进行,应关注以下几个要点: #### 数据源集成 成功实施RAG的第一步是准备高质量的数据集作为支持材料。这些资料可以来自内部数据库或者外部API接口,取决于具体应用场景的需求[^2]。 #### 架构设计 架构的选择对于实现高效的查询处理至关重要。通常情况下会采用两阶段方法:首先是利用索引结构快速定位潜在有用的文档片段;其次是把这些片段传递给语言理解组件做进一步分析并合成最终的回答形式[^1]。 #### 性能优化 考虑到实时交互的要求,在线推理速度是一个不可忽视的因素。为此可以通过调整批处理大小、缓存机制以及异步调用来提升整体吞吐量和降低延迟时间。此外,还可以探索近似最近邻搜索算法(Approximate Nearest Neighbor Search),它能在不影响精度的前提下显著加快检索流程[^3]。 ```python from transformers import RagTokenizer, RagRetriever, RagSequenceForGeneration tokenizer = RagTokenizer.from_pretrained("facebook/rag-token-nq") retriever = RagRetriever.from_pretrained( "facebook/dpr-question_encoder-single-nq-base", index_name="exact", indexed_dataset_path="./indexed_data" ) model = RagSequenceForGeneration.from_pretrained("facebook/rag-sequence-nq") def generate_answer(question): input_ids = tokenizer.question_encoder(question, return_tensors="pt").input_ids generated = model.generate(input_ids=input_ids, retriever=retriever) answer = tokenizer.batch_decode(generated, skip_special_tokens=True)[0] return answer ``` #### 安全性考量 当涉及到敏感信息时,保护用户隐私成为重中之重。因此建议采取加密传输通道(HTTPS/TLS)、访问控制列表(ACLs)以及其他必要的安全措施来保障系统的安全性。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值