国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
RAG的5種文本分塊策略#Text Splitting
你是否曾經(jīng)嘗試將一段很長的文本輸入ChatGPT,卻被告知文本太長了?或者你是否試圖讓你的應(yīng)用程序具有更好的長期記憶,但效果還不夠好?

提高大語言模型性能的一個有效的策略是將大型數(shù)據(jù)分割成較小的部分。這個過程被稱為分割或分塊(Text Splitting)。 



在這個教程中,介紹了文本分割的5種方法。我閱讀后做了些精簡,分享給大家,原文可以文末查看原鏈接。


Text Splitting
文本分割的方法

方法1:字符分割 - 簡單的靜態(tài)字符數(shù)據(jù)塊

方法2:遞歸字符文本分割 - 基于分隔符列表的遞歸分塊

方法3:特定文檔分割 - 針對不同文檔類型(PDF、Python、Markdown)的各種分塊方法

方法4:語義分割 - 基于嵌入式遍歷的分塊

方法5:LLM 分割 - 使用類似代理系統(tǒng)的實驗性文本分割方法。如果您的GPT成本接近于0.00美元,這種方法很好。

為了方便理解各種分割方式,可以通過下面這個可視化的網(wǎng)站,調(diào)整參數(shù),體驗文本分割的方法 ↓

可視化文本分割
chunkviz.up.railway.app



方法1:字符分割
字符分割是將文本分割的最基本形式。它是簡單地將文本分割成N個字符大小的塊,而不考慮其內(nèi)容或形式。

優(yōu)點:簡單易行
缺點:非??贪?,不考慮文本的結(jié)構(gòu)

需要了解的概念:

塊大小 Chunk Size - 您希望在塊中包含的字符數(shù)。50、100、100,000等。

塊重疊 Chunk Overlap - 您希望連續(xù)塊之間重疊的量。這是為了避免將單個上下文切割成多個部分。這將在塊之間創(chuàng)建重復(fù)的數(shù)據(jù)。 






方法2:遞歸字符文本分割

方法1的問題在于完全不考慮文檔的結(jié)構(gòu)。只是按照固定數(shù)量的字符進(jìn)行分割。

遞歸字符文本分割器可以解決這個問題。通過它,我們將指定一系列分隔符來分割文檔。例如 LangChain的默認(rèn)分隔符:

"\n\n" - 換行
"\n" - 換行
" " - 空格
"" - 空字符

這是快速搭建應(yīng)用程序時的首選。如果您不知道從哪個分割器開始,這是一個不錯的首選。





方法3:特定文檔分割

除了普通文本文件之外的其他文檔類型。比如圖片、PDF、代碼片段等等。前兩個方法對于這些情況并不適用,所以需要找到不同的策略。

Markdown、Python和JS的分割器基本上與遞歸字符分割器類似,只是使用不同的分隔符。例如 Markdown 分隔符:

\n#{1,6} - 標(biāo)題
```\n -代碼塊
\n\\*\\*\\*+\n - Horizontal Lines
\n---+\n - Horizontal Lines
\n___+\n - Horizontal Lines
\n\n 換行
\n - 換行
" " - 空格
"" - 空字符

再比如 Python 分隔符:


\nclass -類
\ndef - 方法
\n\tdef - Indented functions
\n\n - 換行
\n - 換行
" " - 空格
"" - 空字符



方法4:語義分塊

我們是否覺得為塊大小設(shè)置一個全局常量很奇怪?我們的普通分塊機制是否更奇怪,因為它們沒有考慮實際內(nèi)容?

嵌入表示了字符串的語義含義。它們本身并沒有太多作用,但是當(dāng)與其他文本的嵌入進(jìn)行比較時,您可以開始推斷塊之間的關(guān)系。利用這個特性,探索使用嵌入來找到語義上相似的文本聚類。假設(shè)是語義上相似的塊應(yīng)該放在一起。

(此部分詳見作者代碼演示)


方法5:LLM 分塊

我們是否可以命令LLM執(zhí)行此任務(wù)?人類是如何進(jìn)行分塊的呢?我們會如何將文檔分塊成具有語義相似性的離散部分?


我會準(zhǔn)備一張草稿紙或記事本。

我會從文章的頂部開始,假設(shè)第一部分將是一個塊(因為我們還沒有任何塊)。

然后,我會繼續(xù)閱讀文章,評估新的句子或文章片段是否應(yīng)該成為第一個塊的一部分,如果不是,就創(chuàng)建一個新的塊。

然后一直這樣做,直到讀完整篇文章。

ps:

是否要嚴(yán)格使用文檔的原始文本,還是使用改寫的形式。改寫的方式,從原始文本中提取獨立的陳述句。

例如: Greg went to the park. He likes walking 
['Greg went to the park.', 'Greg likes walking']





以上是5種不同的分割策略。歡迎入群交流 ↓



什么是RAG?私有化的wiki百科AI助手

原文:
https://github.com/FullStackRetrieval-com/RetrievalTutorials/blob/main/5_Levels_Of_Text_Splitting.ipynb




github.com/explodinggradients/ragas

評估工具推薦:
Ragas是一個幫助您評估檢索增強生成(RAG)pipelines。Ragas提供基于最新研究的工具,用于評估LLM生成的文本,以幫助您了解RAG pipelines的情況。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
把固定格式的文本文檔轉(zhuǎn)換為Excel電子表格的方法
文本連接的幾種方式
M函數(shù)整理之文本函數(shù)(附單詞解釋,更輕松理解公式)
WPS文字技巧—巧用制表位對齊文本
從零開始學(xué) LangChain-01 入門介紹
word中使用正則表達(dá)式進(jìn)行查找和替換
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服