国产网红主播精品一区_国产亚洲精品久久久久四川人_国产av无码专区亚洲av果冻传媒_波多野结衣初尝黑人_亚洲碰碰人人av熟女天堂

/ EN
13922884048

資訊中心

information centre
/
/

RAG框架,知識(shí)庫(kù)開(kāi)發(fā)和知識(shí)庫(kù)應(yīng)用

發(fā)布時(shí)間:2025-03-03作者來(lái)源:薩科微瀏覽:1043

一、什么是RAG?

檢索增強(qiáng)生成(Retrieval Augmented Generation),簡(jiǎn)稱 RAG。結(jié)合向量檢索(Retrieval)與內(nèi)容生成(Generation)的AI框架。


二、為啥需要RAG?


原因是通用的基礎(chǔ)大模型基本無(wú)法滿足我們的實(shí)際業(yè)務(wù)需求。

1、有以下有幾方面原因:
1)知識(shí)的局限性:(缺企業(yè)私有知識(shí)庫(kù))
模型自身的知識(shí)完全源于它的訓(xùn)練數(shù)據(jù),而現(xiàn)有的大模型的訓(xùn)練集基本都是構(gòu)建于網(wǎng)絡(luò)公開(kāi)的數(shù)據(jù),對(duì)于一些實(shí)時(shí)性的、非公開(kāi)的或離線的數(shù)據(jù)是無(wú)法獲取到的,這部分知識(shí)也就無(wú)從具備。
2)幻覺(jué)問(wèn)題:(沒(méi)有私有知識(shí)庫(kù),幻覺(jué)無(wú)法抑制)
所有的AI模型的底層原理都是基于數(shù)學(xué)概率,其模型輸出實(shí)質(zhì)上是一系列數(shù)值運(yùn)算,大模型也不例外,所以它有時(shí)候會(huì)一本正經(jīng)地胡說(shuō)八道,尤其是在大模型自身不具備某一方面的知識(shí)或不擅長(zhǎng)的場(chǎng)景。而這種幻覺(jué)問(wèn)題的區(qū)分是比較困難的,因?yàn)樗笫褂谜咦陨砭邆湎鄳?yīng)領(lǐng)域的知識(shí)。
3)數(shù)據(jù)安全性:
對(duì)于企業(yè)來(lái)說(shuō),數(shù)據(jù)安全至關(guān)重要,沒(méi)有企業(yè)愿意承擔(dān)數(shù)據(jù)泄露的風(fēng)險(xiǎn),將自身的私域數(shù)據(jù)上傳第三方平臺(tái)進(jìn)行訓(xùn)練。這也導(dǎo)致完全依賴通用大模型自身能力的應(yīng)用方案不得不在數(shù)據(jù)安全和效果方面進(jìn)行取舍。
4)利用RAG框架可以構(gòu)建企業(yè)的私有知識(shí)庫(kù),是解決上述問(wèn)題的一套有效方案。

三、RAG架構(gòu)


1、知識(shí)庫(kù)

1)治理企業(yè)的私有化數(shù)據(jù),包括結(jié)構(gòu)化/非結(jié)構(gòu)化數(shù)據(jù)(文檔、數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)等),利用向量數(shù)據(jù)庫(kù)的高效存儲(chǔ)和檢索能力,可實(shí)現(xiàn)檢索,和數(shù)據(jù)召回。

2)完善數(shù)據(jù)的治理,可實(shí)現(xiàn)數(shù)據(jù)的可持續(xù)更新。


2、RAG的核心是數(shù)據(jù)的檢索+提示詞的生成


1)前者主要是利用向量數(shù)據(jù)庫(kù)的高效存儲(chǔ)和檢索能力,召回目標(biāo)知識(shí);

2)后者則是利用大模型和Prompt工程,將召回的知識(shí)合理利用,合并生成Prompt

3)再調(diào)用大模型生成目標(biāo)答案。

4)重復(fù)以上過(guò)程,直到理想的結(jié)果。

3、RAG應(yīng)用流程主要包含兩個(gè)階段:

