成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從 LangChain 到企業(yè)級應(yīng)用:RAG 中 Fixed-Size Chunking 的最佳實(shí)踐揭秘

人工智能
今天我們來聊一下人工智能應(yīng)用場景 - 構(gòu)建高效、靈活的計算架構(gòu)的 RAG 架構(gòu)的切塊策略—Fixed-Size Chunking(固定切塊)。

眾所周知,在構(gòu)建 RAG(Retrieval-Augmented Generation,檢索增強(qiáng)生成)系統(tǒng)的過程中,文檔切塊策略往往決定了模型檢索質(zhì)量的上限。切得好,信息命中更精準(zhǔn),生成回答更有上下文邏輯;切得差,模型則容易“答非所問”。

在眾多策略中,F(xiàn)ixed-Size Chunking(固定切塊)可謂最簡單直接,卻也是最常被忽視的一種。看似粗暴,卻在實(shí)際工程中表現(xiàn)穩(wěn)定、適配廣泛,尤其適合對實(shí)時響應(yīng)和成本敏感的場景。

那么,F(xiàn)ixed-Size Chunking 到底該如何設(shè)置?有哪些常見誤區(qū)?它真的“簡單有效”嗎?這篇文章將帶你深入解析固定切塊策略的核心邏輯、代碼實(shí)現(xiàn)與適用場景,讓你在構(gòu)建 RAG 應(yīng)用時少踩坑、多提效。

1. 如何理解 Fixed-Size Chunking ?

在檢索增強(qiáng)生成(RAG)系統(tǒng)中,文檔分塊(Chunking)是影響檢索效率和生成質(zhì)量的關(guān)鍵第一步,因此,在實(shí)際的業(yè)務(wù)場景中,理解并選擇合適的分塊策略便顯得至關(guān)重要。

然而,作為 9 大分塊策略中最為基礎(chǔ)且直觀的分塊方法,固定大小切分 (Fixed-Size Chunking) 擁有較為廣泛的應(yīng)用場景以及扮演著重要的角色。

固定大小切分(Fixed-Size Chunking) 策略的核心思想是將長文本內(nèi)容按照預(yù)設(shè)的、統(tǒng)一的長度單位進(jìn)行機(jī)械式分割。這種長度單位可以是詞語數(shù)量 (word count)、字符數(shù)量 (character count),或者是模型輸入的 Token 數(shù)量 (token count)。

例如,我們可以將一篇冗長的文檔,每隔 200 個詞語或 512 個 Token 就切分成一個獨(dú)立的文本塊。這種方法完全依賴于直接且程式化的文本分割邏輯,不涉及復(fù)雜的語義分析或語言學(xué)判斷,尤其適用于當(dāng)下游模型或系統(tǒng)對輸入數(shù)據(jù)有嚴(yán)格固定尺寸要求的場景,例如需要批量處理或作為固定維度輸入到某些機(jī)器學(xué)習(xí)模型中。

2. Fixed-Size Chunking 策略有哪些優(yōu)劣勢 ?

在實(shí)際的業(yè)務(wù)場景中,基于固定大小切分(Fixed-Size Chunking) 策略具有較高的優(yōu)勢,具體體現(xiàn)在如下 2 點(diǎn):

(1) 實(shí)現(xiàn)簡易性與處理高效性 (Simplicity and Speed)

固定大小切分策略的實(shí)現(xiàn)邏輯極為直觀和簡單,無需復(fù)雜的語言學(xué)分析、深度學(xué)習(xí)模型支持或高級算法支持。這使得它在開發(fā)和部署階段資源消耗極低,能夠以非常高的速度完成大規(guī)模文本的分塊任務(wù),是快速構(gòu)建 RAG 原型或處理海量非結(jié)構(gòu)化數(shù)據(jù)的首選策略。

(2) 高可預(yù)測性與數(shù)據(jù)統(tǒng)一性 (Predictability and Uniformity)

