ChatGPT に入力サイズの限度を質問。
以下は,その答えから。
◆ 結論から先に
- Transformer は「固定長の入力までしか扱えません」。
- 長すぎるテキストは、分割して処理されます(ただし文単位ではなく「トークン数単位」)。
- 入力できる長さの上限(=コンテキスト長)は、モデルの設計で決まっています。
◆ 詳しく説明します
① 長文も「一度にすべて入力」はできない
Transformer 系のモデルでは、「一度に処理できるトークン数」に上限があります。
この上限を コンテキスト長(context length) または シーケンス長(sequence length) と呼びます。
- 例えば GPT-3 の場合:2048 トークン
- GPT-4:8192 または 32,768 トークン(モデルによる)
- Claude や Gemini の一部モデルでは 100,000 トークン以上
このように、ハードウェア制約と計算量の都合で、1回の入力で処理できる長さには限りがあります。
② 入力は「文単位」ではなく「トークン単位」で裁断される
Transformer は文法構造にこだわらず、一定のトークン数で区切って処理します。
- 文章が文の途中で切れていてもかまわず、最大トークン数ぶんを処理します。
- たとえば 2048 トークンが上限なら、そこまで読み込んだら「次の2048」へ。
これをスライディングウィンドウ的に行う場合や、分割して別のバッチで学習する場合もあります。
③ では「長文をどう学習させるのか?」
学習時には、学習材(例えば Wikipedia の一章や書籍全文など)を、連続的にトークン列へ変換し、コンテキスト長でスライスしていきます。
- テキストが非常に長い場合でも、滑らかに切って順番に学習します。
- このとき、モデルには「このトークンは何番目か(位置エンコーディング)」が与えられているため、前後関係も保持されます。
ただし:
- 「2048トークンの中にしか現れない情報しか使えない」
- 「もっと長い前後関係が必要なら、それを意識した設計(Memory形式など)が必要」
という制約がついて回ります。
◆ まとめ(ポイント再掲)
項目 |
内容 |
モデルの入力上限 |
トークン数で定義され、モデルごとに異なる(例:2048、8192、32K など) |
長文の扱い |
トークン列に変換 → 上限トークン数で切る → 順に学習へ投入 |
文単位か? |
いいえ。「文」ではなく「トークン長」で扱う(文の途中で切れても構わない) |
前後の文脈の扱い |
入力トークンの中でしか保持されない。上限を超えた文脈は「忘れる」
|
|