1)知識(shí)庫(kù)構(gòu)建:

數(shù)據(jù)提取——>文本分割——>向量化(embedding)——>數(shù)據(jù)入庫(kù)

2)知識(shí)庫(kù)應(yīng)用:

用戶提問(wèn)——>數(shù)據(jù)檢索(召回)——>注入Prompt——>LLM生成答案

四、知識(shí)庫(kù)建設(shè):

1、數(shù)據(jù)準(zhǔn)備階段:

數(shù)據(jù)準(zhǔn)備一般是一個(gè)離線的過(guò)程,主要是將私域數(shù)據(jù)向量化后構(gòu)建索引并存入數(shù)據(jù)庫(kù)的過(guò)程。主要包括:數(shù)據(jù)提取、文本分割、向量化、數(shù)據(jù)入庫(kù)等環(huán)節(jié)。

1)數(shù)據(jù)提取

數(shù)據(jù)加載:包括多格式數(shù)據(jù)加載、不同數(shù)據(jù)源獲取等,根據(jù)數(shù)據(jù)自身情況,將數(shù)據(jù)處理為同一個(gè)范式。

數(shù)據(jù)處理:包括數(shù)據(jù)過(guò)濾、壓縮、格式化等。

元數(shù)據(jù)獲?。禾崛?shù)據(jù)中關(guān)鍵信息,例如文件名、Title、時(shí)間等 。

2)文本分割:

文本分割主要考慮兩個(gè)因素:1)embedding模型的Tokens限制情況;2)語(yǔ)義完整性對(duì)整體的檢索效果的影響。一些常見(jiàn)的文本分割方式如下:

句分割:以”句”的粒度進(jìn)行切分,保留一個(gè)句子的完整語(yǔ)義。常見(jiàn)切分符包括:句號(hào)、感嘆號(hào)、問(wèn)號(hào)、換行符等。

固定長(zhǎng)度分割:根據(jù)embedding模型的token長(zhǎng)度限制,將文本分割為固定長(zhǎng)度(例如256/512個(gè)tokens),這種切分方式會(huì)損失很多語(yǔ)義信息,一般通過(guò)在頭尾增加一定冗余量來(lái)緩解。

3)向量化(embedding):

向量化是一個(gè)將文本數(shù)據(jù)轉(zhuǎn)化為向量矩陣的過(guò)程,該過(guò)程會(huì)直接影響到后續(xù)檢索的效果。目前常見(jiàn)的embedding模型如表中所示,這些embedding模型基本能滿足大部分需求,但對(duì)于特殊場(chǎng)景(例如涉及一些罕見(jiàn)專有詞或字等)或者想進(jìn)一步優(yōu)化效果,則可以選擇開(kāi)源Embedding模型微調(diào)或直接訓(xùn)練適合自己場(chǎng)景的Embedding模型。

4)數(shù)據(jù)入庫(kù):

數(shù)據(jù)向量化后構(gòu)建索引,并寫入數(shù)據(jù)庫(kù)的過(guò)程可以概述為數(shù)據(jù)入庫(kù)過(guò)程,適用于RAG場(chǎng)景的數(shù)據(jù)庫(kù)包括:FAISS、Chromadb、ES、milvus等。一般可以根據(jù)業(yè)務(wù)場(chǎng)景、硬件、性能需求等多因素綜合考慮,選擇合適的數(shù)據(jù)庫(kù)。

五、應(yīng)用知識(shí)庫(kù)階段:

在應(yīng)用階段,我們根據(jù)用戶的提問(wèn),通過(guò)高效的檢索方法,召回與提問(wèn)最相關(guān)的知識(shí),并融入Prompt;大模型參考當(dāng)前提問(wèn)和相關(guān)知識(shí),生成相應(yīng)的答案。關(guān)鍵環(huán)節(jié)包括:數(shù)據(jù)檢索、注入Prompt等。

1)數(shù)據(jù)檢索

常見(jiàn)的數(shù)據(jù)檢索方法包括:相似性檢索、全文檢索等,根據(jù)檢索效果,一般可以選擇多種檢索方式融合,提升召回率。