此外,該策略能夠產(chǎn)生尺寸統(tǒng)一、格式一致的文本塊。這種高度的可預(yù)測性極大地簡化了數(shù)據(jù)在后續(xù) RAG 流程中的存儲、索引和檢索過程。例如,在向量數(shù)據(jù)庫中,所有文本塊的維度和存儲空間都是可預(yù)期的,這有利于數(shù)據(jù)庫性能優(yōu)化、資源管理和系統(tǒng)調(diào)試。

雖然,基于固定大小切分(Fixed-Size Chunking) 策略是在實(shí)際的場景中具有較為廣泛的應(yīng)用場景,但隨著業(yè)務(wù)的復(fù)雜性,其面臨著如下問題:

① 1 個是上下文碎片化 (Context Fragmentation),即 由于切分是機(jī)械性的,它常常會在句子中間、段落連接處,甚至是重要的邏輯單元(如列表項、關(guān)鍵定義)內(nèi)部進(jìn)行強(qiáng)制分割。這種語義割裂會嚴(yán)重破壞文本的自然語義流和上下文連貫性。

檢索時,大模型可能因此獲得不完整或斷裂的語境信息,從而導(dǎo)致理解偏差,影響回答的準(zhǔn)確性,甚至產(chǎn)生“幻覺”。這也是固定大小切分最顯著的缺點(diǎn)。

② 第 2 個問題便是缺乏適應(yīng)性與僵硬性 (Rigidity and Lack of Adaptability)。由于此方法無法根據(jù)文本本身的邏輯結(jié)構(gòu)、語義邊界、主題變化或文檔的復(fù)雜程度進(jìn)行自適應(yīng)調(diào)整。

重要的相關(guān)概念或信息可能會被不必要地分割到不同的塊中,或者不相關(guān)的上下文被強(qiáng)制捆綁在一起。這種僵硬性使得它在處理結(jié)構(gòu)復(fù)雜、語義關(guān)聯(lián)緊密或包含多主題的文檔時,檢索和生成效果往往差強(qiáng)人意。

3. Fixed-Size Chunking 策略簡單實(shí)現(xiàn)示例解析

接下來,我們來看一個簡單的示例,基于 Python 代碼實(shí)現(xiàn)如何將文本按固定詞數(shù)進(jìn)行切分。具體如下所示:

def fixed_size_chunk(text: str, chunk_size: int = 50) -> list[str]:
    """
    將文本按固定詞數(shù)進(jìn)行切分。
    Args:
        text (str): 待切分的原始文本字符串。
        chunk_size (int): 每個文本塊所包含的詞語數(shù)量。
                          默認(rèn)為 50 個詞。
    Returns:
        list[str]: 包含切分后文本塊的字符串列表。
    """
    words = text.split() 
    chunks = [" ".join(words[i:i+chunk_size]) for i in range(0, len(words), chunk_size)]
    return chunks
