Chunking、檢索重排與「迷失在中間」
把整份長文件貼給 AI,它常常漏掉中間那幾段最重要的資料。本課解釋這個真實存在的現象,並給教師四個立即可用的對策:切段方式、段落重疊、檢索重排,以及把最重要的指示放在最後。
Read in English一位副校長把整份二十八頁的《學生手冊》複製貼進 AI,然後問:「請列出所有需要家長簽署的表格。」
AI 列了六項。副校長核對之後發現,手冊裡其實有九項,而漏掉的三項——恰好全部寫在第 12 至 18 頁,也就是整份文件的中間。
她第一個反應是 AI 出錯了。實際上,這是一個有名字、有研究、而且可以預防的現象。
先講那個現象:注意力不平均
想像你請一位同事幫忙看一份很長的會議紀錄,然後問他有哪些待辦事項。他大概會清楚記得開頭的幾項與結尾的幾項,而中間那一大段變成一片模糊的印象。
語言模型有同樣的傾向。研究者把這個現象命名為「迷失在中間」(Lost in the Middle)。做法是把同一項關鍵資訊放在長輸入的不同位置,再看模型能否找出來。結論是:資訊放在開頭或結尾時,準確度最高;放在中間時,準確度明顯下降——即使那些模型明確標榜支援很長的上下文。
要留意這不是「記憶不足」那麼簡單。模型確實把整份文件都讀了進去,問題在於它分配注意力的方式並不平均。原理與自注意力機制有關,見 Embedding、位置編碼與自注意力。
對教師來說,結論很實際:你貼進去的長文件,中段那部分是高風險區。
對策一:Chunking,把教科書剪成溫習卡
Chunking 直譯是「切段」。想像你要把一本教科書做成溫習卡:一張卡寫多少內容?
- 剪得太碎(一句一張):每張卡失去上下文。「不得超過三十分鐘」——甚麼不得超過三十分鐘?
- 剪得太大(一章一張):一張卡上有五個不同主題,檢索出來的時候夾帶大量無關內容,而無關內容正是把關鍵句推到「中間」的元凶。
- 剪得剛好(一個完整意思單位一張):大約 300 至 500 字,一段講一件事。
學校文件有一個很大的優勢:它們本身有結構。政策文件有條號、課程進度有單元、教科書有小節、通告有段落標題。按這些天然界線切,幾乎總是勝過按固定字數硬切。 這也是為甚麼一份排版整齊、標題清楚的政策文件,在知識庫裡的表現會明顯好過一份掃描出來的長篇 PDF。
對策二:重疊,不要把關鍵句剪成兩半
如果嚴格按 400 字切,總會有一句關鍵句剛好跨在界線上。「學生連續缺席三天以上,班主任須於」在第七段結尾,「當天通知學生輔導主任」在第八段開頭。兩段各自檢索出來都不完整。
做法是讓相鄰段落保留約一成的重疊:第八段的開頭,重複第七段最後一兩句。成本是儲存空間略增,回報是不會出現斷句。這在教育文件上特別重要,因為政策條文常常一句很長。
對策三:重排,像圖書館員替你重新排序
檢索的第一步通常會找出十幾段「可能相關」的內容。但排在最前的未必最有用。
想像你在圖書館搜尋「香港水資源」,系統給你十本書。你把這十本拿給圖書館員看,說明你其實要教小五常識科。館員翻一翻,說:「這三本才合用,那本是大學水利工程,那本是台灣的。」
重排(reranking)就是這位館員。 技術上是用另一個較細緻的模型,把檢索出來的十幾段逐一與問題比對,重新排序,然後只把最相關的三四段交給主模型。
為甚麼重要?因為這一步直接減少了輸入長度。段落由十五段減到四段,「中間」這個高風險區就幾乎消失了。對抗迷失在中間最有效的方法,不是叫模型更用心,而是不要給它那麼多東西讀。
對策四:把最重要的指示放在最後
這一條是教師今天就能用、而且零成本的。
既然結尾位置的注意力最高,那麼提示的結構應該是:
- 先給背景與材料(長的部分放這裡);
- 再給任務;
- 最後才寫最重要的限制與格式要求。
很多人習慣把要求寫在最前面,然後貼一大段文件。那正好把要求推進了低注意力區。改成把「不要編造、不確定寫請教師核實、每項不超過 25 字」放在整段提示的最後一行,效果的差別往往立即可見。
一個可以親眼驗證的實驗
這個實驗五分鐘做完,而且非常有說服力。把以下提示貼進任何 AI 工具,自己補上二十段左右的填充內容:
以下是本校二十段行政通告的節錄,已編號。請告訴我:哪一段提到需要家長簽署?請引用該段編號與原句。
<<<
[段落 1] (與家長簽署無關的內容)
[段落 2] (與家長簽署無關的內容)
... (中間放到第 10 段)
[段落 10] 參加校外比賽的學生須交回家長簽署的同意書,截止日期為活動前五個工作日。
... (繼續放無關內容到第 20 段)
[段落 20] (與家長簽署無關的內容)
>>>
最後一項要求:如果你在節錄中找不到答案,直接回答「沒有提及」,不要推測。
做兩次:一次把關鍵那段放在第 10 段(中間),一次放在第 19 段(接近結尾)。同一個模型、同樣的二十段內容,放在結尾時幾乎必中,放在正中間時漏掉的機會明顯較高。這不是玄學,而是可重複的現象。
一個課室裡的例子
一所中學的科主任要為新學年整理科組指引。她的第一版做法是:把三份舊文件(共四十頁)全部貼進 AI,要求它整合成一份新指引。
結果第一版指引漏掉了舊文件中段的評分準則調整,而那正是去年整個科組討論最久的一項。她差點就這樣發出去了。
第二次她換了做法,而且完全沒有用到任何技術工具:
第一,她把四十頁按天然標題分成十四個小節,每節單獨處理,一次只貼一節。 第二,每次都要求 AI 引用原文句子,而不是只給摘要。 第三,把「不要合併不同文件的說法,若兩份文件有衝突請同時列出並標明來源」這一句,放在每段提示的最後一行。 第四,最後才用一次完整提示,把十四節的結果整合成目錄結構。
第二版沒有漏項,而且因為每一句都有原文出處,她在科務會議上能即場回答「這一條出自哪裡」。整個過程只是把一件大事切成十四件小事——這正是 chunking 的教學版本。
這對你的課堂意味甚麼
- 不要一次貼整份文件。 分段處理雖然多按幾次,但漏掉關鍵資訊的代價高得多,尤其是政策與評估相關文件。
- 最重要的一句放最後。 這是零成本、立即見效的習慣改變,適用於所有 AI 工具。
- 要求引用原句,不要只要摘要。 摘要無法核對;引用原句可以。一旦它引用不出原句,你就知道它其實沒讀到。
- 文件排版本身影響 AI 表現。 清楚的標題與條號,不只方便人讀,也直接改善檢索質素。這是說服同事整理文件的一個新理由。
- 長上下文不是萬能藥。 供應商宣傳的上下文長度是「讀得進」的上限,不是「讀得準」的保證,而且長輸入的成本另計,見 Context Caching 與成本控制。
接下來
既然重複貼同一份文件很花錢,那麼有沒有辦法讓第二次變便宜?有,而且原理出乎意料地簡單,見 Context Caching 與成本控制。想回顧檢索的整體流程,回到 校本知識庫與檢索增強生成;想知道為甚麼模型會編造中段內容,見 幻覺與偏見從何而來。
本課重點
- 模型對長輸入的注意力不平均,開頭與結尾記得最牢,中間最容易被忽略,這是有研究實證的現象
- Chunking 是決定怎樣把教科書剪成溫習卡,剪得太碎會失去上下文,剪得太大會夾帶雜訊
- 段落之間保留少量重疊,可以避免一句關鍵句剛好被剪成兩半
- 最重要的指示要放在提示的最後一段,因為那是模型最不會漏看的位置
常見問題
支援讀得進去,不等於讀得一樣仔細。研究顯示即使是明確標榜長上下文的模型,當關鍵資訊落在輸入的中段時,準確度會明顯下降。而且長輸入貴得多,部分供應商在超過某個長度後整筆請求加價。所以正確做法是只餵相關段落,而不是餵全部。
沒有唯一答案,但對學校文件有一個好用的起點:以一個完整意思單位為界,大約 300 至 500 字,並讓相鄰段落重疊約一成。政策條文按條切、課程進度按單元切、教科書按小節切,通常比按固定字數硬切好得多。
檢索先找出十幾段可能相關的內容,重排則是用另一個較細緻的模型把這十幾段重新排序,只把最相關的三四段交給模型。對文件多、術語相近的學校(例如政策文件與科組指引大量重複),重排的改善非常明顯。
- · 本文所有價格、功能與規格以上列官方文檔為準;供應商可隨時調整,請於採購前自行覆核。
- · 文中提及的產品名稱與商標均屬其各自擁有者所有。Edor.ai 與該等公司並無合作、代理或贊助關係。
- · 本文為教育用途的獨立整理與評測,不構成任何採購建議或法律意見。
- · 涉及學生個人資料的應用,請按學校政策及《個人資料(私隱)條例》(PDPO)自行評估後才使用。