rope_rotate — LLMCORE prepare op

• データ種: tokens → tokens

• 呼び出し: import fullseye as fs; fs.ledger.rope_rotate(tokens, positions=None, base: 'float' = 10000.0) -> 'np.ndarray' (実装を直接呼ぶなら import llmcore; llmcore.rope_rotate(tokens, positions=None, base: 'float' = 10000.0) -> 'np.ndarray'、台帳から引くなら opsllmcore.get("rope_rotate"))

使い方

回転による位置符号(RoPE)→ tokens。回転なのでノルムを保つ。

Su ら 2021。偶奇の対 (x₂ᵢ, x₂ᵢ₊₁) を角度 `pos · base**(−2i/d)` だけ回す。

平面回転の直和なので `‖RoPE(x)‖ == ‖x‖` が厳密に成り立ち(実測 8.9e-16)、

しかも回した 2 本の内積は位置の差だけで決まる(絶対位置を 40 通り動かして幅 8.9e-15)

—— 「相対位置を内積に埋める」という主張が、そのまま検算になる。

Args:

tokens: (T, d) float。d は偶数(対にして回すため)。

positions: (T,) の位置。None なら 0..T−1。飛び飛びの位置(切り出した窓)も渡せる。

base: 角度の底。大きいほど低い軸がゆっくり回る(長い文脈向け)。

Returns:

tokens (T, d) float: 対ごとに回したもの。行ごとのノルムは入力と同じ。

詳しい使い方ガイド

• llmcore ファミリ ガイド

参考(サンプルデータ・文献)

• サンプルデータ カタログ(DL URL / ライセンス) — 2-D は skimage.data(BSD/public)+ 合成、3-D は実データ源(Stanford/PDS 等)の DL URL。

• 演算子の来歴・参考文献 — この op 族の元になった研究/手法の出典。

• アルゴリズムの正典(著者・年)と用途は上記ファミリ使い方ガイドに記載。

実行できる例(この op を実際に呼ぶ検証済みサンプル)

• poc_attention_identities — py -3.11 examples/poc_attention_identities.py

型が繋がる次の op(tokens を入力に取れる)

rms_norm · attention_scores · attention_apply · attention_softmax · attention_tiled · attention_linear · attention_grouped · kv_cache_decode

同カテゴリ(prepare)

rms_norm


*Provenance: llmcore.py — LLMCORE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.