# --- 示例用法 ---
# 假設(shè) pdf_text_example 是從 PDF 文檔中提取出的一個長文本內(nèi)容
# 為了演示,我將使用一個足夠長的示例文本,但您可以替換為您的實(shí)際文本
pdf_text_example = """
在人工智能領(lǐng)域,檢索增強(qiáng)生成(RAG)技術(shù)已經(jīng)成為構(gòu)建實(shí)用、知識驅(qū)動的大型語言模型(LLM)應(yīng)用的核心范式。它有效地彌合了模型靜態(tài)知識與動態(tài)外部信息之間的鴻溝,讓 LLM 能夠引用實(shí)時或領(lǐng)域特定的數(shù)據(jù),極大地提高了回復(fù)的準(zhǔn)確性和可靠性。然而,當(dāng)我們邁向更復(fù)雜的 AI 應(yīng)用時,僅僅依賴向量相似性搜索,在處理那些相互關(guān)聯(lián)、關(guān)系至關(guān)重要的數(shù)據(jù)時常常顯得力不從心。構(gòu)建真正智能的代理或提供高度準(zhǔn)確、理解上下文深度的回答,需要理解信息之間的‘聯(lián)系’,而不僅僅是‘相似’。這正是對下一代 RAG 應(yīng)用的需求所在。支撐這些高級能力的數(shù)據(jù)庫,必須能夠同時處理向量相似性和復(fù)雜的結(jié)構(gòu)化關(guān)系。HelixDB 應(yīng)運(yùn)而生,正是為了應(yīng)對這一挑戰(zhàn)。它打破了傳統(tǒng)數(shù)據(jù)庫的界限,是一個革命性的開源圖向量數(shù)據(jù)庫,巧妙融合了圖數(shù)據(jù)庫強(qiáng)大的關(guān)系表達(dá)能力與向量數(shù)據(jù)庫高效的相似性搜索能力。HelixDB 旨在為下一代 RAG 應(yīng)用提供一個更智能、更靈活的數(shù)據(jù)存儲基礎(chǔ),讓你能夠基于內(nèi)容相似性和結(jié)構(gòu)化關(guān)系進(jìn)行更豐富的上下文檢索。如果你正在探索 RAG 的未來,并尋求能夠同時處理向量和復(fù)雜關(guān)系的強(qiáng)大開源數(shù)據(jù)解決方案,那么理解 HelixDB 至關(guān)重要。通過本文,你將一文讀懂這款為下一代 RAG 應(yīng)用量身打造的開源圖向量數(shù)據(jù)庫的核心理念、架構(gòu)優(yōu)勢以及它如何助力你的智能化創(chuàng)新。讓我們一起深入了解 HelixDB 的獨(dú)特之處吧!這是一個額外的句子,確保文本足夠長,可以被切分成多個塊,以演示第二個塊的打印。
"""
# 將文本按每50個詞語切分成塊
chunks_result = fixed_size_chunk(pdf_text_example, chunk_size=10)
print(f"原始文本被切分成了 {len(chunks_result)} 個塊。")
# --- 解決方案在這里:添加安全檢查 ---
# 嘗試打印第一個塊
if len(chunks_result) > 0:
    print("\n--- 第一個塊內(nèi)容示例 ---")
    print(chunks_result[0])
else:
    print("\n--- 列表為空,無法打印第一個塊 ---")
# 嘗試打印第二個塊,先檢查列表長度是否至少有2個元素
if len(chunks_result) > 1:
    print("\n--- 第二個塊內(nèi)容示例 ---")
    print(chunks_result[1])
else:
    print("\n--- 無法打印第二個塊,因為列表長度不足(少于2個塊) ---")
# 如果您想打印所有生成的塊,可以使用循環(huán):
# print("\n--- 所有生成的文本塊 ---")
# for i, chunk in enumerate(chunks_result):
#     print(f"塊 {i}:")
#     print(chunk)
#     print("-" * 20)

上述這段代碼實(shí)現(xiàn)了一個固定大小分塊(Fixed-Size Chunking)的功能,用于將長文本按指定詞數(shù)分割成多個塊,適用于 RAG(Retrieval-Augmented Generation)系統(tǒng)中文檔預(yù)處理。

執(zhí)行運(yùn)行:

[(base) lugalee@labs rag ]% /opt/homebrew/bin/python3 /Volumes/home/rag/fixedsiz.py
原始文本被切分成了 2 個塊。


--- 第一個塊內(nèi)容示例 ---
在人工智能領(lǐng)域,檢索增強(qiáng)生成(RAG)技術(shù)已經(jīng)成為構(gòu)建實(shí)用、知識驅(qū)動的大型語言模型(LLM)應(yīng)用的核心范式。它有效地彌合了模型靜態(tài)知識與動態(tài)外部信息之間的鴻溝,讓 LLM 能夠引用實(shí)時或領(lǐng)域特定的數(shù)據(jù),極大地提高了回復(fù)的準(zhǔn)確性和可靠性。然而,當(dāng)我們邁向更復(fù)雜的 AI 應(yīng)用時,僅僅依賴向量相似性搜索,在處理那些相互關(guān)聯(lián)、關(guān)系至關(guān)重要的數(shù)據(jù)時常常顯得力不從心。構(gòu)建真正智能的代理或提供高度準(zhǔn)確、理解上下文深度的回答,需要理解信息之間的‘聯(lián)系’,而不僅僅是‘相似’。這正是對下一代 RAG 應(yīng)用的需求所在。支撐這些高級能力的數(shù)據(jù)庫,必須能夠同時處理向量相似性和復(fù)雜的結(jié)構(gòu)化關(guān)系。HelixDB 應(yīng)運(yùn)而生,正是為了應(yīng)對這一挑戰(zhàn)。它打破了傳統(tǒng)數(shù)據(jù)庫的界限,是一個革命性的開源圖向量數(shù)據(jù)庫,巧妙融合了圖數(shù)據(jù)庫強(qiáng)大的關(guān)系表達(dá)能力與向量數(shù)據(jù)庫高效的相似性搜索能力。HelixDB 旨在為下一代 RAG