相似性檢索:即計(jì)算查詢向量與所有存儲(chǔ)向量的相似性得分,返回得分高的記錄。常見(jiàn)的相似性計(jì)算方法包括:余弦相似性、歐氏距離、曼哈頓距離等。

全文檢索:全文檢索是一種比較經(jīng)典的檢索方式,在數(shù)據(jù)存入時(shí),通過(guò)關(guān)鍵詞構(gòu)建倒排索引;在檢索時(shí),通過(guò)關(guān)鍵詞進(jìn)行全文檢索,找到對(duì)應(yīng)的記錄。

2)注入Prompt

Prompt作為大模型的直接輸入,是影響模型輸出準(zhǔn)確率的關(guān)鍵因素之一。在RAG場(chǎng)景中,Prompt一般包括任務(wù)描述、背景知識(shí)(檢索得到)、任務(wù)指令(一般是用戶提問(wèn))等,根據(jù)任務(wù)場(chǎng)景和大模型性能,也可以在Prompt中適當(dāng)加入其他指令優(yōu)化大模型的輸出。

Prompt的設(shè)計(jì)只有方法、沒(méi)有語(yǔ)法,比較依賴于個(gè)人經(jīng)驗(yàn),在實(shí)際應(yīng)用過(guò)程中,往往需要根據(jù)大模型的實(shí)際輸出進(jìn)行針對(duì)性的Prompt調(diào)優(yōu)。


六、舉例,偽代碼示例

1、選擇如下開(kāi)源組件

向量數(shù)據(jù)庫(kù):FAISS
NLP框架:  Hugging Face Transformers, LangChain,DeepSeekR1
部署框架  FastAPI, 

2、階段1:知識(shí)庫(kù)建設(shè)
1. 數(shù)據(jù)準(zhǔn)備
- 數(shù)據(jù)源:PDF文檔、數(shù)據(jù)庫(kù)、API、網(wǎng)頁(yè)爬蟲(chóng)等
- 格式處理:
  python
   示例:PDF文本提取
  from PyPDF2 import PdfReader
 
  def extract_pdf_text(file_path):
      reader = PdfReader(file_path)
      text = ""
      for page in reader.pages:
          text += page.extract_text()
      return text

2. 數(shù)據(jù)預(yù)處理
- 清洗:去除特殊字符、停用詞、重復(fù)內(nèi)容
- 分塊策略:
  - 固定長(zhǎng)度分塊(適合通用場(chǎng)景)
  - 語(yǔ)義分塊(按段落/主題劃分)
  python
   使用LangChain文本分割
  from langchain.text_splitter import RecursiveCharacterTextSplitter
 
  text_splitter = RecursiveCharacterTextSplitter(
      chunk_size=512,
      chunk_overlap=50
  )
  documents = text_splitter.split_text(text)

3. 向量化存儲(chǔ)
嵌入模型選擇:sentence-transformers/all-mpnet-base-v2 或自定義模型
向量數(shù)據(jù)庫(kù)選型:
  python
   使用FAISS存儲(chǔ)
  from langchain.embeddings import HuggingFaceEmbeddings
  from langchain.vectorstores import FAISS
 
  embeddings = HuggingFaceEmbeddings(model_name="all-mpnet-base-v2")
  vectorstore = FAISS.from_texts(documents, embeddings)
  vectorstore.save_local("knowledge_base")

3、階段2:RAG系統(tǒng)搭建
1. 檢索模塊
檢索策略:
  python
  def retrieve_docs(query, vectorstore, top_k=3):
  docs = vectorstore.similarity_search(query, k=top_k)
      return doc.page_content for doc in docs

2. 生成模塊
模型選擇:DeepSeek
提示工程:
  python
  def build_prompt(query, context):
      return f"""基于以下上下文回答用戶問(wèn)題:
      {context}
     
      問(wèn)題:{query}
      答案:"""

3. 系統(tǒng)集成
python
from transformers import pipeline

