生活分享

文件分塊(Chunking):切多長,才不會把答案切斷

文件分塊把長文件拆成可檢索和處理的小單位,但切得越細不一定越好。本文以社群場地借用手冊說明固定長度、依章節和內容意義分塊的差別,示範如何保留主詞、例外、表格欄名與來源位置,也解釋重疊內容的好處與代價。讀完能用跨段問題與更新測試找出合適策略,避免直接把工具預設長度當成通用答案。

更新日期: 閱讀時間約 7 分鐘

長文件被切成幾塊,其中一段跨邊界保留連續內容
圖片:Mokaair (© Mokaair)

文件分塊,英文 Chunking,是把文件拆成較小單位,讓搜尋、嵌入模型或生成模型能處理其中的相關部分。它看似只是切文字,卻會決定答案所需的主詞、條件與例外能否一起被找到。對 RAG 來說,原文有寫正確答案並不夠;如果切塊後把限制分散到找不到的位置,模型仍可能只看到半個答案。

以下用虛構的社群場地借用手冊示範,不提供適用所有文件的固定長度。Microsoft 與 LangChain 官方文件都列出不同切法與選擇因素,具體設定仍要配合文件結構、查詢方式及模型限制。讀完後,你可以把「切小一點」這種模糊建議轉成可檢查的問題:每塊是否能獨立理解,相關塊是否容易一起取回。

分塊先解決哪個問題

一個原因是輸入長度限制。文件超過嵌入或聊天模型可接受的範圍時,必須縮小或選取內容;否則可能被截斷。另一個原因是相關性:即使整篇放得下,一篇同時包含報名、裝置、退費與清潔規則的手冊,也不一定適合用單一向量表示所有主題。分塊能讓搜尋更容易定位真正回答問題的段落。

但是塊太小可能只剩「以上情況不適用」,完全不知道以上指什麼。塊太大則把大量無關內容一起取回,擠占上下文或稀釋表示。合適單位可能是一個完整規則、一段問答或帶欄名的表格片段,未必是一頁或固定句數。先理解資料如何表達意思,比直接選一個看起來常見的長度更重要。

固定長度與依結構切割

固定長度分塊容易實作,可以按字元或 token 計算,搭配重疊避免邊界太突兀。但字元與 token 並不相同,中文、英文和特殊符號的對應也不固定。若模型限制以 token 計,不能只用字數猜測是否會超出。工具提供的預設值通常是起點,不是它已替你的中文文件找出最佳長度。

依結構切割會優先利用章節、段落、句子或標題。LangChain 的遞迴切割器按分隔符逐步拆分,盡量讓較完整的單位保留下來,文件也提醒沒有空白的語言需要合適的標點分隔符。更進一步的語意切割會嘗試按主題變化分段,但增加判斷與運算,不保證每次都比清楚的章節切法更可靠。

一般清潔規則與廚房例外應保留關係,搭配章節和來源資訊形成可獨立理解的檢索單位
保留主詞、條件與來源,比單看每塊長度更重要。 · 圖片:Mokaair (© Mokaair)

示範:把例外留在適用範圍裡

假設手冊寫「活動結束後可自行清潔場地」,下一段接著說「使用廚房者須由指定人員清潔」。讀者問「借廚房辦活動,可以自己打掃嗎?」若兩段切開,檢索只取回第一段,就容易產生錯誤。較合理的塊應保留清潔規則與廚房例外,或讓查到一般規則時能補抓相鄰例外,並保留原章節名稱。

預期輸出應說明廚房屬於例外,附上對應段落;不是看到「可自行清潔」便直接肯定。這是教學設定,並非真實場地規定。測試時可把問題換成一般教室,確認系統不會反過來把廚房限制套給所有空間。分塊要保留條件關係,讓同一份手冊能支援不同情境,而不是只為某一道題目客製切法。

若手冊用表格列出場地、清潔方式與費用,切出的每塊也要保留欄名和場地識別。只有一串數字與「指定人員」而沒有列名,模型很難知道適用哪個空間。跨頁表格的表頭、頁尾註解與合併儲存格,通常需要先正確解析;文字抽取已經錯行時,後續再聰明的切割也無法自動恢復原本關係。

重疊不是越多越安全

