首頁 > 經典文化 > 經典作品 > RoPE怎麼延長Context?頻率、Position Interpolation、YaRN與外推

延伸主題

RoPE怎麼延長Context?頻率、Position Interpolation、YaRN與外推

RoPE以旋轉角度把相對位置帶進Query與Key,但超出訓練長度後...

ntegrated Rotary Positional Embedding RoPE

Rotary Positional Embedding(RoPE)用不同頻率的旋轉,把Token位置直接帶進Query與Key。它讓Attention Score自然包含相對位置差異,因此成為多數現代LLM的主流位置編碼。RoPE能支援長上下文,卻不代表模型可以無限外推。

當推論長度遠超過訓練長度,高頻與低頻維度會進入模型沒看過的位置分布,可能造成注意力失準、短距離能力下降或遠端位置混淆。Position Interpolation、NTK-aware Scaling、YaRN與LongRoPE都是重新安排旋轉頻率的不同方法,需要以長Context和原始短Context同時驗收。

  • RoPE把每兩個向量維度視為平面,依位置旋轉不同角度。
  • Attention中的旋轉差會反映Token相對距離。
  • 訓練長度外的角度組合屬於Out-of-distribution。
  • Position Interpolation把長位置壓回原訓練範圍。
  • NTK-aware方法依頻率維度採不同縮放。
  • YaRN結合頻率修正與Attention Temperature,降低延伸訓練成本。
  • LongRoPE以非均勻搜尋與漸進延伸處理超長Context。
  • 標稱Context Window不能取代Passkey、Needle、排序、引用與P99延遲測試。

RoPE如何表示位置?

對向量中第i組二維分量,RoPE依位置m和頻率θ_i進行旋轉:

R(m, θ_i) =
[ cos(mθ_i)  -sin(mθ_i) ]
[ sin(mθ_i)   cos(mθ_i) ]

q_m = R(m) q
k_n = R(n) k

Query位置m與Key位置n的內積,可化成與m−n相關的旋轉,因此模型能感知相對位置。不同維度使用不同頻率:高頻維度對局部位置變化敏感,低頻維度則能跨越較長距離。

為什麼超出訓練長度會失準?

  • 模型沒在訓練中看過更大的位置索引。
  • 部分高頻維度在訓練範圍內已完成很多旋轉週期。
  • 部分低頻維度在訓練期間尚未充分覆蓋。
  • 延伸後的相位組合可能離開已學分布。
  • 浮點精度與Kernel實作也會影響大位置計算。
  • Attention本身可能偏好局部或特定位置。

模型可以接受更長Tensor,不代表它能正確使用所有位置。流暢摘要往往掩蓋錯誤引用、時間排序和遠端條件遺失。

RoPE Base 的作用

θ_i = base ^ (-2i / d)

Base決定不同維度的頻率分布。提高Base會降低部分維度旋轉速度,有機會延長可分辨距離;直接修改Base可能破壞原模型學到的短距離分布,因此通常需要微調或專門Scaling方法。

Position Interpolation

Position Interpolation把目標長度的位置索引壓縮到原始訓練範圍。若模型原本訓練到L,現在要延伸到L’,可使用比例s=L’/L:

m_interpolated = m / s
  • 避免直接使用模型沒見過的極大角度。
  • 需要少量Long-context Fine-tuning適應壓縮後位置。
  • 所有距離都被壓縮,局部辨識可能受到影響。
  • 延伸倍率越高,位置解析度壓力越大。

Position Interpolation提供簡單基線,但不區分不同頻率維度的訓練程度。

NTK-aware Scaling

NTK-aware方法不對所有頻率做相同比例縮放,而是調整RoPE Base或頻率分布,讓高頻局部能力與低頻長距離能力取得不同取捨。相關實作名稱與公式在不同框架中不完全一致,因此部署時要確認模型配置和引擎真正採用的算法。

  • 高頻維度較偏局部Token關係。
  • 低頻維度較偏長距離位置。
  • 動態版本可能依實際Sequence Length調整Scaling。
  • 不同Tokenizer和微調資料會改變結果。
  • 配置名稱相同不代表實作完全一致。

YaRN在做什麼?

YaRN(Yet another RoPE extensioN method)結合不同頻率區段的Interpolation/Extrapolation策略,並加入Attention Magnitude或Temperature修正。論文報告它以較少Long-context Token和訓練步驟延伸LLaMA Context。

  • 辨識需要Interpolation的頻率維度。
  • 保留部分已具外推能力的低頻維度。
  • 修正延伸後Attention Logit尺度。
  • 通常仍需要Long-context Fine-tuning。
  • 要重新驗證短Context和困惑度。

