AIやってる人も、トークントークンと聞いたりしていると思いますが、漠然にトークンは単位だと知っているかと思います。
でも、トークンってなんやねんという疑問がある方が多いかと思います。というのもAPIの使用料金もトークン単位で決められているからです。そもそもなぜトークン単位なん?
AI、特に文章を扱う大規模言語モデル(LLM)が「トークン」という単位で情報を処理するのには、いくつかの重要な理由があります。そして、「トークン」とは、AIがテキストを理解・処理するために、テキストを分解した単位のことです。
トークンとは何か?
簡単に言うと、トークンとは**「AIが扱いやすいように文章を分割した単位」**です。
- 単語のこともあれば、単語の一部、記号、空白なども含まれます。
- 例えば、英語の “Hello world!” という文章は、
["Hello", " world", "!"]
のように分割されるかもしれません。モデルによって分割方法は異なりますが、これがトークン化(Tokenization)と呼ばれる処理です。 - 日本語の場合、単語間にスペースがないため、形態素解析のように意味を持つ最小単位や、より細かい文字のかたまりに分割されます。例えば、「猫がいます」は
["猫", "が", "います"]
や、さらに細かく分割されることもあります。 - これらの分割されたトークンは、それぞれ固有のID(数字)に変換され、AIモデルはその数値の並びとして文章を認識・処理します。
なぜAIはトークン単位なのか?
AIがテキストを直接文字(1文字)単位で処理するのではなく、トークン単位で処理するのには以下のような理由があります。
- 効率性:
- 文字単位で処理すると、非常に長いシーケンス(並び)になります。例えば、1000文字の文章は1000個のデータ点として扱われます。
- トークン単位であれば、同じ文章でも例えば500トークンなど、より短いシーケンスで表現できることがあります。これにより、AIモデルが処理する計算量が削減され、学習や推論が効率的になります。
- 語彙の管理:
- もしAIがすべての単語を独立した単位として認識しようとすると、世の中に存在する膨大な数の単語(固有名詞、派生語、専門用語など)すべてを覚える必要があり、その語彙リストは非現実的なほど巨大になります。
- 一方、トークン(特に単語の一部を含むサブワードトークン)を使用することで、未知の単語が出てきても、それを既知の小さなトークンの組み合わせで表現できます(例:「Googler」を「Google」と「r」のように分割)。これにより、AIの語彙サイズを現実的な範囲に抑えつつ、多様な単語に対応できます。
- 言語的な構造の反映:
- 単語や単語の一部といったトークンは、文字よりも意味的なまとまりを持っています。AIはトークン単位で処理することで、単語の持つ意味や、単語同士の関係性を捉えやすくなります。
- モデルの構造:
- 現在の多くの大規模言語モデル(Transformerというアーキテクチャが主流)は、入力として固定長のベクトル(数値表現)のシーケンスを受け取るように設計されています。トークンは、このモデルが処理できる数値表現(トークンIDや埋め込み表現)に変換するのに適した単位です。
これらの理由から、AIは効率的かつ柔軟にテキストを処理するために、文字の羅列としてではなく、意味や構造をある程度保った「トークン」という単位でテキストを扱います。AIの処理能力やコスト(特にAPI利用時など)も、このトークンの量に基づいて計算されることが多いです。
AIモデルAPIのトークン単位の料金は、プロバイダーやモデルによって大きく異なります。また、価格は頻繁に改定される可能性があるため、常に公式ドキュメントで最新の情報を確認することが最も重要です。
以下に主要なプロバイダーの代表的なモデルの料金体系を、調査に基づいた情報でHTMLテーブル形式で示しますが、これはあくまで目安としてください。(価格は米ドル建てが一般的です。)
会社名 | モデル名 | 入力価格 (1000トークンあたり) | 出力価格 (1000トークンあたり) | 備考 |
---|---|---|---|---|
OpenAI | GPT-4o | $0.005 | $0.015 | 最新かつ高速。画像入力等も対応。 |
GPT-4 Turbo | $0.01 | $0.03 | 長文コンテキスト対応 | |
GPT-3.5 Turbo | $0.0005 | $0.0015 | 費用対効果が高い(モデルによる価格差あり) | |
Gemini 1.5 Pro | $0.007 ($7 / 100万トークン) | $0.021 ($21 / 100万トークン) | 非常に長いコンテキストウィンドウ対応(最大100万トークン)。価格単位に注意。 | |
Gemini 1.5 Flash | $0.00035 ($0.35 / 100万トークン) | $0.00105 ($1.05 / 100万トークン) | 1.5 Proの高速・低コスト版。長いコンテキスト対応。価格単位に注意。 | |
Gemini 1.0 Pro | $0.007 | $0.021 | スタンダードモデル | |
Anthropic | Claude 3 Opus | $0.015 ($15 / 100万トークン) | $0.075 ($75 / 100万トークン) | 最も高性能。価格単位に注意。 |
Claude 3 Sonnet | $0.003 ($3 / 100万トークン) | $0.015 ($15 / 100万トークン) | バランス型。価格単位に注意。 | |
Claude 3 Haiku | $0.00025 ($0.25 / 100万トークン) | $0.00125 ($1.25 / 100万トークン) | 最も高速・低コスト。価格単位に注意。 | |
Microsoft Azure | (Azure OpenAI Service) | OpenAIのモデルと同等だが、Azureの価格体系に基づく | Azure経由でOpenAIモデルを利用する場合 |
これが現在2025年5月の値段だけど、ピンとこないですよね。そこでいくつかの例にして、考えると凡そいくらになるのか、把握しやすいかと思います。
チャットボットによるカスタマー対応のトークン数と料金は、会話の長さ、質問や回答の複雑さ、そして利用するAIモデルの種類によって大きく変動します。日本語の場合、単語の区切り方が英語などと異なるため、トークン化の効率もモデルによって若干差があります。
以下に、ホテルの予約を例にしたやり取りと、その他の利用ケースでのトークン数および料金の目安をシミュレーションしてみます。
【前提とする条件】
- AIモデル: 例として、比較的新しく、費用対効果が高いとされる OpenAI GPT-4o の価格(入力:$0.005/1kトークン, 出力:$0.015/1kトークン)を使用します。価格は米ドルです。 * **トークン数の目安:** 日本語の場合、おおよそ「**1文字あたり0.8~1.5トークン**」程度の範囲に収まることが多いですが、これもモデル依存です。ここでは、少しゆとりを持って計算します。 * **為替レート:** 計算を単純化するため、例えば1ドル=150円と仮定します(実際の為替レートによって変動します)。 — ### シミュレーション例1:ホテルの予約問い合わせ(シンプルなケース) ユーザーがホテルを探し、予約を確定するまでの一連のやり取りを想定します。各メッセージの文字数と推定トークン数、および料金を計算します。 | 役割 | メッセージ内容 | 文字数 (目安) | 推定トークン数 (目安) | 種別 | 推定料金 (USD) | 推定料金 (円 @150円/$) | | :— | :—————————————————————————– | :———— | :——————– | :—– | :————- | :——————– | | ユーザー | ホテルを予約したいです。 | 14 | 15 | 入力 | $0.000075 | 約0.01円 | | ボット | こんにちは!ホテルのご予約ですね。いつ、どちらの地域のホテルをお探しですか?ご利用人数は何名様でしょうか? | 62 | 70 | 出力 | $0.00105 | 約0.16円 | | ユーザー | 来週の金曜日から土曜日に、東京駅周辺で2名で探しています。 | 31 | 35 | 入力 | $0.000175 | 約0.03円 | | ボット | 来週金曜日から土曜日、東京駅周辺で2名様ですね。いくつかおすすめのホテルをお探しします。 | 45 | 50 | 出力 | $0.00075 | 約0.11円 | | ボット | 以下のホテルが見つかりました。[ホテルA] 1泊1.5万円、朝食付き、東京駅から徒歩5分。[ホテルB] 1泊1.8万円、駅直結、高層階確約プラン。どちらか詳細をご覧になりますか? | 110 | 120 | 出力 | $0.0018 | 約0.27円 | | ユーザー | ホテルAについて詳しく教えてください。 | 17 | 20 | 入力 | $0.0001 | 約0.02円 | | ボット | ホテルAは… [設備やサービス、キャンセルポリシーなどの詳細情報、約80文字]…このホテルで予約を進めますか? | 120 | 130 | 出力 | $0.00195 | 約0.29円 | | ユーザー | はい、お願いします。 | 8 | 10 | 入力 | $0.00005 | 約0.01円 | | ボット | 承知いたしました。来週金曜日から土曜日、ホテルAに2名様でご予約ですね。最終確認のため、お名前とご連絡先をお願いします。 | 75 | 85 | 出力 | $0.001275 | 約0.19円 | | ユーザー | [名前や連絡先を入力 – ※これはトークン化されない場合が多いか、非常に少ない] | – | negligible | 入力 | negligible | negligible | | ボット | ありがとうございます。予約が完了しました。予約番号はXXXです。ご利用をお待ちしております。 | 50 | 55 | 出力 | $0.000825 | 約0.12円 |
合計 (目安):
- 合計入力トークン: 約 15 + 35 + 20 + 10 = 約 80 トークン
- 合計出力トークン: 約 70 + 50 + 120 + 130 + 85 + 55 = 約 510 トークン
- 総トークン数: 約 590 トークン
- 合計料金 (USD): (80 / 1000) * $0.005 + (510 / 1000) * $0.015 = $0.0004 + $0.00765 = 約 0.00805∗∗∗∗∗合計料金(円@150円/): 約 $0.00805 * 150円/ドル = 約 1.2円
このシミュレーションでは、シンプルなホテルの予約会話で、GPT-4oを使った場合の料金は1回の会話あたり約1.2円程度になる。
その他の使用ケースとトークン・料金の目安
会話の内容や複雑さによってトークン数は大きく変わります。
- FAQ/よくある質問対応 (シンプルな質問と回答):
- 例: 「支払い方法について教えてください」「営業時間を知りたい」
- 特徴: ユーザーの質問は短く、ボットの回答も定型化されていれば短め。
- トークン数: 1回のやり取りあたり 100~300トークン 程度。
- 料金 (GPT-4o換算): 約 0.2円 ~ 0.6円 程度。
- 備考: 大量のFAQデータを参照する場合、入力トークンが増える可能性あり。
- 商品情報・仕様に関する問い合わせ (やや複雑な質問と詳細な回答):
- 例: 「この商品の〇〇という機能は、具体的にどう使えますか?」「似た商品XXとの違いは何ですか?」
- 特徴: ユーザーの質問が具体的で長くなる場合や、ボットがカタログ情報などから詳細な回答を生成する必要がある。
- トークン数: 1回のやり取りあたり 300~800トークン 程度。
- 料金 (GPT-4o換算): 約 0.6円 ~ 1.8円 程度。
- トラブルシューティング/技術サポート (複数回の対話が必要):
- 例: 「〇〇のデバイスが動きません」「エラーコード△△が表示されます」
- 特徴: 問題を特定するためにユーザーとのやり取りが増えたり、手順の説明が長くなったりする傾向がある。
- トークン数: 1回のサポートセッションあたり 500~1500トークン以上 になることも。
- 料金 (GPT-4o換算): 約 1円 ~ 3円以上。
- 備考: 問題解決に至らない場合はさらに長くなる可能性あり。
- 注文状況確認 (定型的な情報照会):
- 例: 「注文番号XXXXの状況を教えてください」
- 特徴: ユーザーの入力は短く、ボットの回答も「発送済みです」「準備中です」などシンプル。
- トークン数: 1回のやり取りあたり 50~150トークン 程度。
- 料金 (GPT-4o換算): 約 0.1円 ~ 0.3円 程度。
【つまり結論では】
チャットボットのトークンコストは、1回の問い合わせあたり数銭から数円程度となることが多いです。しかし、長文の入力や複雑な回答の生成が頻繁に発生する場合、あるいは利用するモデルがより高価な場合は、コストもそれに応じて上昇します。
実際の運用では、1ユーザーあたりの平均的なやり取り回数や、1回のやり取りで発生する平均トークン数を計測し、利用するAIモデルの価格と照らし合わせることで、より正確なコスト予測が可能になります。また、コンテキストウィンドウが長いモデルを使うと、過去の会話履歴をより長く覚えていられますが、その分、各ターンの入力トークンが増える(=コストが増える)側面もあります。
いずれにしても一人0.5-3円程度で収まるので、1日100人使ったとして、30日間で、月間で約9000円となります。例えばローカルAIサーバー組むとして、消費電力が600Wとして、アイドル時は100W程度なので、どっちのほうが安上がりなのかを考えてみると・・・
仮に以下の条件でシミュレーションしてみましょう。
【計算の前提】
- サーバーは30日間、24時間稼働し続けている(アイドル時100Wは常に消費)
- ユーザー1人あたり、1日平均でAI処理のために最大電力(600W)を消費する時間が30秒と仮定します。
- 1日あたり100ユーザーがいる。
- 電気料金は、目安として1kWhあたり30円と仮定します。(実際の料金プランや地域によって変動します)
【計算手順】
- 1日あたりの高負荷稼働時間:
- 100ユーザー × 30秒/ユーザー = 3000秒
- 3000秒 ÷ 60秒/分 ÷ 60分/時間 = 約0.83時間
- 30日間での合計高負荷稼働時間:
- 約0.83時間/日 × 30日 = 約25時間
- 30日間での合計稼働時間:
- 24時間/日 × 30日 = 720時間
- 30日間での合計アイドル稼働時間:
- 合計稼働時間 – 合計高負荷稼働時間 = 720時間 – 25時間 = 695時間
- 高負荷時の総消費電力量 (kWh):
- 電力(kW) × 時間(h) で計算します。600W = 0.6kW
- 0.6kW × 25時間 = 15kWh
- アイドル時の総消費電力量 (kWh):
- 電力(kW) × 時間(h) で計算します。100W = 0.1kW
- 0.1kW × 695時間 = 69.5kWh
- 30日間での合計消費電力量 (kWh):
- 高負荷時の電力量 + アイドル時の電力量 = 15kWh + 69.5kWh = 84.5kWh
- 30日間での合計電気料金:
- 総消費電力量(kWh) × 電気料金(円/kWh)
- 84.5kWh × 30円/kWh = 2535円
【結論】
上記シミュレーションの前提(ユーザー1人あたり1日30秒の高負荷時間)に基づくと、最大消費電力600W、アイドル時100Wのサーバーを30日間稼働させた場合の電気料金は、約2535円という目安になりますので、API使用時の9000円よりは安くなります。が、GPUやメンテナンス費用などなどもコストかかるし、なにより出力トークン/数が制限されるので、複数人同時のアクセスに弱いのがローカル運用ですので、企業であれば情報流出気にしなければ、すなおにOpenAIのAPI使ったほうがいいかと思いますね。