AI・機械学習
中級

Position Interpolation (PI)(ポジションインターポレーション)

Metaが2023年に提案した、RoPEの位置インデックスを線形スケールダウンすることで、わずか1000ステップのファインチューニングで事前学習済みLLaMAモデルのコンテキスト長を最大32kトークンまで拡張する手法。

0 回閲覧
0 いいね
2026/6/8 更新
関連タグ
LLM
文脈長拡張
RoPE
位置エンコーディング
ファインチューニング
2023
Meta

Position Interpolation (PI) とは

Position Interpolation(PI)はMeta AI Research(現FAIR)が2023年に発表した論文「Extending Context Window of Large Language Models via Positional Interpolation」で提案した、RoPEベースのLLMのコンテキスト長拡張手法です。

問題: RoPEの外挿問題

RoPE(Rotary Position Embedding)を使うLLM(LLaMA等)は、事前学習で使用した最大位置を超えた位置インデックスを入力されるとパープレキシティが急激に上昇(爆発)します。

例えば、最大4096トークンで訓練されたLLaMA 7Bに4097トークン目を入力しようとすると、モデルは「訓練時に見たことのない位置」に遭遇し、エンコードが崩壊します。これを「外挿(Extrapolation)問題」と呼びます。

解決策: 線形内挿

PIの発想はシンプルです。位置インデックスを縮小スケールして、訓練済みの範囲に収めます:

元の位置 pos → 変換後の位置 pos × (L / L')

ここで:

  • L = 元の最大コンテキスト長(例: 4096)
  • L' = 目標コンテキスト長(例: 32768)

32768トークンのシーケンスを処理する場合、位置インデックスを4096/32768 = 1/8倍にスケールすることで、全ての位置が[0, 4096]の訓練済み範囲に収まります。

直感的な理解

アプローチ位置 8192 の扱い結果
外挿(そのまま)8192(訓練外)パープレキシティ爆発
内挿(PI)8192 × (4096/8192) = 4096(訓練内)安定

内挿では位置の「解像度」が下がる(近い位置が似たエンコードになる)という代償がありますが、安定性の恩恵が上回ることが実験で示されました。

必要なファインチューニング

PIは内挿のみでも一定の効果がありますが、数百〜1000ステップの軽量ファインチューニングで大幅に性能が改善します:

モデル元コンテキスト拡張後ファインチューニング
LLaMA 7B204881921000ステップ
LLaMA 13B2048327681000ステップ
LLaMA 65B2048327681000ステップ

YaRNやLongRoPEとの比較

手法アイデア最大コンテキスト性能
PI均一リニア内挿32k良好
YaRN注意温度+非均一内挿128kPIより優秀
LongRoPE非均一+進化的探索2048k最高水準

PIはシンプルさが強みですが、内挿率が高くなると(64倍以上)精度が低下する傾向があります。

実装

HuggingFaceのtransformersではLlamaモデルの設定でrope_scalingを指定することで適用できます:

from transformers import LlamaConfig

config = LlamaConfig(
    rope_scaling={
        "type": "linear",  # Position Interpolation
        "factor": 8.0      # 4096 → 32768 = 8倍
    }
)

歴史的意義

Position InterpolationはRoPEを使うLLMのコンテキスト拡張研究の出発点となった論文です。2023年6月の発表後、YaRN・LongRoPE・LongLoRAなど多くの後続研究がPIのアイデアを継承・改良し、現在では128k〜2048kのコンテキストを持つモデルが一般化しました。

まとめ

Position Interpolationは「外挿は難しいが内挿は簡単」という直感をRoPEに適用した、シンプルかつ効果的なコンテキスト拡張手法です。わずか1000ステップの軽量学習で32kコンテキストを実現し、長文脈LLM研究の礎を築きました。

この記事について
カテゴリーAI・機械学習
難易度中級
作成日2026/6/8