问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

AI融合本地知识库(RAG),谁才是最强王者!

创作时间:
2025-03-11 16:55:45
作者:
@小白创作中心

AI融合本地知识库(RAG),谁才是最强王者!

引用
CSDN
1.
https://m.blog.csdn.net/hmx224_2014/article/details/145783200

RAG(检索增强生成)是一种结合了信息检索和文本生成技术的AI方法,它在自然语言处理(NLP)领域中广泛应用,特别是在需要从大量数据中提取知识并生成准确、自然回答的场景下。本文将详细介绍RAG的核心原理、局限性、技术栈、应用场景以及与传统LLM的区别,并提供三种具体实现方法。

简单看下DeepSeek满血版配置

硬件环境如下:

  • CPU : Intel Xeon Platinum 8480 (112核) = 3w
  • 内存:512G+ (三星64G*16) = 2.3w
  • GPU:8 * A100 (80G) = 15.5w*8 = 124w

软件环境如下:

  • 操作系统:ubuntu 20.04
  • PyTorch:2.6.0
  • CUDA:12.2
  • ollama:最新版本

网络环境如下:

  • 网络带宽 :10Gbps

本地部署的知识库,对于企业的意义最大,对于个人而言,也是一个能力放大器,也可以将个人能力无限放大。企业是不可能容忍自己的资料上传到网络的。

RAG是什么?

RAG 是Retrieval-Augmented Generation(检索增强生成)的缩写,是一种结合了信息检索和文本生成技术的AI方法。它在自然语言处理(NLP)领域中广泛应用,特别是在需要从大量数据中提取知识并生成准确、自然回答的场景下。

能将用户提问结合一个个性化的知识库,整合起来生成答案给到用户。

本地知识库可以在企业运营中慢慢磨合,不断精修数据库,让大模型和本企业契合度越来越高。再加上部署多个大模型,形成多模态agent智能体,让用户得到错误答案的概率进一步减小。这将是未来个人和企业的最优方案

RAG 的核心原理

  1. 检索(Retrieval):
  • 在外部知识库(如数据库、文档、向量数据库)中搜索相关信息。
  • 例如,搜索公司内部文档、学术论文、网页内容等。
  1. 增强(Augmented):
  • 将检索到的内容与用户输入合并,提供上下文。
  1. 生成(Generation):
  • 让 LLM基于检索到的信息生成回答,而不是完全依赖内部知识。

这使得LLM 能处理超出训练数据的最新信息,避免幻觉(hallucination)。

RAG的局限性

  • 检索质量依赖:如果检索器返回无关或错误的上下文,生成结果可能不准确。
  • 计算成本:检索和生成两步过程比纯生成模型更耗资源。
  • 知识库限制:回答质量受限于知识库的覆盖范围和内容的可靠性。

RAG 技术栈

向量数据库(用于存储和检索文档):

  • FAISS(Facebook AI)
  • Pinecone
  • Weaviate
  • ChromaDB

大语言模型(LLM)

  • OpenAI GPT-4 / GPT-3.5
  • DeepSeek
  • Claude
  • LLaMA / Mistral

检索方法

  • 关键字搜索(BM25)
  • 语义搜索(基于向量嵌入)
  • 混合检索(关键词 + 语义)

工具

  • LangChain(用于构建 RAG 管道)
  • LlamaIndex(专注于文档检索)

技术实现

RAG 通常由以下组件构成:

  • 检索器:如 DPR(基于向量相似性)或 BM25(基于关键词)。
  • 生成器:如 BART、T5 或其他预训练语言模型。
  • 知识库:可以是结构化数据(如数据库)或非结构化数据(如文本文件)。

开源实现示例:

  • Hugging Face:提供了 RAG 模型的预训练版本。
  • LangChain:一个流行的框架,支持快速搭建 RAG 应用。

RAG 的应用场景

  • 企业内部问答:让 AI 搜索公司内部文档,回答员工问题。
  • 法律 / 医疗 AI:从专业数据库中检索最新法规或医学知识。
  • 电商推荐 / 价格查询:基于数据库检索商品信息,并生成推荐文案。
  • 代码助手:从 GitHub 或文档中检索代码片段,辅助开发者。

RAG vs 传统 LLM

特点 传统 LLM RAG
数据来源 训练数据固定 实时从外部知识库检索
知识更新 不能获取新数据 可以实时获取最新信息
准确性 可能产生幻觉 依赖真实数据,提升准确性
成本 需要不断微调 无需微调,只需更新知识库

方法 1:配合 LangChain 加载知识库

LM Studio 可以通过OpenAI API 兼容模式,让LangChain连接本地大模型并结合 FAISS 或 ChromaDB 进行知识检索。

步骤:

  1. 在 LM Studio 中运行本地模型
  • 打开 LM Studio
  • 选择模型(如 DeepSeek)并点击“Launch”
  • 记住 API 地址,例如
    http://localhost:1234/v1
  1. 使用 LangChain 结合 FAISS 加载本地文档
from langchain_community.embeddings import HuggingFaceEmbeddings
from langchain_community.vectorstores import FAISS
from langchain_community.document_loaders import TextLoader
from langchain_community.text_splitter import CharacterTextSplitter
from langchain.chains import RetrievalQA
from langchain_community.llms import ChatOpenAI

# 加载本地文档
loader = TextLoader("your_document.txt")
documents = loader.load()

# 文本分割
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50)
texts = text_splitter.split_documents(documents)

# 加载嵌入模型
embedding_model = HuggingFaceEmbeddings()

# 构建 FAISS 知识库
vectorstore = FAISS.from_documents(texts, embedding_model)

# 连接 LM Studio API
llm = ChatOpenAI(openai_api_base="http://localhost:1234/v1", model_name="deepseek")

# 结合 RAG 进行问答
retriever = vectorstore.as_retriever()
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)

query = "基因检测的作用是什么?"
answer = qa_chain.run(query)
print(answer)

这样就可以让 LM Studio 结合 FAISS 进行知识库问答!

方法 2:使用 Ollama

如果你想要更简便的方式,可以使用Ollama(支持 DeepSeek)+ LM Studio 进行知识库问答:

  1. 安装 Ollama:
curl -fsSL https://ollama.com/install.sh | sh
  1. 加载模型:
ollama pull deepseek
  1. 在 LM Studio 连接 Ollama 的 API (
    http://localhost:11434
    ) 并使用 LangChain 处理知识库。

方法 3:结合 AnythinkLLM

如果你需要LM Studio + GUI 形式的知识库支持,可以考虑AnythinkLLM,它支持 DeepSeek + FAISS 直接在 UI 里管理知识库。

总结

方式 支持知识库 适用场景
LM Studio + LangChain FAISS/Chroma 需要 Python 编程
Ollama + LangChain 简单易用 低配置设备
AnythinkLLM GUI 直接管理 图形化操作

如果你不想写代码,AnythinkLLM 更合适,如果你希望更灵活,LM Studio + LangChain 更强大

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号