AI News HubLIVE
站內改寫2 分鐘閱讀

再見,感謝所有上下文

本文探討了大型語言模型中的“U形”上下文丟失問題:模型傾向於忽略上下文中間的信息。作者介紹了相關研究,並提出了五種實用技術來應對該問題,包括精選上下文、將關鍵信息置於邊緣、使用短會話等。

來源O'Reilly AI & ML Radar作者: Andrew Stellman

大型語言模型(LLM)在處理長上下文時存在一個被稱為“U形”的顯著問題:模型對上下文開頭和結尾的信息利用最好,而對中間部分的信息則容易忽視。這一現象最初由斯坦福大學的研究人員Nelson Liu及其團隊在論文《Lost in the Middle: How Language Models Use Long Contexts》中系統闡述,後續研究進一步表明,U形問題並非個別模型的缺陷,而是Transformer架構的內在特性,甚至存在於隨機初始化的模型中。

本文作者在開發開源代碼質量工程技能Quality Playbook時親身遇到了這一問題。在執行缺陷報告生成階段時,儘管所需的指令和數據都明確存在於上下文中,模型卻生成了空白模板文件,而不是填充完整信息的報告。經過分析,作者意識到這正是U形問題的典型表現:相關信息正好位於上下文的中間位置。

研究顯示,U形問題的根源在於Transformer結構中的兩種偏差:首要偏差(primacy bias)使模型傾向於關注上下文開頭,而新近偏差(recency bias)則使模型關注末尾。這兩種力的平衡導致中間區域的信息被削弱。2025年和2026年的論文進一步從數學上證明了U形是Transformer的幾何屬性,因此通過更多數據或微調來消除它的可能性很低。

儘管更大的上下文窗口(如百萬token級別)在一定程度上提升了單點檢索能力(如“大海撈針”測試),但並未使長上下文智能體工作變得可靠。實際上,更大的窗口意味着更大的中間盲區。因此,開發者需要主動管理U形問題。

作者總結出五種實用技術:

  1. 精選而不積累(Curate, don't accumulate):定期清空上下文,僅重新加載關鍵信息。在Quality Playbook的發佈準備中,作者通過編寫上下文簡報(context brief),並每次在新會話中從頭讀取簡報,顯著改善了模型表現。
  2. 將關鍵信息置於邊緣(Position critical information at the edges):利用U形特性,將最重要的指令或數據放在上下文開頭或最新位置。例如,在Claude Code中使用--append-system-prompt將簡報作為系統提示,保證模型始終關注。
  3. 短會話優於長會話(Short sessions over long ones):運行多個短會話,每個會話從磁盤重新讀取相關信息,而非依賴累積的上下文。
  4. 外部化重要信息(Externalize important information):將關鍵內容寫入文件,而非僅保留在上下文窗口中,以便後續會話引用。
  5. 驗證代理輸出(Verify agent output):將模型聲稱知道的內容與實際磁盤文件進行比對,確保一致性。

總之,U形上下文問題並非暫時性bug,而是LLM架構的固有特徵。通過上述技術,開發者可以在當前已發佈的模型中有效緩解這一問題,並確保智能體工作更加可靠。