【一起來學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)
    向量數據庫存儲知識庫向量,執行高效相似性搜索ChromaDB,?Pinecone,?Weaviate
    檢索器 (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-4,?Llama 3,?Claude 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.pswp.cn/pingmian/88499.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/88499.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/88499.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖像硬解碼和軟解碼

一、什么是圖像解碼? 圖像解碼是指將壓縮編碼(如 JPEG、PNG、WebP、H.264/AVC、H.265/HEVC 等格式)的圖像或視頻數據還原為原始像素數據(如 RGB、YUV)的過程。 解碼可以在CPU(軟件解碼)或專用硬…

Camera2API筆記

1. 常用對象CameraManager 相機服務。用于獲取相機對象和相機信息。CameraDevices 相機設備。負責連接相機、創建會話、生成拍攝請求,管理相機生命周期。CameraCaptureSession 相機拍攝會話。用于預覽和拍攝。一個相機只能有一個活躍會話。打開新會話時,…

觸控屏gt1947

比較器判斷是否翻轉,周期控制器負責控制周期(period)。sample采器有多個影子,每次采樣查看是否到了翻轉的時候。

DNS和ICMP

域名介紹在網絡通信中,需要用到ip加port,但是ip并不方便記憶,于是我們常用域名來對應一個ip例如:www.baidu.com 對應 156.36.56.98(隨便寫的)com: 一級域名. 表示這是一個企業域名. 同級的還有 "…

2022 年 12 月青少年軟編等考 C 語言六級真題解析

目錄 T1. 電話號碼T2. 區間合并T3. 撲克牌排序T4. 現代藝術思路分析T1. 電話號碼 題目鏈接:SOJ D1137 此題為 2021 年 12 月六級第一題原題,見 2021 年 12 月青少年軟編等考 C 語言六級真題解析中的 T1。 T2. 區間合并 題目鏈接:SOJ D1112 此題為 2021 年 9 月六級第三…

無鎖隊列:從零構建生產者-消費者數據結構

高性能無鎖隊列:從零構建生產者-消費者數據結構 問題的本質 生產者-消費者問題的核心挑戰不在于數據傳輸,而在于協調。傳統的鎖機制雖然簡單,但帶來了三個致命問題: 性能瓶頸:線程阻塞和上下文切換優先級反轉&#xff…

JAVA面試寶典 -《Spring IOC核心:Bean生命周期全解析》

文章目錄🌱 《Spring IOC核心:Bean生命周期全解析》1?? 引言:Bean 生命周期為什么重要?2?? Bean 生命周期概覽(圖示 簡要說明)3?? 每一步詳細解析(源碼理解 示例)3.1 &#…

Python 類型注解實戰:`Optional` 與安全數據處理的藝術

Python 類型注解實戰:Optional 與安全數據處理的藝術 在 Python 開發中,類型注解(Type Hints)已經成為現代 Python 項目的標配。本文將通過一個真實的認證令牌獲取函數 get_auth_token(),深入解析 Optional 類型的應用…

深入MyBatis:CRUD操作與高級查詢實戰

引言 在上一篇文章中,我們介紹了Mybatis的基礎使用。 如有需要請移步查看: MyBatis入門:快速掌握用戶查詢實戰https://blog.csdn.net/qq_52331401/article/details/149270402?spm1001.2014.3001.5502 今天,我將通過一個完整的…

Flink DataStream API詳解(二)

一、引言 咱兩書接上回,上一篇文章主要介紹了DataStream API一些基本的使用,主要是針對單數據流的場景下,但是在實際的流處理場景中,常常需要對多個數據流進行合并、拆分等操作,以滿足復雜的業務需求。Flink 的 DataS…

Unity3D游戲線上崩潰排查指南

前言 排查Unity3D線上游戲崩潰是個系統工程,需要結合工具鏈、日志分析和版本管理。以下是詳細的排查指南和關鍵步驟: 對惹,這里有一個游戲開發交流小組,希望大家可以點擊進來一起交流一下開發經驗呀! 一、崩潰信息收…

DPDK性能優化實踐:系統級性能調優的方法論與實戰(一套通用的方法論)

性能優化的挑戰與現實困境 在高性能網絡處理領域,性能優化往往被視為一門“玄學”而非科學。許多開發者在面對性能瓶頸時,要么盲目追求單一指標的極致優化,要么采用"試錯法"進行零散的局部調優,結果往往是投入大量精力卻…

Docker的/var/lib/docker/目錄占用100%的處理方法

文章目錄 一、問題描述 二、解決措施 三、可能遇到的問題 問題1、問題描述:執行 sudo systemctl stop docker 命令時,提示 Warning: Stopping docker.service, but it can still be activated by: docker.socket 問題2、問題描述:執行 s…

【UE教程/進階】Slate鏈式編輯原理

目錄鏈式編輯操作" . "操作" "操作" [ ] "鏈式編輯 SNew().[] 操作" . " SLATE_ARGUMENT(ArgType, ArgName) 宏 調用宏 SLATE_PRIVATE_ARGUMENT_VARIABLE(ArgType, ArgName) ,在FArgument結構體中添加了變量…

將手工建模模型(fbx、obj)轉換為3dtiles的免費工具!

文章目錄1、工具下載2、使用說明3、詳細說明命令行格式示例命令參數說明4、源碼地址1、工具下載 百度網盤下載鏈接 選擇最新版本下載即可,支持Linux和Windows系統 2、使用說明 1)按住鍵盤winr鍵,在彈出的窗口中輸入cmd 2)點擊…

FreeRTOS源碼學習之內核初始化

目錄 前言 一、主函數內容 二、osKernelInitialize ()內核初始化函數內容 三、IS_IRQ()宏定義中斷檢測函數內容 四、如果這篇文章能幫助到你,請點個贊鼓勵一下吧ξ( ?>??)~ 前言 使用STM32CubeMX添加FreeRTOS進入工程之后,會自動在ma…

Docker—— 鏡像構建原因

在現代軟件開發和運維中,Docker已成為一種非常流行的工具,它通過容器化應用程序來簡化部署過程。然而,默認的官方鏡像往往只能滿足基礎需求,無法涵蓋所有特定項目的具體要求。原因說明系統級改動無法通過 volume 實現修改用戶、刪…

鋰電池自動化生產線的現狀與發展

鋰電池自動化生產線的概述鋰電池自動化生產線是指采用自動化設備和控制系統,實現鋰電池從原材料到成品的全流程自動化生產過程。隨著新能源產業的快速發展,鋰電池作為重要的儲能元件,其生產制造技術也在不斷進步。自動化生產線通過減少人工干…

java底層的native和沙箱安全機制

沙箱安全機制沙箱(Sandbox)安全機制是一種將程序或代碼運行在隔離環境中的安全技術,旨在限制其對系統資源(如文件系統、網絡、內存、其他進程等)的訪問權限,從而降低潛在惡意代碼帶來的風險。其核心思想是“…

【分享】文件擺渡系統適配醫療場景:安全與效率兼得

根據國家信息安全相關法規要求,醫院為了網絡安全,大多會采用網閘等隔離手段,將網絡隔離為內網和外網,但網絡隔離后,醫院的內外網間仍存在較為頻繁的文件擺渡需求。文件擺渡系統則是可以解決跨網絡或跨安全域文件傳輸中…