ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
本稿は トークン(Token)とコンテキストウィンドウ(Context Window) に関する記事です。
| この記事の要点 |
|---|
|
トークンとは?
トークン (Token) は、LLM がテキストを処理する際の最小単位です。LLM は文字列をそのままではなく、トークナイザで分割した整数 ID 列として扱います。
「単語ごとに分割」と思われがちですが、現代の LLM はサブワード(部分文字列)でトークン化します。これにより未知の単語も扱え、辞書サイズを抑えられます。
トークン化の例
| 文字列 | トークン分割例 (GPT 系) | トークン数 |
|---|---|---|
Hello, world! | ["Hello", ",", " world", "!"] | 4 |
tokenization | ["token", "ization"] | 2 |
こんにちは | ["こん", "にち", "は"] 等 | 3〜5 |
機械学習 | ["機", "械", "学", "習"] 等 | 4〜8 |
🎉 | 絵文字 1 個 | 3〜4 |
| 補足: 日本語のトークン消費は英語の 1.5〜2 倍 |
|---|
| 英語は単語+スペース単位で効率良く圧縮されますが、日本語はバイト単位や漢字 1 文字 = 数トークンに分割されることがあり、同じ意味の文章で英語の 1.5〜2 倍のトークンを消費します。GPT-4o 以降は日本語向けに改善されつつありますが、API コストの見積もり時に意識すべき点です。 |
主要トークナイザ
| 方式 | 採用モデル | 特徴 |
|---|---|---|
| BPE (Byte-Pair Encoding) | GPT 系、Llama、Mistral | 頻出ペアを統合して語彙構築 |
| WordPiece | BERT 系 | BPE 派生 |
| SentencePiece | 多言語モデル、T5、mT5 | 言語非依存、空白も含む |
| Tiktoken | OpenAI 公式 BPE 実装 | 高速・GPT 互換 |
コンテキストウィンドウとは?
コンテキストウィンドウ は、LLM が1 回のリクエストで処理できるトークンの最大数です。「入力 + 出力 + システムプロンプト」のすべてが上限内に収まる必要があります。
主要モデルのコンテキストウィンドウ(2026 年時点の目安)
| モデル | 入力上限 | 出力上限 |
|---|---|---|
| GPT-4o | 128K | 16K |
| GPT-5 / o3 | 200K〜 | 32K〜 |
| Claude 3.5 Sonnet | 200K | 8K |
| Claude 4 Opus / Sonnet | 200K〜 | 32K〜 |
| Gemini 2.5 Pro | 1M〜2M | 8K〜 |
| Llama 3.x 系 | 128K (バリアント次第) | 8K〜 |
| Mistral Large 2 | 128K | 8K |
| DeepSeek V3 | 128K | 8K |
数値はバージョンによって変動します。1M = 100 万トークン ≒ 70〜80 万英単語 ≒ 文庫本 5〜10 冊分に相当します。
トークン数の見積もり方
| 言語 | 概算ルール |
|---|---|
| 英語 | 1 トークン ≒ 0.75 単語 ≒ 4 文字 |
| 日本語 | 1 文字 ≒ 1〜2 トークン(モデル依存) |
| コード | 言語による。Python は比較的効率良し |
| JSON | 記号類が多くトークン消費大 |
| 画像 (マルチモーダル) | 1 枚で 200〜10000 トークン相当(解像度依存) |
事前にトークン数を測る方法
|
# OpenAI モデルの場合 |
料金との関係
| 料金体系の基本 | 内容 |
|---|---|
| 入力単価 | 1M トークンあたり数十セント〜数ドル |
| 出力単価 | 入力の3〜5 倍が一般的(生成は重い) |
| キャッシュ割引 | 同じプロンプトを使い回す場合、入力単価が大幅割引(OpenAI / Anthropic / Gemini で対応) |
| バッチ割引 | 非リアルタイムなら 50% 引き等(OpenAI Batch API) |
| 画像入力 | 解像度に応じてトークン換算 |
長コンテキストの「Lost in the Middle」問題
| 注意: 長文を入れれば良いわけではない |
|---|
| LLM は長い入力でも先頭と末尾を優先的に参照し、中央の情報を見落とす傾向があります("Lost in the Middle" 現象)。 対策:
|
運用上のヒント
| Tips |
|---|
|
注意点
| よくある落とし穴 |
|---|
|
関連
- 親カテゴリ: AIの基礎概念
- 関連: LLM / Transformer / Embedding / Prompt Engineering / RAG
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Scratch 作品の公開方法 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?