上下文窗口都做到百萬字了,分塊處理還有必要嗎?我的答案:有。這不是感覺,是算出來的。
先算錢。一百萬字一次喂進去,和一萬段、每段一百字分開喂,哪個便宜?直覺説一次便宜——分開喂要多附一萬份提示詞,不就貴了?這裏有個物理事實兜底:只要前綴一致,提示詞就命中 KV 緩存,命中的部分基本不要錢。我當時的估計:百分之幾都不到。後來真拿現價重算:0.83%,確實不到 1%。岔子也出過:舊價目表算出來的賬看著嚇人,那不過是幾年的降價沒折進去;拿現價重走一遍,結論不變:分開喂,不比一次喂貴多少。
再算質量,這才是大賬。一百萬字一下子輸進去,注意力會越來越稀疏。不是忘了,是權重被攤薄——越靠前的內容,對當前輸出的影響越小。更麻煩的是互相干擾:紅樓夢跟水滸傳不相干,一起扔進大模型,就算裝得下那個上下文,也會互相串味,輸出不準。
所以這筆賬兩頭算下來:一次塞一百萬字,省了錢——其實也沒省多少——丟了質量;分開喂一萬段,成本差不多,每一段拿到模型百分之百的注意力,互不幹擾。
這不是所有任務的通則。要在一整本書裏找前後呼應的伏筆,長上下文有長上下文的用處。我説的是批量處理:一萬個獨立任務,就別讓它們擠在同一個房間裏互相打聽。
窗口的大小是模型的事。怎麼把東西喂進去,是你的事。