Randomized YaRN 讓長上下文更穩
Randomized YaRN 透過隨機化位置編碼與長度課程,讓只看過短上下文訓練的 LLM,更能推廣到 16K 到 128K 的長推理窗口。

Randomized YaRN 透過隨機化位置編碼與長度課程,讓只看過短上下文訓練的 LLM,更能推廣到 16K 到 128K 的長推理窗口。
- 研究機構:arXiv 摘要未明確標註
- 核心數據:16K 到 128K 上下文長度
- 突破點:隨機化位置外推
長上下文不是把視窗拉大而已。真正難的是,模型在訓練時只看過短序列,到了超出分佈的長度後,還能不能維持推理能力。這篇論文瞄準的就是這個落差。它不是去改一個全新的注意力架構,而是改訓練時的位置訊號,讓模型在短資料上也能提早接觸「像長上下文一樣」的條件。
對做檢索式助理、多文件推理、或需要跨很長提示追蹤引用的開發者來說,這個問題很實際。模型能吃下長輸入,不代表它真的懂得在長輸入裡推理。Randomized YaRN 想修的,就是這種「看得到、但用不好」的長上下文失真。
這篇論文在解什麼痛點
訂閱 AI 趨勢週報
每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。
不會寄垃圾信,隨時可取消。
原始摘要的問題定義很直接:大型語言模型常常先在較短序列上預訓練,再透過額外訓練延伸到更長的上下文。這種做法可以把上下文窗口撐大,但模型對超長序列的泛化仍然不夠穩。也就是說,它可能在訓練見過的長度表現正常,一旦推到更遠的長度,表現就開始掉。

這背後的關鍵,不只是 token 數變多。位置編碼本身就可能是隱性失敗點。模型如果訓練時只看過一小段位置範圍,就不一定知道當位置被推到更外圍時,該怎麼處理依賴關係。長上下文推理最怕的,就是距離一拉開,引用、指代、跨段關聯一起鬆掉。
所以這篇論文不是單純追求「更長的輸入」,而是想讓模型在訓練階段就面對更難的位置條件。這樣一來,即使文本本身還是短的,模型也會被迫學會處理超出原本分佈的位置表示。這就是 Randomized YaRN 的出發點。
方法怎麼做,白話講
Randomized YaRN 由三個部分組成:YaRN 式的位置外推、隨機化位置編碼,以及長度課程。最核心的動作是,在短上下文資料上訓練時,token 會被指定來自更大位置範圍的 YaRN 位置編碼。換句話說,文本雖然短,但位置座標被「拉」到更像長上下文的區域。
這種設計的好處很明顯。你不需要每筆訓練資料都真的塞到超長,才能讓模型接觸到超長的難度。它是在短資料上,人工製造出分佈外的位置壓力。模型一邊學短文本內容,一邊也被迫適應更外圍的位置模式,久了之後,對真正長序列的耐受度就有機會變高。
長度課程則是另一層保護。摘要沒有把每個課程細節講完,但它明確把方法描述成一種逐步增加難度的訓練策略,而不是一開始就把模型丟進最難場景。這對實作很有意義,因為很多訓練配方的效果,不是來自單一技巧,而是來自「先鋪路,再加壓」的節奏。
要注意的是,摘要沒有說這是新的注意力機制。它更像是調整訓練時的位置分佈,讓模型原本就有的長上下文能力,能更好地外推到沒看過的長度。
論文實際證明了什麼
這篇論文拿兩個長上下文推理基準來測:BABILong 和 Multi-Round Coreference Resolution,也就是 MRCR。這兩類任務都很吃長距離關聯,因為它們不是只考你找一個事實,而是要你在很長的文字跨度裡,持續追蹤資訊與指代關係。

摘要給了一個很關鍵的範圍:訓練資料的上下文少於 8K,但評估時的上下文長度從 16K 一路拉到 128K。這代表它不是在舒適圈內做微調,而是在明確測試模型能不能跨出訓練分佈。論文聲稱,Randomized YaRN 在這個跨度上都能持續改善推理表現。
摘要也說,它的表現優於標準 fine-tuning,而且最大幅度的提升出現在最遠離訓練分佈的長度。這點很重要。因為如果一個方法只在接近訓練邊界時有用,那通常只是小修小補;但如果它在 128K 這種極端位置還能繼續帶來收益,就比較像是在改變模型的泛化方式。
不過,這份摘要沒有公開完整 benchmark 數字、百分比提升、延遲或成本細節。所以我們能確認的是「有一致改善」與「遠距離更明顯」,但不能從這份來源直接量化成具體分數差。
為什麼這對開發者有感
做長上下文產品的人,最常遇到的問題不是模型不能吃 prompt,而是它吃進去之後開始失真。它可能忘記前面的引用,搞混多段文件的關聯,或者在很長的上下文裡,推理鏈變得不穩。這篇論文提供的是一種訓練期解法,直接對準這個痛點。
實務上,這代表你不一定非得把訓練資料全面改成超長序列,才有機會把長上下文能力拉上來。Randomized YaRN 的思路是:即使資料本身短,也可以透過隨機化位置編碼,讓模型在訓練時承受更像 OOD 的位置條件。對訓練資源有限的團隊來說,這種作法很有吸引力。
如果你的產品是 RAG、多跳問答、程式碼庫助理、文件分析,或任何需要跨很多段文字維持關聯的系統,這類方法都值得關注。它不是單純把窗口做大,而是想讓模型在大窗口裡真的更穩。這兩者在產品上差很多。
限制和還沒說清楚的地方
這份摘要的資訊很集中,但也留了不少空白。首先,沒有 benchmark 的完整數字,所以無法從摘要判斷提升幅度到底有多大,也無法看出代價是什麼。像訓練成本、模型規模、消融實驗、以及每個元件各自的貢獻,摘要都沒有交代。
其次,摘要只提到兩個任務:BABILong 和 MRCR。這代表它確實針對長上下文推理做了驗證,但還不能直接推論到所有長上下文工作負載。像檢索、摘要、或 agent 式工具使用,是否也會吃到同樣的收益,摘要沒有說。
再來是工程複雜度。從概念上看,Randomized YaRN 很乾淨:改位置、加課程、做外推。但真正導入時,位置範圍、課程排程、底模架構相容性,這些都可能影響結果。摘要沒有提供足夠細節,讓人判斷它對不同訓練設定有多敏感。
總結
Randomized YaRN 的核心貢獻,是用隨機化位置編碼和長度課程,讓只看過短上下文訓練的模型,更能泛化到 16K 到 128K 的長推理窗口。它解的不是「能不能塞進去」,而是「塞進去之後還能不能推理好」。
對開發者來說,這篇論文的訊號很清楚:長上下文能力不一定只能靠更長的預訓練序列堆出來。把位置分佈做得更難,可能也是一條路。只是目前這份摘要沒有公開完整 benchmark 數字,所以更適合把它視為一個有方向性的訓練配方,而不是已經能直接量產套用的結論。
如果你的系統很依賴長提示、跨文件追蹤、或超長推理鏈,這篇值得放進觀察清單。它提供的是一個很實際的訊息:要讓模型撐住長上下文,關鍵不只是長度,還有位置分佈。
- 它處理的是長上下文泛化,不只是輸入窗口變大。
- 它用隨機化位置編碼,逼模型提前適應分佈外位置。
- 它在 16K 到 128K 的長度範圍內,主張能持續改善推理表現。