【いちえんこーでぃんぐ】
位置エンコーディング とは?
最終更新:
💡 トークンの「どこにあるか」を計算に伝える
Transformerなどで、トークンの位置や相対的な並びを計算に反映する技法。位置ベクトルを埋め込みに足す方式や、注意計算のベクトルを回転させる方式などがある。
📌 このページのポイント
なぜ位置の情報が必要なの?
位置の情報や順序を示す制約がない自己注意は、各トークンの内容同士を比べるだけなんだ。語順を扱うには、何番目にあるか、別のトークンからどれくらい離れているか、といった手がかりを計算に入れる必要があるよ。
どうやって教えるの?
元のTransformerでは、位置ごとにsin/cosからベクトルを作り、トークンの埋め込みと足すよ。同じトークンでも位置によって足される値が違う。図は、その加算を簡単な数値で表した例なんだ。
位置は必ず足し算で入れるの?
RoPEなら、どれだけ長い文章でも読める?
位置を数式で表せることと、長い文章を正確に扱えることは別だよ。モデルが学習した長さや追加の調整、計算量などにも左右される。位置表現だけで文脈の長さや精度が保証されるわけではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「位置エンコーディング」って出てきたら「AIの計算にトークンの位置を伝える仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「Positional Encoding」 = 位置の符号化
💬 positionは位置、encodingは情報を符号に変換すること。単語の位置を数値に変換してAIに教えるからこの名前だよ