亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

RAG實踐:一文掌握大模型RAG過程

京東云 ? 來源:jf_75140285 ? 作者:jf_75140285 ? 2025-10-27 18:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、RAG是什么?

RAG(Retrieval-Augmented Generation,檢索增強生成), 一種AI框架,將傳統(tǒng)的信息檢索系統(tǒng)(例如數(shù)據(jù)庫)的優(yōu)勢與生成式大語言模型(LLM)的功能結(jié)合在一起。不再依賴LLM訓練時的固有知識,而是在回答問題前,先從外部資料庫中"翻書"找資料,基于這些資料生成更準確的答案。

?RAG技術核心緩解大模型落地應用的幾個關鍵問題:

?知識新鮮度:大模型突破模型訓練數(shù)據(jù)的時間限制

?幻覺問題:降低生成答案的虛構(gòu)概率,提供參照來源

?信息安全:通過外掛知識庫而不是內(nèi)部訓練數(shù)據(jù),減少隱私泄露

?垂直領域知識:無需訓練直接整合垂直領域知識

二、RAG核心流程

wKgZO2jZEC2AGKWkAAfb05cfWYU080.png

2.1 知識準備階段

1、數(shù)據(jù)預處理

1、文檔解析

?輸入:原始文檔(如Markdown/PDF/HTML)

?操作

?提取純文本(如解析Markdown標題、段落)

?處理特殊格式(如代碼塊、表格、圖片、視頻等)

例如:

[標題] 什么是 ROMA?
[段落] ROMA 是一個全自主研發(fā)的前端開發(fā)基于自定義DSL(Jue語言),一份代碼,可在iOSAndroid、Harmony、Web四端運行的跨平臺解決方案。
[段落] ROMA 框架的中文名為羅碼。
[標題] 今天天氣
[列表項] 今天的室外溫度為35°C,天氣晴朗。

文檔的解析過程需要考慮不同文檔內(nèi)容例如文本、圖片、表格等場景,以及文檔的語言,布局情況,可以考慮使用一些優(yōu)秀的三方工具或者一些視覺模型,布局分析模型,語義理解模型來輔助解析。

2、數(shù)據(jù)清洗與標準化處理

提升文本質(zhì)量和一致性,使向量表示更準確,從而增強檢索相關性和LLM回答質(zhì)量;同時消除噪聲和不規(guī)則格式,確保系統(tǒng)能正確理解和處理文檔內(nèi)容。

包括:

?去除特殊字符、標簽、亂碼、重復內(nèi)容。

?文本標準化,例如 時間、單位標準化(如“今天” → “2025-07-17”)。

?其他處理

數(shù)據(jù)的清洗和標準化過程可以使用一些工具或NLTK、spaCy等NLP工具進行處理。

例如:

ROMA框架
處理: 
"ROMA框架"

今天的室外溫度為35°C,天氣晴朗。
處理:
"2025-07-17 的室外溫度為35°C,天氣晴朗"

3、元數(shù)據(jù)提取

關于數(shù)據(jù)的數(shù)據(jù),用于描述和提供有關數(shù)據(jù)的附加信息。

?文檔來源:文檔的出處,例如URL、文件名、數(shù)據(jù)庫記錄等。

?創(chuàng)建時間:文檔的創(chuàng)建或更新時間。

?作者信息:文檔的作者或編輯者。

?文檔類型:文檔的類型,如新聞文章、學術論文、博客等。

?...

?

元數(shù)據(jù)在RAG中也非常重要,不僅提供了額外的上下文信息,還能提升檢索質(zhì)量:

1. 檢索增強

?精準過濾:按時間、作者、主題等縮小搜索范圍

?相關性提升:結(jié)合向量相似度和元數(shù)據(jù)特征提高檢索準確性

2. 上下文豐富

?來源標注:提供文檔來源、作者、發(fā)布日期等信息

?文檔關系:展示文檔間的層級或引用關系

?

常見的元數(shù)據(jù)提取方式:

