AI產(chǎn)品經(jīng)理:從文檔解析到數(shù)據(jù)清洗,打造高質(zhì)量RAG數(shù)據(jù)集
在大模型應(yīng)用落地的過程中,RAG(檢索增強(qiáng)生成)正成為連接外部知識(shí)與智能問答的關(guān)鍵技術(shù)。但真正能跑通的RAG系統(tǒng),背后依賴的是一套高質(zhì)量的數(shù)據(jù)構(gòu)建流程——從文檔解析、內(nèi)容切分,到數(shù)據(jù)清洗與結(jié)構(gòu)化,每一步都決定了最終效果。本文將以產(chǎn)品經(jīng)理視角,拆解打造高質(zhì)量RAG數(shù)據(jù)集的完整路徑,不僅講方法,更講實(shí)操,幫助你在AI項(xiàng)目中少踩坑、快落地。
RAG知識(shí)庫(kù)作為大模型的“外掛記憶”,市面上實(shí)現(xiàn)的方法多種多樣從Dify Agent自主搭建知識(shí)庫(kù)Workflow到Langchain框架定制知識(shí)庫(kù)邏輯以及大部分公司所用的對(duì)RAGFlow進(jìn)行二次開發(fā)。但是真正起到?jīng)Q定作用的仍然是投入的數(shù)據(jù),這篇文章將從“制定數(shù)據(jù)集標(biāo)準(zhǔn)”,“整理解析相關(guān)文檔”,“清理打造結(jié)構(gòu)化數(shù)據(jù)”三個(gè)方向出發(fā)。幫助每一位產(chǎn)品經(jīng)理圍繞著自己的產(chǎn)品制定相關(guān)策略。
從業(yè)務(wù)出發(fā),了解數(shù)據(jù)處理標(biāo)準(zhǔn);明確了解策略制定出發(fā)點(diǎn)
在整個(gè)RAG流水線中,數(shù)據(jù)提取是第一步,也是直接決定知識(shí)庫(kù)質(zhì)量的非常重要的一環(huán)。而且相比于其他步驟來說這一步相對(duì)可控。它的目標(biāo)是保證數(shù)據(jù)完整、準(zhǔn)確、易讀。
內(nèi)容的完整性:不要漏掉和業(yè)務(wù)相關(guān)內(nèi)容,保證知識(shí)庫(kù)知識(shí)的完整性
在搭建RAG知識(shí)庫(kù)時(shí),“內(nèi)容的完整性”是核心原則之一。它指的是:知識(shí)庫(kù)必須全面覆蓋業(yè)務(wù)場(chǎng)景中的所有關(guān)鍵信息,不能遺漏任何與業(yè)務(wù)相關(guān)的內(nèi)容,否則AI在回答用戶問題時(shí),就可能“答非所問”或“一問三不知”。
RAG系統(tǒng)的本質(zhì),是用知識(shí)庫(kù)里的內(nèi)容來“武裝”大模型,讓它在回答問題時(shí),能從知識(shí)庫(kù)里找到準(zhǔn)確、可靠的信息,再生成答案。如果知識(shí)庫(kù)里缺了某塊業(yè)務(wù)內(nèi)容,AI就算再聰明,也“巧婦難為無米之炊”,只能憑空編造或給出錯(cuò)誤答案。
內(nèi)容準(zhǔn)確:錯(cuò)誤的信息,對(duì)于大模型就是致命的毒藥
在RAG系統(tǒng)中,錯(cuò)誤信息如同被注入大模型血脈的“毒藥”——它先污染知識(shí)庫(kù),再隨檢索進(jìn)入模型視野,而大模型對(duì)檢索結(jié)果天然“信任”,不加辨別地將其當(dāng)作事實(shí),于是少量錯(cuò)誤便被放大成指數(shù)級(jí)災(zāi)難:一次失效參數(shù)、一條過時(shí)政策、一處表格誤讀,都會(huì)在生成環(huán)節(jié)被模型自信地包裝成權(quán)威答案,直接反噬用戶體驗(yàn)與企業(yè)信譽(yù),最終讓系統(tǒng)“越智能越危險(xiǎn)”。
關(guān)系完整:沒有目錄的說明書,大模型真的很難理解
把RAG知識(shí)庫(kù)比作一本“拆散”的說明書:如果把所有段落、圖片、表格全部撕下來混在一起丟進(jìn)抽屜,再聰明的大模型也只能像盲人摸象——它確實(shí)“看過”每一頁,卻永遠(yuǎn)搞不清哪一步該先擰螺絲、哪一步該后插電源。所謂“關(guān)系完整”,就是給這些碎片補(bǔ)上目錄、頁碼、箭頭、折痕:讓“第3步的螺絲”能一眼找到“第2步的螺母”,讓“故障代碼E1”立刻定位到“附錄的電路圖”。缺少這層目錄式關(guān)聯(lián),大模型只能憑字面相似度瞎猜,結(jié)果就是把“電池正反面”答成“正反兩面都有電池”。因此,沒有目錄的說明書,大模型真的很難理解——它不缺字,缺的是字與字之間的“血緣”。
元數(shù)據(jù)完整:數(shù)據(jù)本身的各類屬性也是大模型的重要參考
在RAG知識(shí)庫(kù)里,元數(shù)據(jù)就像超市貨架上的價(jià)簽、保質(zhì)期和條形碼:它們不是商品本身,卻告訴大模型“這袋牛奶產(chǎn)自哪家牧場(chǎng)、哪天到期、該放第幾排冷柜”。當(dāng)用戶問“孕婦能喝什么牛奶”時(shí),模型無需把牛奶盒子逐字嚼一遍,只要掃一眼元數(shù)據(jù)里的“成分、鈣含量、適用人群”,就能瞬間篩出低脂高鈣、未過期的幾款。
若缺少這些屬性標(biāo)簽,模型只能像閉著眼在倉(cāng)庫(kù)里亂摸,把奶粉當(dāng)鮮奶、把貓罐頭推給孕婦。因此,數(shù)據(jù)本身的各類屬性——時(shí)間、來源、格式、權(quán)限、語義標(biāo)簽——就是那張讓大模型“秒懂”的隱形目錄;元數(shù)據(jù)越完整,模型越能把碎片拼成正確答案,而不是拼出一盤“知識(shí)沙拉”。
了解各類文件解析邏輯,達(dá)成“成本”,“質(zhì)量”,“速度”三角
無論哪種文檔類型都需要輸出一個(gè)統(tǒng)一格式,結(jié)構(gòu)化明確,內(nèi)容完整的RAG數(shù)據(jù)。每一種數(shù)據(jù)特性各不相同,需要產(chǎn)品根據(jù)“成本”,“質(zhì)量”,“速度”進(jìn)行三角思考。得到最適用的處理方法。
Word文檔解析邏輯
在 RAG 系統(tǒng)的知識(shí)源接入過程中常常需要將 Word 格式的文檔內(nèi)容結(jié)構(gòu)化處理,以便后續(xù)向量化、檢索與生成。
–「解析流程」(文章會(huì)提供一鍵化工具,這里只是提供一個(gè)腳本編寫邏輯)
(1) 文本內(nèi)容解析
使用 “python-docx” 庫(kù)對(duì) .docx 文件進(jìn)行解析,提取出正文段落、標(biāo)題等文本內(nèi)容,并保持文檔原有的結(jié)構(gòu)層級(jí)(如段落編號(hào)、列表等)。
(2) 圖片內(nèi)容提取與映射管理
將文檔中的所有插圖、截圖等圖像內(nèi)容導(dǎo)出至指定的image_folder 文件夾,并在處理過程中建立 image_map 映射關(guān)系:?映射字典的 key:圖片在文檔中的引用 ID映射字典的 value: HTML 格式的
標(biāo)簽(指向圖片路徑)
(3) 文檔內(nèi)容再處理與圖片嵌入
在遍歷文檔正文內(nèi)容時(shí),若檢測(cè)到圖片引用位置,會(huì)動(dòng)態(tài)調(diào)用image_map 中對(duì)應(yīng)的
標(biāo)簽,將其插入至相應(yīng)文本段落中,實(shí)現(xiàn)圖文混排。整個(gè)處理過程遵循統(tǒng)一的 HTML 拼接邏輯。
(4) 生成最終HTML格式文檔
輸出結(jié)果為包含富文本結(jié)構(gòu)(文本 + 圖片)的 HTML 內(nèi)容塊,方便后續(xù)用于:向量化切分分塊(RAG文檔預(yù)處理);檢索展示(檢索結(jié)果高亮/插圖還原);頁面預(yù)覽(用戶檢索結(jié)果直觀呈現(xiàn))
PDF文檔解析邏輯
構(gòu)建企業(yè)級(jí)知識(shí)庫(kù)時(shí),PDF 是極為常見的數(shù)據(jù)來源。但其天然的“非結(jié)構(gòu)化”特點(diǎn),相比 Word、HTML 等文檔,處理難度和技術(shù)復(fù)雜度顯著更高,原因如下:
- Word/HTML/Markdown屬于有標(biāo)記文檔(structureddocuments),天生具備結(jié)構(gòu)化標(biāo)簽(如段落、列表、表格等),計(jì)算機(jī)可直接解析。
- PDF則是版面呈現(xiàn)驅(qū)動(dòng)的文件格式,本質(zhì)上是為“人看”而設(shè)計(jì),內(nèi)容以頁面流形式按坐標(biāo)繪制,不含語義結(jié)構(gòu)信息。
第一步:PDF文本內(nèi)容提取:
(1)使用如 pdfplumber / PyMuPDF 等工具,對(duì) PDF頁面流進(jìn)行解析(或者直接用OCR+文檔解析)
(2) 提取每一頁的文字塊,并保留其坐標(biāo)信息(x/y 位置、字體大小、頁碼等)
(3) 輸出為結(jié)構(gòu)化的“段落 + 位置信息”集合,為后續(xù)重構(gòu)文檔結(jié)構(gòu)做準(zhǔn)備
第二步:版面還原與語義聚合:
(1) 基于字符位置與排版特征,重建段落/標(biāo)題/列表等結(jié)構(gòu);
(2) 對(duì)換行斷句等錯(cuò)誤進(jìn)行修復(fù)(如段落跨頁斷裂、空格消失等);
(3) 利用規(guī)則/模型判斷內(nèi)容的邏輯層級(jí)(如“二級(jí)標(biāo)題”、“表格行”)
第三步:圖文內(nèi)容同步處理
(1) 檢測(cè)文檔中出現(xiàn)的嵌入圖片(如表單截圖、流程圖等);
(2) 將圖片抽取至 image_folder,并建立 ID ? 圖片HTML 映射;
(3) 在解析出的文本中插入 img 標(biāo)簽,形成圖文結(jié)合的HTML 片段
第四步:生成統(tǒng)一格式文檔片段
(1) 最終輸出標(biāo)準(zhǔn) HTML 文本塊,每塊表示一個(gè)段落/圖文片段;
(2) 用于后續(xù)向量化切塊、RAG 檢索調(diào)用、富文本問答展示等流程
多模態(tài)預(yù)料如何處理
1、音頻怎么處理(如會(huì)議錄音、播客等)最小可行做法(先跑通):
(1) 轉(zhuǎn)文字(ASR):先用語音識(shí)別(ASR)把整段音頻轉(zhuǎn)成文字,自動(dòng)生成時(shí)間戳(如:10:12-10:40)。
(2)切塊:每20-40秒切成一段,段與段之間重疊2-3秒,每段都保留開始/結(jié)束時(shí)間,避免語義被切斷(每段保留 {text,start, end, audio_path}四元組,方便后續(xù)拼接)。
(3) 構(gòu)建索引:建立語義索引和關(guān)鍵詞索引(方便檢索時(shí)按關(guān)鍵詞/語義快速檢索)。
(4)檢索流程:用戶提問 在索引中檢索 找到相關(guān)切塊>按時(shí)間順序拼接,返回文本答案-附上時(shí)間戳跳轉(zhuǎn),支持“回溯原音頻”。
2、視頻怎么處理(如課程、直播、產(chǎn)品演示):
最小可行做法(先跑通):先用最低成本跑通“音軌問答”,再按需疊加“畫面信息”
(1)抽取音軌:參照音頻流程做(ASR 切塊 索引),快速覆蓋大部分基于口述內(nèi)容的問題
(2)進(jìn)階:補(bǔ)畫面信息(兩步)
- 關(guān)鍵幀/關(guān)鍵頁:鏡頭切換檢測(cè)(如在PPT翻頁/鏡頭切換)時(shí),自動(dòng)抓一張截圖,作為“視覺書簽”。
- OCR識(shí)別:對(duì)截圖做文字識(shí)別,提取出標(biāo)題、要點(diǎn)、表格、代碼等。(輸出:{timestamp,image_path,ocr_text})
把識(shí)別出的文字場(chǎng)塊,并和 時(shí)間戳、截圖地址綁定。
用戶提問時(shí),系統(tǒng)既能在音軌文字里找到答案,也能在截圖文字里定位關(guān)鍵信息,并能返回“相關(guān)畫面”。
數(shù)據(jù)清洗,打造高質(zhì)量數(shù)據(jù)集
在RAG(Retrieval-Augmented Generation)知識(shí)庫(kù)的搭建過程中,文檔解析只是第一步,它的目標(biāo)是將非結(jié)構(gòu)化或半結(jié)構(gòu)化的文檔內(nèi)容轉(zhuǎn)化為可處理的文本格式。但解析后的原始文本往往存在大量噪聲、冗余、格式混亂、語義不連貫等問題,如果直接用于后續(xù)的分塊、 embedding 和檢索,會(huì)嚴(yán)重影響檢索的準(zhǔn)確性和生成模型的回答質(zhì)量。
因此,數(shù)據(jù)清洗(Data Cleaning)是必不可少的一步,它的核心目標(biāo)是:將解析后的原始文本轉(zhuǎn)化為高質(zhì)量、結(jié)構(gòu)化、語義清晰的文本數(shù)據(jù),為后續(xù)的向量化、檢索和生成打下堅(jiān)實(shí)基礎(chǔ)。
以下是一個(gè)適用于RAG知識(shí)庫(kù)的標(biāo)準(zhǔn)數(shù)據(jù)清洗流程,建議按順序執(zhí)行:
1. 格式清理(Format Cleaning)
- 去除HTML/XML標(biāo)簽、LaTeX命令、頁眉頁腳、頁碼、水印
- 清除PDF解析殘留(如“?2023CompanyName”)
- 統(tǒng)一換行符、空格、制表符(如\n\r→\n)
2. 編碼與字符標(biāo)準(zhǔn)化
- 統(tǒng)一UTF-8編碼
- 全角轉(zhuǎn)半角(如中文括號(hào)→英文括號(hào))
- 去除不可見字符(如零寬空格、BOM頭)
- 統(tǒng)一標(biāo)點(diǎn)符號(hào)(中文句號(hào)→英文句號(hào),或反之)
3. 冗余信息過濾
- 去除版權(quán)聲明、免責(zé)聲明、廣告、重復(fù)段落
- 刪除“目錄”、“參考文獻(xiàn)”、“致謝”等非正文部分
- 去除短于N個(gè)字符的無意義段落(如“第1章”)
4. 結(jié)構(gòu)恢復(fù)(Structure Restoration)
- 恢復(fù)標(biāo)題層級(jí)(如“1.1.2小節(jié)”→三級(jí)標(biāo)題)
- 合并被錯(cuò)誤拆分的段落(如跨頁段落)
- 將表格、列表、代碼塊還原為結(jié)構(gòu)化文本(如Markdown格式)
5. 語義連貫性修復(fù)
- 合并斷句(如“如圖\n2-1所示”→“如圖2-1所示”)
- 修復(fù)OCR錯(cuò)誤(如“機(jī)哭學(xué)習(xí)”→“機(jī)器學(xué)習(xí)”)
- 統(tǒng)一術(shù)語(如“NLP”、“自然語言處理”→統(tǒng)一為“自然語言處理”)
6. 語言與分詞預(yù)處理
- 中英文之間加空格(如“使用Python進(jìn)行數(shù)據(jù)分析”→“使用Python進(jìn)行數(shù)據(jù)分析”)
- 統(tǒng)一術(shù)語大小寫(如“openai”、“OpenAI”→“OpenAI”)
- 可選:進(jìn)行分詞、詞干提?。ㄒ昬mbedding模型而定)
7. 分塊前準(zhǔn)備(Pre-chunking Preparation)
- 按標(biāo)題、段落、句子進(jìn)行初步切分
- 保留標(biāo)題與正文的關(guān)聯(lián)(如“##標(biāo)題\n正文”)
- 標(biāo)記特殊塊(如代碼塊、表格、引用)
當(dāng)收集到的業(yè)務(wù)文檔根據(jù)產(chǎn)品所制定的一系列策略,從文檔的整理到文檔的解析,從凌亂的數(shù)據(jù)清洗成結(jié)構(gòu)化的統(tǒng)一格式的數(shù)據(jù)。知識(shí)庫(kù)的召回率和準(zhǔn)確率將會(huì)大大提高,祝各位產(chǎn)品都能建立起一套邏輯清晰,輸出直擊答案的RAG知識(shí)庫(kù)。
本文由 @產(chǎn)品經(jīng)理小易 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
- 目前還沒評(píng)論,等你發(fā)揮!