当前位置: 首页 > news >正文

【一起来学AI大模型】RAG系统流程:查询→向量化→检索→生成

RAG(Retrieval-Augmented Generation)系统核心流程非常精准:
查询 → 向量化 → 检索 → 生成
这是 RAG 实现“知识增强”的关键路径。下面我们结合具体组件(如 ChromaDB、LangChain 检索器)详细拆解每个步骤,并补充关键细节:


1. 查询(Query)

  • 用户输入:自然语言问题或指令(例如:“量子计算的主要挑战是什么?”)。

  • 核心任务:系统接收原始查询,准备进行语义理解。

  • 潜在预处理

    • 拼写校正、敏感词过滤(可选)

    • 意图识别(高级场景)


2. 向量化(Embedding)

  • 目标:将文本查询转化为机器可理解的高维向量(Embedding)。

  • 技术核心

    • 嵌入模型(Embedding Model):如 OpenAI text-embedding-3-smallBAAI/bge-base-en-v1.5 等。

    • 同一模型原则:必须使用与构建知识库时相同的嵌入模型,保证向量空间一致性。

  • 输出

    query_vector = embed_model.encode("量子计算的主要挑战是什么?")  # 例如 [0.23, -0.87, ..., 0.45] (维度通常为 384~1536)


3. 检索(Retrieval)

  • 目标:从知识库中找出与 query_vector 最相关的文本片段(Context)。

  • 核心组件协作

    组件作用示例(LangChain + ChromaDB)
    向量数据库存储知识库向量,执行高效相似性搜索ChromaDBPineconeWeaviate
    检索器 (Retriever)封装搜索逻辑,返回 Document 对象列表vectorstore.as_retriever(search_kwargs={"k": 5})
    搜索算法计算相似度(余弦/L2距离),应用 HNSW 等近似最近邻算法加速search_type="mmr" (兼顾相关性与多样性)
    元数据过滤按来源/日期等条件筛选结果filter={"source": "arxiv"}
  • 关键输出

    [Document(page_content="量子比特的退相干问题是...", metadata={"source": "paper_2023.pdf"}),Document(page_content="错误校正需要大量物理量子比特...", metadata={"source": "tech_blog.md"}),... # 返回 top-k 个相关片段
    ]


4. 生成(Generation)

  • 目标:将 原始查询 + 检索到的上下文 组合成 Prompt,输入大语言模型(LLM)生成最终答案。

  • 技术流程

    1. Prompt 构造

      prompt_template = """
      基于以下上下文回答问题:
      {context}
      问题:{question}
      """
      prompt = prompt_template.format(context=retrieved_docs, question=user_query)

    2. LLM 推理

      • 模型:GPT-4Llama 3Claude 3 等。

      • 关键参数:temperature=0(减少随机性),max_tokens=500(控制长度)。

    3. 输出解析:提取结构化答案(如 JSON)或纯文本。

  • 生成示例

    用户问题:量子计算的主要挑战是什么?
    LLM 输出
    量子计算面临的核心挑战包括:

    1. 量子退相干:量子比特极易受环境干扰导致信息丢失;

    2. 错误校正难题:需数千物理量子比特实现1个逻辑比特的容错;

    3. 低温要求:量子处理器需接近绝对零度的运行环境。
      (来源:paper_2023.pdf, tech_blog.md)


关键优化点 & 常见挑战

环节优化策略挑战与风险
向量化选用更强嵌入模型
领域微调 embedding
长文本表征失真
多语言支持不足
检索混合检索(关键词+向量)
重排序(Cohere Rerank)
元数据动态过滤
低相关性片段混入
知识库覆盖不全
生成提示工程优化
上下文压缩(避免 token 超限)
让 LLM 引用来源
幻觉(Hallucination)
上下文理解偏差

完整技术栈示例(LangChain + ChromaDB)

from langchain_community.vectorstores import Chroma
from langchain_community.embeddings import OpenAIEmbeddings
from langchain_openai import ChatOpenAI
from langchain.chains import RetrievalQA# 1. 加载向量数据库
embedding = OpenAIEmbeddings()
vectorstore = Chroma(persist_directory="./chroma_db", embedding_function=embedding)# 2. 创建检索器(融合元数据过滤)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3, "filter": {"publish_year": {"$gte": 2022}}}
)# 3. 构建 RAG 链
qa_chain = RetrievalQA.from_chain_type(llm=ChatOpenAI(model="gpt-4-turbo"),chain_type="stuff",  # 简单拼接上下文retriever=retriever,return_source_documents=True
)# 4. 执行全流程
query = "量子计算在药物研发中的最新进展?"
result = qa_chain.invoke({"query": query})
print(result["result"])  # 生成答案
print(result["source_documents"])  # 检索来源

为什么这个流程有效?

  1. 知识实时性:检索动态获取最新数据(无需重新训练 LLM)。

  2. 可信度提升:答案基于检索到的证据(可溯源)。

  3. 成本可控:避免将海量知识预注入 LLM 参数。

通过精准控制 查询→向量化→检索→生成 的每个环节,RAG 系统在知识密集型任务中显著优于纯 LLM 生成,成为企业级 AI 应用的核心架构。

http://www.lryc.cn/news/586592.html

相关文章:

  • 【AI News | 20250711】每日AI进展
  • 【TOOL】ubuntu升级cmake版本
  • AI产品经理面试宝典第12天:AI产品经理的思维与转型路径面试题与答法
  • 功耗校准数据PowerProfile测试方法建议
  • 【深度剖析】致力“四个最”的君乐宝数字化转型(下篇:转型成效5-打造数字化生存能力探索可持续发展路径)
  • VUE3 el-table 主子表 显示
  • Transformer基础
  • Openpyxl:Python操作Excel的利器
  • Qt 多线程编程:单例任务队列的设计与实现
  • 五、深度学习——CNN
  • NW728NW733美光固态闪存NW745NW746
  • C语言32个关键字
  • 锁相环初探
  • Python Day11
  • 《Spring 中上下文传递的那些事儿》Part 11:上下文传递最佳实践总结与架构演进方向
  • LeetCode题解---<485.最大连续1的个数>
  • [Token]Token merging for Vision Generation
  • 【嘉立创】四层板设计
  • 当大模型遇见毫米波:用Wi-Fi信号做“透视”的室内语义SLAM实践——从CSI到神经辐射场的端到端开源方案
  • 2025年亚太杯(中文赛项)数学建模B题【疾病的预测与大数据分析】原创论文分享
  • UnityShader——SSAO
  • Matplotlib 模块入门
  • BERT:双向Transformer革命 | 重塑自然语言理解的预训练范式
  • 从 Spring 源码到项目实战:设计模式落地经验与最佳实践
  • RMSNorm实现
  • 【离线数仓项目】——数据模型开发实战
  • Druid 连接池使用详解
  • 未来软件开发的新方向:从工程到智能的深度演进
  • 张量类型转换
  • 巅峰对决:文心4.5 vs DeepSeek R1 vs 通义Qwen3.0——国产大模型技术路线与场景能力深度横评