干貨分享 | RAG的5種切分策略
這篇文章將帶你深入探索RAG的五種切分策略,這些策略是優(yōu)化RAG工作流程的第一步,對(duì)于提高信息檢索的效率和準(zhǔn)確性至關(guān)重要。
RAG(Retrieval-Augmented Generation,檢索增強(qiáng)生成)是一種結(jié)合了信息檢索技術(shù)和語言生成模型的人工智能技術(shù)。RAG模型由Facebook AI Research(FAIR)團(tuán)隊(duì)于2020年首次提出,并迅速成為大模型應(yīng)用中的熱門方案。
RAG的基本思想是通過從外部知識(shí)庫中檢索相關(guān)信息,并將這些信息作為額外的上下文提供給語言模型,從而增強(qiáng)模型生成文本的能力。能幫助模型減少幻覺、提高內(nèi)容生成的準(zhǔn)確性。
本文主要介紹RAG工作流程的第一步涉及的5種切分策略。
01. RAG應(yīng)用工作流程
以下是典型的RAG應(yīng)用工作流程:
RAG:將額外信息存儲(chǔ)為向量,將傳入的查詢與這些向量匹配,并將最相似的信息與查詢一起傳遞給大語言模型(LLM)。
由于額外的文檔可能非常大,第1步還需要進(jìn)行切分操作,將大文檔分割成較小、易于管理的部分。
這一步至關(guān)重要,它確保文本能夠適應(yīng)嵌入模型的輸入大小。此外,它提高了檢索步驟的效率和準(zhǔn)確性,這直接影響生成響應(yīng)的質(zhì)量。
以下將逐步介紹RAG的五種切分策略:
02. 固定大小切分
最直觀的切分方法是根據(jù)預(yù)定的字符數(shù)、單詞數(shù)或Token數(shù)量將文本均勻分割成若干段落。
由于直接切分可能會(huì)破壞語義流暢性,建議在連續(xù)段落間保留一些重疊(如上圖的藍(lán)色部分)。
這種方法易于實(shí)現(xiàn),而且所有段落大小相同,有助于簡化批處理。
但它存在一個(gè)大問題:通常會(huì)在句子(或想法)中途切分,導(dǎo)致重要信息可能分散在不同段落中。
03. 語義切分
根據(jù)句子、段落或主題部分等有意義的單元來切分文檔,接著,為每個(gè)段落生成嵌入,假設(shè)從第一個(gè)段落及其嵌入開始。
- 如果第一個(gè)段落的嵌入與第二個(gè)段落的嵌入余弦相似度較高,則兩個(gè)段落組成一個(gè)切片。
- 這個(gè)過程持續(xù)進(jìn)行,直到余弦相似度顯著下降。
- 一旦下降,我們就開始一個(gè)新切片并重復(fù)此過程。
輸出可能如下所示:
這種方式與固定大小切片不同,能夠保持語言的自然流暢性,并保留完整的思想。
由于每個(gè)切片語義更為豐富,它提高了檢索準(zhǔn)確度,進(jìn)而使LLM生成的響應(yīng)更加連貫且相關(guān)。
一個(gè)小問題是,確定余弦相似度下降的閾值在不同文檔間可能有所不同。
04. 遞歸切分
首先,基于內(nèi)在的分隔符(如段落或章節(jié))進(jìn)行切分。
然后,如果某個(gè)切片的大小超過預(yù)定義的切片大小限制,就將其進(jìn)一步分割。如果切片符合大小限制,則不再進(jìn)行切分。
輸出結(jié)果可能如下所示:
如上所示:
- 首先,我們定義了兩個(gè)切片(紫色的兩個(gè)段落)。
- 接下來,第1段被進(jìn)一步分割成較小的切片。
與固定大小的切片不同,這種方法也保持了語言的自然流暢性,并保留了完整的思想。
不過,在實(shí)現(xiàn)和計(jì)算復(fù)雜性方面有一些額外的開銷。
05. 基于文檔結(jié)構(gòu)的切分
利用文檔內(nèi)在的結(jié)構(gòu)(如標(biāo)題、章節(jié)或段落)定義切片邊界。
這種方式能保持文檔的結(jié)構(gòu)完整性,確保切片與文檔的邏輯部分對(duì)齊。
該方法假設(shè)文檔結(jié)構(gòu)清晰,但這可能并非總是如此。此外,切片長度可能不同,甚至超過模型的Token限制??梢試L試與遞歸切分結(jié)合使用。
輸出結(jié)果可能如下所示:
06. 基于LLM的切分
由于每種方法都有其優(yōu)缺點(diǎn),為什么不讓LLM來生成切片呢?LLM可以通過提示詞生成語義隔離且有意義的切片。
顯然,這種方法確保了高語義準(zhǔn)確性,因?yàn)長LM能理解上下文和意義,遠(yuǎn)超簡單的啟發(fā)式方法。
唯一的問題是,這種方式的計(jì)算成本是五種方法中最高的。此外,由于LLM通常有上下文窗口限制,需要對(duì)此加以處理。
總結(jié)
每種技術(shù)都有各自的優(yōu)劣,不過我發(fā)現(xiàn)語義切分在許多情況下效果不錯(cuò),但仍然需要根據(jù)實(shí)際情況進(jìn)行測試,最終的選擇將取決于內(nèi)容的性質(zhì)、嵌入模型的能力和計(jì)算資源等。
作者:小布Bruce,公眾號(hào):AI思
本文由 @小布Bruce 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)
- 目前還沒評(píng)論,等你發(fā)揮!