モデルのしくみ 上級
位置エンコーディング
Positional Encoding / RoPE
Transformer に、トークンが文の何番目にあるかを伝える仕組みです。これがないと語順の違いを区別できず、文脈長を伸ばす工夫にも深く関わります。現在は RoPE という方式が広く使われています。
別の呼び方位置符号化、RoPE、回転位置埋め込み
例位置エンコーディングの方式を調整して、学習時より長い入力でも動くよう文脈長を拡張した。
詳しく
位置エンコーディングとは、Transformer に「各トークンが文の何番目にあるか」を伝える仕組みです。現在の大規模言語モデルでは、RoPE(回転位置埋め込み)という方式がよく使われています。
なぜ必要か
Transformer のアテンションは、入力のトークンを並べた順序を気にせず、全体を一度に見比べます。つまり、何も工夫しなければ、「犬が猫を追う」と「猫が犬を追う」の区別がつきません。語順は意味に直結するので、位置の情報を何らかの形でモデルに与える必要があります。
主な方式
- 絶対位置:最初の Transformer 論文では、位置ごとに決まった値(正弦波の組み合わせ)をトークンの埋め込みに足していました。学習で獲得させる方式もあります。
- 相対位置:「何番目か」より「2つのトークンがどれくらい離れているか」を重視する方式です。
- RoPE:トークンの表現を、位置に応じた角度で回転させます。アテンションの計算で2つのトークンを掛け合わせると、結果が位置の差(相対距離)に依存するようになります。実装が比較的簡単で、広く採用されています。
- ALiBi:遠く離れたトークンのアテンションに、距離に応じたペナルティを加える方式です。
具体例
学習のときに4,000トークンまでしか見ていないモデルに、それ以上の長さの文章を入れると、位置の扱いが未知の領域になり、性能が急に落ちることがあります。これを避けるため、位置の数え方を引き伸ばして、より長い入力を扱えるようにする技術(位置補間や、YaRN と呼ばれる手法など)が使われます。文脈長を拡張した多くのモデルで、こうした調整が関わっています。
使うときの注意・よくある誤解
- 位置の扱いを調整すれば、文脈長を伸ばせますが、長い入力の内容を使いこなせる能力まで保証されるわけではありません。長い文脈の中から情報を探すテストなどで、実際に確認する必要があります。
- 方式の選択は、モデルの設計段階で決まります。利用者が API で選ぶ項目ではありません。
- 「位置エンコーディング」は、順番を伝えるための仕組みであり、文の意味を表現する部分ではありません。
関連する考え方
位置の情報は、アテンションが機能するための前提であり、文脈長の限界と直結しています。より長い文脈を扱うために、アテンションの計算を速くする FlashAttention や、構造の違うモデルも研究されています。
あわせて知りたい言葉
- Transformer2017年の論文「Attention Is All You Need」で提案されたニューラルネットワークの構造です。現在の LLM の大半がこの構造を土台にしており、画像や音声の生成にも広く使われています。
- アテンション文章の中のどの単語が、ほかのどの単語と関係が深いかを計算し、重要な部分に重みをつけて読む仕組みです。Transformer の中心となる技術で、現在の LLM の土台になっています。
- 文脈長モデルが1回の処理で扱えるトークン数の上限です。入力(指示・会話履歴・資料)と出力の合計がこの範囲に収まる必要があり、長いほど多くの資料を一度にまとめて渡せます。
- トークンLLM がテキストを処理するときの最小単位で、単語や文字のかけらに相当します。料金・文脈長・出力の上限は、このトークン数で数えられるため、AIを使う際の基本の単位になります。
- 埋め込み文章や画像などを、意味の近さが距離として表れる数値の並び(ベクトル)に変換したものです。言葉が違っても意味の近い文書を探す検索や、分類、RAG の土台に使われます。