大型語言模型 改變了自然語言處理(NLP) 通過生成類人的文本,回答復(fù)雜的問題,分析大量的信息,以令人印象深刻的準(zhǔn)確性。從客戶服務(wù)到醫(yī)學(xué)研究,他們能夠處理各種各樣的詢問并做出詳細(xì)的答復(fù),這使他們在許多領(lǐng)域都具有無價之寶。然而,隨著LLMS用于處理更多的數(shù)據(jù),它們在管理長文檔和高效檢索最相關(guān)的信息方面遇到挑戰(zhàn)。
盡管LLMS善于處理和生成類人的文本,但他們有一個有限的"上下文窗口"。"這意味著他們一次只能在內(nèi)存中保存一定數(shù)量的信息,這就很難管理很長的文檔。對于LLMS來說,快速從大型數(shù)據(jù)集中找到最相關(guān)的信息也是一個挑戰(zhàn)。除此之外,LLMS還接受固定數(shù)據(jù)培訓(xùn),因此隨著新信息的出現(xiàn),它們可能會變得過時。為了保持準(zhǔn)確和有用,它們需要定期更新。
回收增加的一代 (RAG) (打開新窗口)應(yīng)對這些挑戰(zhàn)。該工作流中有許多組件,如查詢、嵌入、索引等。今天,讓我們來探索分塊策略。
通過將文檔分成較小的、有意義的段并將它們嵌入到向量數(shù)據(jù)庫中,Raga系統(tǒng)只能為每個查詢搜索和檢索最相關(guān)的塊。這種方法使LLMS能夠側(cè)重于具體信息,提高響應(yīng)的準(zhǔn)確性和效率。
在本文中,我們將更深入地探討分塊及其不同的策略,以及它們在優(yōu)化中的作用。
什么是塊?
"塊"是指將大數(shù)據(jù)源分解成更小、更容易處理的數(shù)據(jù)塊或"塊"。"這些塊存儲在向量數(shù)據(jù)庫中,可以根據(jù)相似性進(jìn)行快速有效的搜索。當(dāng)用戶提交查詢時,向量數(shù)據(jù)庫會找到最相關(guān)的塊并將它們發(fā)送到語言模型。這樣,模型只能側(cè)重于最相關(guān)的信息,使其響應(yīng)更快、更準(zhǔn)確。
通過縮小需要查看的數(shù)據(jù)范圍,塊可以幫助語言模型更流暢地處理大型數(shù)據(jù)集,并提供精確的答案。
對于需要快速、準(zhǔn)確答案的應(yīng)用程序--比如客戶支持或合法文檔搜索--分塊是提高性能和可靠性的一個基本策略。
下面是在破布中使用的一些主要的分塊策略:
· 固定尺寸的塊塊
· 遞歸分塊
· 語義分塊
· 不間斷分塊
現(xiàn)在,讓我們深入探討每個分塊策略的細(xì)節(jié)。
1.固定尺寸的塊塊
固定大小的分塊包括將數(shù)據(jù)劃分為平均尺寸的部分,這樣就更容易處理大型文檔。
有時候,開發(fā)人員會在塊之間添加一些重疊,其中一個段的一小部分在下一個段的開頭被重復(fù)。這種重疊方法幫助模型在每個塊的邊界之間保留上下文,確保關(guān)鍵信息不會在邊緣丟失。這一戰(zhàn)略對于需要連續(xù)信息流的任務(wù)特別有用,因?yàn)樗鼓P湍軌蚋鼫?zhǔn)確地解釋文本和理解各部分之間的關(guān)系,從而使答復(fù)更加連貫一致,更符合實(shí)際情況。
上面的例子是 固定尺寸的塊塊 ,其中每一塊都用一種獨(dú)特的顏色來表示。綠色部分表示塊之間的重疊部分,確保模型在處理下一個塊時能夠訪問相關(guān)上下文。
這種重疊提高了模型處理和理解全文的能力,從而在任務(wù)(如摘要或翻譯)中產(chǎn)生了更好的性能,在這些任務(wù)中,保持跨塊邊界的信息流是至關(guān)重要的。
2.遞歸分塊
遞歸分塊法是一種方法,系統(tǒng)地將廣泛的文本劃分為較小的、可管理的部分,方法是反復(fù)地將其分解為亞塊。這一方法對于復(fù)雜或?qū)哟位奈臋n尤為有效,確保每個部分保持連貫性和完整的上下文。這個過程一直持續(xù)到文本達(dá)到適合有效處理的規(guī)模為止。
例如,考慮需要由具有有限上下文窗口的語言模型處理的冗長文檔。遞歸分塊將首先將文檔劃分為主要部分。如果這些部分仍然太大,該方法將把它們進(jìn)一步劃分為子部分,并繼續(xù)這個過程,直到每個塊都符合模型的處理能力。這種分層分解保存了原始文檔的邏輯流和上下文,使模型能夠更有效地處理長文本。
實(shí)際上,遞歸分塊可以使用各種策略實(shí)現(xiàn),例如根據(jù)文檔的結(jié)構(gòu)和任務(wù)的具體要求,根據(jù)標(biāo)題、段落或句子進(jìn)行分塊。
在圖中,文本被分成四個塊,每個塊以不同的顏色顯示,使用遞歸塊。文本被分解成更小的、可管理的部分,每個塊最多包含80個單詞。數(shù)據(jù)塊之間沒有重疊。顏色編碼有助于顯示內(nèi)容如何被分割成邏輯部分,使模型更容易處理和理解長文本,而不丟失重要的上下文。
在理解了基于長度的兩個分塊策略之后,現(xiàn)在是時候來理解一個分塊策略了,它更側(cè)重于文本的意義/上下文。
3.語義分塊
語義分塊是指根據(jù)內(nèi)容的意義或上下文將文本劃分為塊。這種方法通常使用?機(jī)器學(xué)習(xí) (打開新窗口) 或?自然語言處理 (NLP) (打開新窗口) 識別文本中具有類似含義的章節(jié)的技術(shù),例如句子嵌入,或 語義結(jié)構(gòu) .
在插圖中,每個塊由不同的顏色表示-藍(lán)色的人工智能和黃色的提示工程。這些塊是分開的,因?yàn)樗鼈儼瞬煌母拍?。這種方法保證模型能夠清楚地理解每個主題,而不把它們混在一起。
在這些策略中,不間斷分塊是一種強(qiáng)大的策略。在此策略中,我們利用LLMS(如GTP)作為分塊過程中的代理。而不是手動決定如何劃分內(nèi)容,LLS主動組織或劃分信息的理解輸入。在任務(wù)上下文的影響下,LLS確定了將內(nèi)容分解為可管理的片段的最佳方法。
插圖顯示了一個分塊代理將一個大的文本分解為更小的,有意義的片段。這個代理由AI提供動力,它幫助他更好地理解文本,并將其劃分為有意義的塊。我們稱之為 不間斷分塊 與簡單地將文本切成相等的部分相比,這是一種更聰明的處理文本的方法。
分塊策略比較
為了更容易理解不同的分塊方法,下表比較了固定大小的分塊、遞歸分塊、語義分塊和非固定分塊。它突出了每個方法如何工作,何時使用,以及它們的局限性。
重慶式描述方法最好的限制
固定尺寸的塊塊將文本分成大小相等的塊,而不考慮內(nèi)容。根據(jù)固定的字詞或字?jǐn)?shù)限制所創(chuàng)建的塊。簡單的結(jié)構(gòu)化文本,其中上下文的連續(xù)性不那么重要??赡苁ド舷挛幕蚓渥?思想分裂。
遞歸分塊不斷地將文本分成較小的塊,直到它達(dá)到可管理的大小。分層分裂,如果太大的話進(jìn)一步分解。長文件、復(fù)雜文件或分層文件(例如:技術(shù)手冊)。如果章節(jié)過于寬泛,可能仍會失去上下文。
語義分塊根據(jù)意義或相關(guān)的主題將文本分成幾塊.使用NLP技術(shù),如句子嵌入組相關(guān)內(nèi)容。對背景敏感的任務(wù),其中一致性和專題連續(xù)性至關(guān)重要。需要NLP技術(shù);更復(fù)雜的實(shí)現(xiàn)。
不間斷分塊利用人工智能模型(如GTP)將內(nèi)容自主地劃分為有意義的部分?;谀P偷睦斫夂吞囟ㄈ蝿?wù)上下文的i驅(qū)動分割。內(nèi)容結(jié)構(gòu)不同的復(fù)雜任務(wù),AI可以優(yōu)化分割??赡苁遣豢深A(yù)測的,需要調(diào)整。
結(jié)論
要提高LLMS,就必須有大規(guī)模的策略和抹布。分組有助于將復(fù)雜的數(shù)據(jù)簡化為更小、更易于管理的部分,從而促進(jìn)更有效的處理,而LLMS則通過將實(shí)時數(shù)據(jù)檢索納入生成工作流來改進(jìn)??傮w而言,這些方法使LLMS能夠通過將有組織的數(shù)據(jù)與活躍的當(dāng)前信息合并起來,提供更精確、更符合上下文的答復(fù)。