class RAGSystem:
    def __init__(self, vectorstore_path):
        self.vectorstore = FAISS.load_local(vectorstore_path, embeddings)
        self.generator = pipeline("text-generation", model="DeepSeekR1")

    def query(self, question):
        context = retrieve_docs(question, self.vectorstore)
        prompt = build_prompt(question, context)
        return self.generator(prompt, max_length=500)0'generated_text'

4、階段3:評(píng)估優(yōu)化
評(píng)估指標(biāo)
1)檢索召回率優(yōu)化:

  混合檢索(語(yǔ)義+關(guān)鍵詞)
  查詢擴(kuò)展(同義詞替換)

2)生成答案相關(guān)性

python
   添加系統(tǒng)提示
  SYSTEM_PROMPT = "你是一個(gè)嚴(yán)謹(jǐn)?shù)念I(lǐng)域?qū)<?,只根?jù)提供的事實(shí)回答問(wèn)題。"
 
  def improved_prompt(query, context):
      return f"{SYSTEM_PROMPT}\n已知信息:{context}\n問(wèn)題:{query}\n答案:"
3)人工評(píng)估準(zhǔn)確度
評(píng)估結(jié)果,不斷調(diào)整,達(dá)到可接受成果。

4)增量更新:實(shí)現(xiàn)知識(shí)庫(kù)實(shí)時(shí)更新
   python
   class UpdateableFAISS(FAISS):
       def add_documents(self, new_docs):
           self.add_texts(new_docs)
           self.save_local("updated_knowledge_base")


免責(zé)聲明:本文來(lái)源于“數(shù)字化轉(zhuǎn)型分享”公眾號(hào),本文僅代表作者個(gè)人觀點(diǎn),不代表薩科微及行業(yè)觀點(diǎn),只為轉(zhuǎn)載與分享,支持保護(hù)知識(shí)產(chǎn)權(quán),轉(zhuǎn)載請(qǐng)注明原出處及作者,如有侵權(quán)請(qǐng)聯(lián)系我們刪除。


企業(yè)咨詢和陪跑請(qǐng)掃碼聯(lián)系

beead8abd6ef2d8fc6ead2ac0d426f1.jpg

服務(wù)熱線

0755-83044319

霍爾元件咨詢

肖特基二極管咨詢

TVS/ESD咨詢

獲取產(chǎn)品資料

客服微信

微信客服號(hào)

2021亚洲国产精品无码| 无码人妻精品一区二区三区不卡| 亚洲午夜久久久久久久久电影网| 欧洲变态另类zozo| 亚洲多人视频在线观看| 窝窝影院午夜看片| 国产成人精品午夜福利在线播放| 女女女女bbbbbb毛片在线| 成人做爰www网站视频下载| 激情射精爆插热吻无码视频 | 自拍偷拍亚洲精品视频| 欧美伊香蕉久久综合网99 | 国产精品久久久久久久9999| 国产精品另类激情久久久免费| 亚洲性线免费观看视频成熟| 精品www日韩熟女人妻| 亚洲精品喷潮一区二区三区| 内射人妻视频国内| 日韩aⅴ人妻无码一区二区| 亚洲色欲色欲www在线观看| 国产精品久久久久久无码五月 | 美女扒开腿让男人桶爽app免费看 日本做受高潮好舒服视频 | 欧洲熟妇性色黄| 无码一区二区三区老色鬼| 欧美日韩人人模人人爽人人喊| 久久亚洲精品无码aⅴ大香 | 亚洲精品美女久久久久9999| 台湾佬中文娱乐22vvvv| 四虎国产精品成人| 中文字幕人妻第一区| 亚洲少妇色图在线观看| 久久精品亚洲毛片av| 亚洲中文字幕综合一区| 99久久99久久久精品齐齐综合色圆| 亚洲av无码精品色午夜app| 日本不卡高字幕在线2019| 中文字幕乱码熟妇五十中出| 日韩精品专区在线影院重磅| 中文字幕人妻无码系列第三区| 樱花草视频www日本韩国| 亚洲av成人片无码网站|