YaRN是RoPE延伸方法,不會降低KV Cache容量;Context越長,KV、Prefill和服務成本仍會增加。

LongRoPE與LongRoPE2

LongRoPE利用兩種非均勻性:不同RoPE維度不應使用相同縮放,不同Token位置也不一定需要完全線性分配。它透過搜尋找到非均勻Scaling,再以漸進式Fine-tuning延伸到更長Context。

  • 先搜尋維度與位置相關Scale。
  • 逐步從較短延伸到更長Context。
  • 另做短Context重校準,降低原始能力損失。
  • LongRoPE2使用Needle-guided Perplexity協助搜尋。
  • 論文最大長度不等於所有任務有效長度。

和MLA的Decoupled RoPE差在哪?

技術主要問題
RoPE Scaling如何讓位置編碼適應更長Token序列
Decoupled RoPE在MLA中把位置敏感Key與可壓縮內容Key分開
MLA降低KV Cache維度和Decode HBM讀取
KV Quantization降低每個Cache元素的Bytes

MLA架構可閱讀Multi-head Latent Attention怎麼運作?

短Context能力為什麼可能退化?

  • 位置距離被壓縮,局部解析度下降。
  • Fine-tuning資料多為長文本,改變原分布。
  • Attention Temperature調整不適合短輸入。
  • 模型學會依賴延伸後位置模式。
  • 推論引擎Scaling參數與訓練不一致。

驗收必須保留原始短Context Benchmark、常用Prompt與Instruction Following,不能只報告128K以上結果。

長Context驗收矩陣

測試目的
Passkey/Needle定位遠端明確事實
Multi-needle多個位置與干擾
排序與時間線保持相對位置
版本比較區分相似段落
程式碼跨檔遠距依賴與Symbol
來源引用答案能回到頁碼和段落
短Context回歸原始能力未被破壞
  • 在前、中、後不同位置放置關鍵內容。
  • 加入相似但錯誤的干擾段落。
  • 測不同語言、數字、表格與程式碼。
  • 記錄Accuracy、TTFT、KV、P99和成本。
  • 比較原始模型與延伸模型。

部署檢查

  1. 確認Model Config中的RoPE Type、Factor與Base。
  2. 確認Tokenizer、Chat Template和模型版本一致。
  3. 確認Serving Engine支援該Scaling。
  4. 測最大長度以下多個代表點。
  5. 測短Context與原始Benchmark。
  6. 觀察KV容量與Prefill時間。
  7. 設產品層最大Input與Admission。
  8. 對超長請求提供RAG、摘要或分段Fallback。

能輸入一百萬Token,不代表每次都應使用一百萬Token。超長Prefill、KV Cache和資料噪音仍會提高成本與錯誤率。

常見問題

只改RoPE Factor就能延長Context嗎?

技術上可能讓模型接受更長輸入,但有效利用通常需要相容設定、微調和驗收。錯誤Factor會破壞短距離與長距離能力。

YaRN一定比Position Interpolation好嗎?

不一定。YaRN通常提供更細的頻率處理,但結果依模型、延伸倍率、資料和實作。應在相同任務下比較。

RoPE延伸會降低KV Cache嗎?

不會。它處理位置表示;Token數增加仍會使KV Cache和Prefill成本上升,除非搭配MLA、GQA、量化或稀疏注意力。

原始資料

RoPE延伸真正要保住的,是短距離解析與長距離位置同時可用。Position Interpolation、YaRN和LongRoPE只是不同Scaling方法;有效Context仍由訓練、模型、引擎和可驗收任務共同決定。

資料來源與延伸閱讀

作者與編輯責任

本文署名作者:

YOLO LAB 的文章由署名作者或編輯團隊完成。主編 Dex 負責編輯制度、重要事實查核原則、AI 協作規範與重大更正;文章中的分析與判斷以公開來源、作品內容及可驗證資料為依據。

文章若有需要補充或修正的資料,可透過聯絡頁提供原始來源、日期與具體段落,編輯團隊會依出版政策檢查。

KEEP READING

接著讀什麼?

從同一主題繼續閱讀,或回到 YOLO LAB 的完整文章索引,找到下一個值得投入時間的問題。

發表迴響

探索更多來自 YOLO LAB 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

繼續閱讀