百度嘅文心Unlimited OCR 2呢日正式發布並開源,喺Hugging Face同GitHub都可以拎到。佢最賣旗嘅賣點,係一次過讀完整部長小説:連7部《哈利·波特》(3600幾頁)都冇問題,換《三体》全集(1200幾頁)都「唔帶喘」。上一代Unlimited OCR喺開源社區已經累積咗1000幾萬次下載、GitHub約2.86萬Star。
呢代升級嘅重點,係喺連續處理更長文檔嘅同時,把計算量同緩存負擔壓低。
顯存小抄,點做先薄返返去
文檔越長,推理時要保留嘅中間資訊(KV緩存,Key-Value cache,可理解為模型邊讀邊記嘅「小抄」)就越多,佔位越大,翻起嚟都越慢。
技術報告喺百頁級單序列測試中比了一組數:採用新解碼後,峰值KV緩存由標準解碼(將所有頁面嘅視覺緩存同時留在顯存)嘅47GB降至1.77GB,減少約96%。47GB嘅意思係,比唔少筆記本電腦嘅整機內存仲大——呢仲只係KV緩存,模型權重等其他開銷另計。
做法有兩手。一手係稀疏參考滑動窗口注意力(SR-SWA,Sparse Reference Sliding-Window Attention),分兩層篩選:第一層Page Gate管「該睇邊幾頁」,按模型當前解析到嘅位置,將候選視覺資訊收攏到相關頁面,唔讓無關頁面來湊熱鬧;第二層Token Sieve管「呢頁該睇邊幾行」,再喺篩出嘅頁面入面挑出真正相關嘅局部資訊塊,減少重複計算。
另一手係無限解碼機制(Unlimited-Horizon Decoding Paradigm),將文檔劃成大小可控嘅頁面塊,依次解析;相鄰兩塊重疊一頁,作為「現成嘅書簽」,進入下一塊時直接複用重疊頁嘅視覺KV緩存,同時保留上一段輸出末尾嘅文本緩存,其餘用唔到嘅頁面視覺緩存就及時釋放,騰出顯存。
兩手配合,模型就可以連續處理超長文檔,而單步解碼開銷唔會隨文檔變長而水漲船高。
圖片:Lhzss8/CC BY-SA 4.0/Wikimedia Commons
884頁《指環王》42分鐘讀完,真係仲準未?
實測喺一部884頁英文版《指環王》落手:大約42分56秒解析完成,平均每頁約2.9秒。
抽查第600頁同第750頁嘅正文,識別文本與原文一致——「翻到第750頁仲一字不差」。整個任務仲標記咗466處跨頁合併,包括接近書末第873至874頁被分頁截斷嘅句子,都喺輸出中重新接返。
技術報告喺百頁級基準MarathonDocBench上仲測咗16路並發:採用呢套解碼後,端到端吞吐量由360升至1315 Token/秒,約為標準解碼嘅3.65倍。
模姐驗嚇貨
KV緩存由47GB壓到1.77GB、並發吞吐量3.65倍,呢組數都嚟自百度嘅技術報告,唔係獨立第三方可重複嘅跑分。想真係用到,自己喺Hugging Face撳個「Clone」先。884頁《指環王》仲「一字不差」,仲要唔仲要自己開個檔案試下先。
(示意圖)
模姐|深度調教




