免費全文 提示工程 進階

長文摘要的兩種策略:分段彙整與滑動精煉

文件超過上下文長度時,怎麼摘才不會漏掉關鍵段落。兩種策略各有適用情境。

提示工程教程封面

即使上下文視窗越來越長,超長文件仍需要拆。而且就算塞得下,中段資訊的召回率通常也不理想。

策略一:分段彙整(map-reduce)

把文件切成段,每段各自摘要,最後把所有摘要合併再摘一次。優點是可平行、速度快;缺點是跨段落的因果關係容易斷掉。

chunks = split(doc, size=3000, overlap=200)
parts  = [summarize(c) for c in chunks]      # 可平行
final  = summarize('\n\n'.join(parts))

策略二:滑動精煉(refine)

先摘第一段,然後帶著目前的摘要讀第二段並更新,如此逐段推進。優點是能保留敘事脈絡;缺點是必須序列執行,而且前段的錯誤會一路傳遞。

summary = summarize(chunks[0])
for c in chunks[1:]:
    summary = refine(summary, c)   # 只能序列

怎麼選

  • 技術文件、條列型內容 → 分段彙整,快又夠用。
  • 會議逐字稿、敘事型長文 → 滑動精煉,脈絡比速度重要。
  • 兩者都要 → 先分段彙整取得骨架,再用滑動精煉補時序。
切段一定要留重疊(overlap)。沒有重疊時,剛好被切開的那個句子會兩邊都摘不到。
下一步

這個主題還有更深入的實戰教程

VIP 專區收錄 50 篇進階內容:架構設計、生產環境取捨、成本與合規。 每週五新增 3 篇。

看訂閱方案 → 先逛逛 VIP 專區

延伸閱讀

更多提示工程 →