--- 第二個塊內(nèi)容示例 ---
應(yīng)用提供一個更智能、更靈活的數(shù)據(jù)存儲基礎(chǔ),讓你能夠基于內(nèi)容相似性和結(jié)構(gòu)化關(guān)系進(jìn)行更豐富的上下文檢索。如果你正在探索 RAG 的未來,并尋求能夠同時處理向量和復(fù)雜關(guān)系的強(qiáng)大開源數(shù)據(jù)解決方案,那么理解 HelixDB 至關(guān)重要。通過本文,你將一文讀懂這款為下一代 RAG 應(yīng)用量身打造的開源圖向量數(shù)據(jù)庫的核心理念、架構(gòu)優(yōu)勢以及它如何助力你的智能化創(chuàng)新。讓我們一起深入了解 HelixDB 的獨(dú)特之處吧!

Happy Coding ~

Reference :[1] https://www.koyeb.com/blog/what-is-rag-retrieval-augmented-generation-for-ai

Adiós !

責(zé)任編輯:趙寧寧 來源: 架構(gòu)驛站
相關(guān)推薦

2025-05-27 08:35:00

2025-05-28 09:00:00

2010-10-25 09:53:03

ibmdw云計算

2015-05-26 09:41:45

china-pub

2024-08-09 13:49:56

2015-10-15 17:17:33

云應(yīng)用平臺系統(tǒng)構(gòu)建實(shí)踐

2012-11-12 09:38:12

云計算實(shí)踐私有云金蝶系統(tǒng)

2024-11-14 08:10:00

Python開發(fā)

2010-08-18 16:41:39

Android應(yīng)用

2018-02-02 11:21:25

云計算標(biāo)準(zhǔn)和應(yīng)用大會

2012-06-14 13:26:22

2014-08-07 09:48:40

2025-04-21 04:50:00

2021-03-04 12:57:02

PaaSSaaSIaaS

2013-04-26 15:13:26

Ted YuHBase大數(shù)據(jù)全球技術(shù)峰會

2012-05-15 15:21:29

企業(yè)級

2023-03-29 07:49:05

企業(yè)級項目研發(fā)

2011-02-25 10:33:16

ibmdw云計算

2021-10-11 14:28:25

TypeScript企業(yè)級應(yīng)用

2010-01-04 16:38:07

企業(yè)級Silverli
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美精品一区二区蜜桃 | 国产视频精品在线 | 无毛av | 国产午夜久久久 | 欧美中文字幕一区二区三区亚洲 | 国产免费一区二区 | 国产精品亚洲成在人线 | 2020国产在线 | 亚洲网站在线播放 | wwwxx在线观看 | 欧美激情一区二区 | 亚洲国产欧美国产综合一区 | 免费黄色片视频 | 中文字幕第十页 | 天天视频一区二区三区 | 免费观看色 | www中文字幕 | 91精品国产高清一区二区三区 | 日韩一区二区视频 | 成人国产精品一级毛片视频毛片 | 国产色片在线 | 久久中文字幕一区 | 亚洲色欲色欲www | 老牛影视av一区二区在线观看 | 91天堂网| 成人免费观看网站 | 国产91网址 | 人人干人人看 | 亚洲精品一区av在线播放 | 国产精品久久久久久久久免费丝袜 | 成人国产精品一级毛片视频毛片 | 中文在线一区二区 | 99这里只有精品视频 | 91视频久久| 色资源在线观看 | 国产精品久久国产精品久久 | 天天干天天想 | 亚洲色欲色欲www | 精品国产乱码久久久久久88av | 91精品国产综合久久小仙女图片 | 91精品久久久久久久久 |