相鄰塊保留部分重疊,可讓位於邊界的句子連貫,減少主詞或條件被切掉的風險。但重疊增加儲存與嵌入工作,也會讓同一段內容重複出現在候選裡。若後續把重複段落都塞進上下文,表面上取回很多塊,實際資訊卻沒有增加,甚至把其他必要條文擠掉。

比較好的做法是同時檢視切割與取回策略:每塊附文件標題、段落位置及來源識別碼,必要時只用小塊搜尋,再讀回較完整的上層章節。這種父子或鄰近內容的設計,是處理粒度的一種方式,不是所有工具都自動提供。要確認補抓範圍與權限仍適用,並避免在補上下文時又把整本手冊無差別放回去。

以問題驗收,還要追蹤更新

可以建立跨句、跨段、表格、否定與例外的測試問題,人工答案所需的原文位置,再檢查這些內容是否一起進入候選。比較策略時,盡量固定嵌入模型、資料版本與候選數,才知道改善是否來自切法。只有檢視每塊平均長度,無法判斷讀者的重要問題是否回答得更好。

長文更新後也要處理識別碼與索引。新增一段文字可能讓後面的固定長度切塊全部位移,若以位置當唯一識別,舊塊可能殘留或對錯來源。需要可追查的文件版本及重建流程,確保修訂條文出現、撤回條文離開適用範圍。檢索到片段時,最好能回到同一版本的完整原文,避免引用位置與內容不同步。

對一般使用者而言,上傳文件後若 回答漏條件,可以要求它列出實際引用段落,檢查例外是否根本沒被看到。若能控制資料整理,先修復標題、表格與段落結構,再討論調整切塊大小。文件分塊做得好,是把完整意思變成可取得的單位;不是把所有內容切成一樣大小就算完成。另外,測試集應包含原文沒有答案的問題,觀察系統是否因切得很碎而把不相干句子拼成結論。保留片段的位置與章節關係,能協助辨認這類拼接錯誤,也讓讀者看出不同來源其實談的是不同條件。

概念對照;來源查證於 2026 年 9 月。
方法處理重點需要留意
固定長度容易控制輸入大小可能切斷條件
依章節與段落保留原文件結構章節長度可能差很大
語意分塊依主題變化拆分需要額外判斷與驗證

  • 生活分享

    世界模型(World Model)是什麼:讓 AI 預測「接下來會怎樣」

    世界模型指 AI 內部用來預測「這樣做之後會怎樣」的模型,但這個詞至少有三種用法:強化學習代理在想像中練習用的環境模型、LeCun 主張預測抽象表示的架構路線,以及能隨操作即時生成畫面的互動環境。內容用示例說明怎麼在想像中規劃,並列出大型語言模型有沒有世界模型的正反研究,附讀新聞時的檢查問題。

  • 生活分享

    視覺語言模型(VLM)是什麼:讓 AI 讀圖片、再用文字回答

    視覺語言模型(VLM)能同時接收圖片與文字,再用文字回答。內容拆解視覺編碼器、連接層與語言模型三段結構,說明 CLIP、Flamingo、LLaVA 三篇論文各補上哪一塊,並和多模態 AI、文字生圖分清楚;也整理它常犯的錯:數錯數量、搞混位置、說出圖裡沒有的東西,附上讀收據時逐行核對的步驟。

  • 生活分享

    溫度(Temperature)是什麼:AI 回答變化程度的取樣參數

    溫度(temperature)是文字生成時調整取樣的參數,讓模型從下一個 token 的機率分布裡抽得更集中或更分散。用假想的台南早餐示例算出低溫與高溫的差別,說明 top-p 的來源和它與 top-k 的差別,並依官方文件與論文指出:調低溫度不代表更準,設成 0 也不保證每次相同,部分模型還不開放調整。

  • 生活分享

    合成資料(Synthetic Data)是什麼:兩種用途、品質控管與模型崩潰

    合成資料是由演算法或模型產生、模仿真實資料特徵的資料,常見用途有兩種:訓練模型,以及在隱私需求下替代真資料。內容依 Self-Instruct、模型崩潰研究(替換與累積資料的差別)與 NIST、ICO 的隱私文件,說明做法、抽查流程,以及它不能保證的事。

最新旅遊情報攻略

資料來源

生活分享