?正則/HTML/... 等解析工具,提取標題、作者、日期等

?自然語言處理: 使用NLP技術(如命名實體識別、關鍵詞提?。奈臋n內(nèi)容中提取元數(shù)據(jù),如人名、地名、組織名、關鍵詞等

?機器學習模型: 訓練機器學習模型來自動提取元數(shù)據(jù)

?通過調(diào)用外部API(如Google Scholar API、Wikipedia API)獲取文檔的元數(shù)據(jù)

?...

例如:

complete_metadata_chunk1 = {
    'file_path': '/mydocs/roma_intro.md',
    'file_name': 'roma_intro.md',
    'chunk_id': 0,
    'section_title': '# 什么是 ROMA?',
    'subsection_title': '',
    'section_type': 'section',
    'chunking_strategy': 3,
    'content_type': 'product_description',
    'main_entity': 'ROMA',
    'language': 'zh-CN',
    'creation_date': '2025-07-02',  # 從文件系統(tǒng)獲取
    'word_count': 42  # 計算得出,
    'topics': ['ROMA', '前端框架', '跨平臺開發(fā)'],
    'entities': {
        'products': ['ROMA', 'Jue語言'], # 實體識別
        'platforms': ['iOS', 'Android', 'Web']
    },
}

2、內(nèi)容分塊(Chunking)

在RAG架構(gòu)中,分塊既是核心,也是挑戰(zhàn),它直接影響檢索精度、生成質(zhì)量,需要在檢索精度、語境完整性和計算性能之間取得平衡。

wKgZPGjZEC6ABU4EAALWukTI-9k023.png

內(nèi)容分塊將長文檔切分成小塊,可以解決向量模型的token長度限制,使RAG更精確定位相關信息,提升檢索精度和計算效率。

autobots 功能分塊:

wKgZO2jZEC-AbY7NAALm7qAZTmE964.png

實際RAG框架中按照文檔的特性選擇合適的分塊策略進行分塊.

常見的分塊策略

1. 按大小分塊

按固定字符數(shù)進行分塊,實現(xiàn)簡單但可能切斷語義單元。

優(yōu)點:實現(xiàn)簡單且計算開銷小,塊大小均勻便于管理。

缺點:可能切斷語義單元,如句子或段落被分到不同塊中。

例如:

第一段:# ROMA框架介紹ROMA是一個全自主研發(fā)的前端開發(fā)框架,基于自定義DSL(Jue語言)。
一份代碼,可在iOS、Android、Harmony

第二段:、Web三端運行的跨平臺解決方案。ROMA框架的中文名為羅碼。

句子被截斷,"一份代碼,可在iOS、Android、Harmony" 和 "、Web三端運行的跨平臺解決方案" 被分到不同塊,影響理解。

2. 按段落分塊

以段落為基本單位進行分塊,保持段落完整性,但段落長度可能差異很大。

優(yōu)點:尊重文檔自然結(jié)構(gòu),保留完整語義單元。

缺點:段落長度差異大,可能導致塊大小不均衡。

例如

第一段:# ROMA框架介紹ROMA是一個全自主研發(fā)的前端開發(fā)框架,基于自定義DSL(Jue語言)。
一份代碼,可在iOS、Android、Harmony、Web三端運行的跨平臺解決方案。ROMA框架的中文名為羅碼。

第二段:# 核心特性1. 跨平臺:一套代碼運行于多端2. 高性能:接近原生的性能表現(xiàn)3. 可擴展:豐富的插件系統(tǒng)

第一段包含標題和多行內(nèi)容,而其他段落相對較短,可能導致檢索不均衡。

3. 按語義分塊

基于文本語義相似度進行動態(tài)分塊,保持語義連貫性,但計算開銷大。

說明:基于文本語義相似度動態(tài)調(diào)整分塊邊界。

優(yōu)點:保持語義連貫性,能識別內(nèi)容主題邊界。

示例

第一段:# ROMA框架介紹ROMA是一個全自主研發(fā)的前端開發(fā)框架,基于自定義DSL(Jue語言)。
一份代碼,可在iOS、Android、Harmony、Web四端運行的跨平臺解決方案。

第二段:ROMA框架的中文名為羅碼。
## 核心特性1. 跨平臺:一套代碼運行于多端

使用依賴模型質(zhì)量,相同文本在不同運行中可能產(chǎn)生不同分塊結(jié)果。

分塊策略總結(jié):

wKgZO2jZEC-Adzx6AAENqNakzIk961.png

優(yōu)化方式

?混合分塊策略

結(jié)合多種分塊方法的優(yōu)點,如先按段落分塊,再根據(jù)塊大小調(diào)整,做到既保持語義完整性,又能控制塊大小均勻

?優(yōu)化重疊區(qū)域

根據(jù)內(nèi)容特性動態(tài)調(diào)整塊之間的重疊區(qū)域大小,關鍵信息出現(xiàn)在多個塊中,提高檢索召回率

常用的分塊工具

?LangChain框架:提供多種分塊策略,包括RecursiveCharacterTextSplitter、MarkdownTextSplitter等

?NLTK:用于基于自然語言句子的分塊

?spaCy:提供語言學感知的文本分割

?

3、向量化(Embedding)

將高維文本數(shù)據(jù)壓縮到低維空間,便于處理和存儲。將文本轉(zhuǎn)換為計算機可以理解的數(shù)值,使得計算機能夠理解和處理語義信息,從而在海量數(shù)據(jù)文本中實現(xiàn)快速、高效的相似度計算和檢索。

簡單理解:通過一組數(shù)字來代表文本內(nèi)容的“本質(zhì)”。

例如,"ROMA是一個跨平臺解決方案..."這句話可能被轉(zhuǎn)換為一個384維的向量:

[塊1] 什么是ROMA?
ROMA是一個全自主研發(fā)的前端開發(fā)框架,基于自定義DSL(Jue語言)...

[
  {
    "chunk_id": "doc1_chunk1",
    "text": "# 什么是 ROMA?nROMA 是一個全自主研發(fā)的前端開發(fā)基于自定義DSL(Jue語言),一份代碼,可在iOS、Android、Harmony、Web端運行的跨平臺解決方案。",
    "vector": [0.041, -0.018, 0.063, ..., 0.027],
    "metadata": {
      "source": "roma_introduction.md",
      "position": 0,
      "title": "ROMA框架介紹"
    }
  },
  // 更多文檔塊...
]

常用的Embedding模型

模型名稱 開發(fā)者 維度 特點
all-minilm-l6-v2 Hugging Face 384 高效推理,多任務支持,易于部署,適合資源受限環(huán)境
Text-embedding-ada-002 OpenAI 1536 性能優(yōu)秀,但可能在國內(nèi)使用不太方便。
BERT embedding Google 768 (base) 1024 (large) 廣泛用于各種自然語言處理任務。
BGE (Baidu’s General Embedding) 百度 768 在HuggingFace的MTEB上排名前2,表現(xiàn)非常出色。

?

4、向量數(shù)據(jù)庫入庫

將生成的向量數(shù)據(jù)和元數(shù)據(jù)進行存儲,同時創(chuàng)建索引結(jié)構(gòu)來支持快速相似性搜索。

常用的向量數(shù)據(jù)庫包括:

數(shù)據(jù)庫 復雜度 核心優(yōu)勢 主要局限 適用場景
ChromaDB 輕量易用, Python集成 僅支持小規(guī)模數(shù)據(jù) 原型開發(fā)、小型項目
FAISS 十億級向量檢索, 高性能 需自行實現(xiàn)特殊化 學術研究、大規(guī)模檢索
Milvus 分布式擴展, 多數(shù)據(jù)類型支持 部署復雜, 資源消耗大 企業(yè)級生產(chǎn)環(huán)境
Pinecone 全托管, 自動擴縮容 成本高, 數(shù)據(jù)在第三方云 無運維團隊/SaaS應用
Elasticsearch 全文搜索強大,生態(tài)系統(tǒng)豐富 向量搜索為后加功能,性能較專用解決方案差 日志分析、全文搜索、通用數(shù)據(jù)存儲

2.2 問答階段

1、查詢預處理

` 意圖識別:使用分類模型區(qū)分問題類型(事實查詢、建議、閑聊等)。

問題預處理:問題內(nèi)容清洗和標準化,過程與前面數(shù)據(jù)預處理類似。

查詢增強: 使用知識庫或LLM生成同義詞(如“動態(tài)化” → “Roma”),上下文補全可以結(jié)合歷史會話總結(jié)(例如用戶之前問過“Roma是什么”)。

?

2、數(shù)據(jù)檢索(召回)

1、向量化

使用與入庫前數(shù)據(jù)向量化相同的模型,將處理后的問題內(nèi)容向量化。

例子:

問題: "ROMA是什么?"

處理后
{
    "vector": [0.052, -0.021, 0.075, ..., 0.033],
    "top_k": 3,
    "score_threshold": 0.8,
    "filter": {"doc_type": "技術文檔"}
}

2、檢索

相似度檢索:查詢向量與所存儲的向量最相似(通過余弦相似度匹配)的前 top_k 個文檔塊。

關鍵詞檢索:倒排索引的傳統(tǒng)方法,檢索包含"Roma"、"優(yōu)勢"等精確關鍵詞的文檔。

混合檢索: 合并上面多種檢索結(jié)果,效果最優(yōu)。

例如:檢索"ROMA是什么?"

wKgZPGjZEDCAGlC3AAQKeDWOw04663.png

3、重排序(Reranking)

初步檢索在精度和語義理解上的不足,通過更精細的上下文分析提升結(jié)果相關性。它能更好處理同義詞替換、一詞多義等語義細微差異,使最終結(jié)果準確。

原理:使用模型對每個檢索結(jié)果計算相關性分數(shù)。

歸一化:重排序模型原始輸出分數(shù)沒有固定的范圍,它可能是任意實數(shù),將結(jié)果歸一化處理,將分數(shù)映射到 [0, 1] 范圍內(nèi),使其更容易與向量相似度分數(shù)進行比較。

例如:

wKgZO2jZEDGALEU-AADQvd_ULCI264.png

常用的重排序模型:

wKgZPGjZEDKAf58oAAKGhnJcCUA764.png

?

3、信息整合

格式化檢索的結(jié)果,構(gòu)建提示詞模板,同時將搜索的內(nèi)容截斷或摘要長文本以適應LLM上下文窗口token。

提示詞優(yōu)化:

1. 限定回答范圍

2. 要求標注來源

3. 設置拒絕回答規(guī)則

4. ...

例如:

prompt 模板:

你是一名ROMA框架專家,請基于以下上下文回答:

參考信息:
[文檔1] 什么是 ROMA?
ROMA 是一個全自主研發(fā)的前端開發(fā)基于自定義DSL(Jue語言),一份代碼,可在iOS、Android、Harmony、Web四端運行的跨平臺解決方案。
ROMA 框架的中文名為羅碼。
[文檔2] Roma介紹?
[Roma介紹](docs/guide/guide/introduction.md)
文檔地址: https://roma-design.jd.com/docs/guide/guide/introduction.html

要求:
1. 分步驟說明,含代碼示例
2. 標注來源文檔版本
3. 如果參考信息中沒有相關內(nèi)容,請直接說明無法回答,不要編造信息

請基于以下參考信息回答用戶的問題。如果參考信息中沒有相關內(nèi)容,請直接說明無法回答,不要編造信息。


用戶問題: ROMA是什么?

回答: {answer}

4、LLM生成

向LLM(如GPT-4、Claude)發(fā)送提示,獲取生成結(jié)果。

autobots示例:

wKgZO2jZEDOAL7HtAAKSJ2DfE54710.png

以上,實現(xiàn)了最簡單的RAG流程。實際的RAG過程會比上述麻煩更多,包括圖片、表格等多模態(tài)內(nèi)容的處理,更復雜的文本解析和預處理過程,文檔格式的兼容,結(jié)構(gòu)化與非結(jié)構(gòu)化數(shù)據(jù)的兼容等等。

?

最后RAG各階段優(yōu)化方式:

wKgZPGjZEDaASAIvABwnkgo9q6U998.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫

    關注

    7

    文章

    3988

    瀏覽量

    67642
  • 大模型
    +關注

    關注

    2

    文章

    3396

    瀏覽量

    4874
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TaD+RAG-緩解大模型“幻覺”的組合新療法

    TaD:任務感知解碼技術(Task-aware Decoding,簡稱TaD),京東聯(lián)合清華大學針對大語言模型幻覺問題提出的項技術,成果收錄于IJCAI2024。 RAG:檢索增強生成技術
    的頭像 發(fā)表于 07-16 15:01 ?1.1w次閱讀
    TaD+<b class='flag-5'>RAG</b>-緩解大<b class='flag-5'>模型</b>“幻覺”的組合新療法

    利用OpenVINO和LlamaIndex工具構(gòu)建多模態(tài)RAG應用

    Retrieval-Augmented Generation (RAG) 系統(tǒng)可以通過從知識庫中過濾關鍵信息來優(yōu)化 LLM 任務的內(nèi)存占用及推理性能。歸功于文本解析、索引和檢索等成熟工具的應用,為
    的頭像 發(fā)表于 02-21 10:18 ?2959次閱讀
    利用OpenVINO和LlamaIndex工具構(gòu)建多模態(tài)<b class='flag-5'>RAG</b>應用

    名單公布!【書籍評測活動NO.52】基于大模型RAG應用開發(fā)與優(yōu)化

    外掛。 用個例子幫助理解RAG的概念: 如果把大模型比喻成個經(jīng)過大量知識與技能訓練的優(yōu)秀學生,把大模型響應的
    發(fā)表于 12-04 10:50

    【「基于大模型RAG應用開發(fā)與優(yōu)化」閱讀體驗】+Embedding技術解讀

    今天學習大模型RAG 檢索增強生成技術Embedding,即嵌入,是種將離散數(shù)據(jù)(如文字、圖像、音頻等)轉(zhuǎn)換為連續(xù)的密集向量表示的技術。這些向量能夠反映原始數(shù)據(jù)之間的關系,使得計算機能夠更好地處
    發(fā)表于 01-17 19:53

    【「基于大模型RAG應用開發(fā)與優(yōu)化」閱讀體驗】+第章初體驗

    機制。 《基于大模型RAG應用開發(fā)與優(yōu)化》第章以清晰的邏輯框架,幫助讀者建立對大模型RAG的全局認知。通過剖析技術原理、優(yōu)勢與挑戰(zhàn)
    發(fā)表于 02-07 10:42

    【「基于大模型RAG應用開發(fā)與優(yōu)化」閱讀體驗】RAG基本概念

    隨著大模型在25年初的進步發(fā)展,RAG應用已成為新的個趨勢,很榮幸有機會試讀這本<基于大模型
    發(fā)表于 02-08 00:22

    《AI Agent 應用與項目實戰(zhàn)》閱讀心得3——RAG架構(gòu)與部署本地知識庫

    分析模型在不同類型數(shù)據(jù)上的表現(xiàn),來優(yōu)化文本分割策略和檢索參數(shù),使系統(tǒng)在保持響應速度的同時,能夠提供更準確的查詢結(jié)果。 經(jīng)過對第6-7章的深入學習,我對RAG技術在工程實踐中的應用有了更系統(tǒng)的認識。這
    發(fā)表于 03-07 19:49

    搜索出生的百川智能大模型RAG爬坑之路總結(jié)

    今天對百川的RAG方法進行解讀,百川智能具有深厚的搜索背景,來看看他們是怎么爬RAG的坑的吧~
    的頭像 發(fā)表于 01-05 15:02 ?2438次閱讀
    搜索出生的百川智能大<b class='flag-5'>模型</b><b class='flag-5'>RAG</b>爬坑之路總結(jié)

    阿里云推出企業(yè)級大模型RAG系統(tǒng)

    在國際AI大數(shù)據(jù)峰會上,阿里云重磅推出了企業(yè)級大模型檢索增強生成(RAG)解決方案。這解決方案旨在為企業(yè)提供更強大、更智能的大模型應用工具,幫助企業(yè)更有效地利用大數(shù)據(jù)和人工智能技術。
    的頭像 發(fā)表于 02-05 09:54 ?1763次閱讀

    什么是RAG,RAG學習和實踐經(jīng)驗

    高級的RAG能很大程度優(yōu)化原始RAG的問題,在索引、檢索和生成上都有更多精細的優(yōu)化,主要的優(yōu)化點會集中在索引、向量模型優(yōu)化、檢索后處理等模塊進行優(yōu)化
    的頭像 發(fā)表于 04-24 09:17 ?2587次閱讀
    什么是<b class='flag-5'>RAG</b>,<b class='flag-5'>RAG</b>學習和<b class='flag-5'>實踐</b>經(jīng)驗

    如何手擼個自有知識庫的RAG系統(tǒng)

    用于自然語言處理任務,如文本生成、問答系統(tǒng)等。 我們通過下幾個步驟來完成個基于京東云官網(wǎng)文檔的RAG系統(tǒng) 數(shù)據(jù)收集 建立知識庫 向量檢索 提示詞與模型 數(shù)據(jù)收集 數(shù)據(jù)的收集再整個
    的頭像 發(fā)表于 06-17 14:59 ?1311次閱讀

    使用OpenVINO和LlamaIndex構(gòu)建Agentic-RAG系統(tǒng)

    解決大語言模型在知識時效性和專業(yè)性上的不足。但同時傳統(tǒng)的 RAG 系統(tǒng)也有它的缺陷,例如靈活性較差,由于 RAG 會過分依賴于向量數(shù)據(jù)庫的檢索結(jié)果,導致其在解決些復雜問題的時候,只是
    的頭像 發(fā)表于 10-12 09:59 ?1233次閱讀
    使用OpenVINO和LlamaIndex構(gòu)建Agentic-<b class='flag-5'>RAG</b>系統(tǒng)

    Cloudera推出RAG Studio,助力企業(yè)快速部署聊天機器人

    企業(yè)在利用實時企業(yè)數(shù)據(jù)部署RAG聊天機器人方面邁出了重要步,且整個過程僅需幾分鐘。 RAG Studio是款無代碼解決方案,它極大地簡化
    的頭像 發(fā)表于 12-12 11:06 ?965次閱讀

    RAG的概念及工作原理

    檢索增強型生成(RAG)系統(tǒng)正在重塑我們處理AI驅(qū)動信息的方式。作為架構(gòu)師,我們需要理解這些系統(tǒng)的基本原理,從而有效地發(fā)揮它們的潛力。 什么是RAG? 總體而言,RAG系統(tǒng)通過將大型語言模型
    的頭像 發(fā)表于 12-17 13:41 ?2841次閱讀
    <b class='flag-5'>RAG</b>的概念及工作原理

    借助浪潮信息元腦企智EPAI高效創(chuàng)建大模型RAG

    面對大量不斷迭代的新知識,大模型必須“終身學習”才能滿足實際應用的需求。RAG(Retrieval-augmented Generation,檢索增強生成)讓生成式大模型能夠利用外部的知識源來增強
    的頭像 發(fā)表于 12-19 14:32 ?990次閱讀
    借助浪潮信息元腦企智EPAI高效創(chuàng)建大<b class='flag-5'>模型</b><b class='flag-5'>RAG</b>