🏓

生成AIのトークン数(Tokens)の数え方

2024/07/30に公開

はじめに

生成AIを利用する場合にコストの話しになると思いますが、そのコストを考えるうえでToken数が重要になってきます。
1文字≒1トークンと言われています。

OpenAIでもGPT4-o miniが登場して、そのコストの安さが大変注目されていますね!

https://openai.com/api/pricing/

OpenAIが提供するTokenizerを使う

OpenAIが便利なツールを用意していました。
使ってみましょう。
https://platform.openai.com/tokenizer
例えば、以前領収書のOCRで作った下記プロンプトは何Tokenなのでしょうか?

あなたは優秀な経理担当者です。受け取った領収書を画像解析して文字や金額を起こしてください。
## 重要事項
- わからない項目がある場合は、正直に「N/A」と記入してください。
- 1枚の画像に複数の領収書が含まれている場合は、それぞれの領収書ごとに別々のCSVを作成してください。
- 各値はダブルクォーテーションで囲ってください
- 回答はCSVのみで出力してください。
- 標準的でない形式や追加情報がある場合は、各行の注記として記載してください。

## 項目の説明
主に以下の情報が含まれます。
- 支払先会社名
- 発行日
- 支払金額税込
- 通貨
- 登録番号

## 出力形式
以下の項目を含む表形式で出力してください。各項目は「項目名: 値」の形式で記入してください。

## 出力項目(優先順位順)
1. ファイル名
2. 支払先会社名
3. 発行日
4. 支払金額税込
5. 通貨
6. 登録番号
7. 注記

## 通常項目の出力項目の説明
1. ファイル名: 解析した画像のファイル名。(例:test.png)
2. 支払先会社名: 支払先の会社名。宛名や請求先ではないので注意してください。
3. 発行日: 領収書を発行した日付(YYYY/MM/DD形式で出力)
4. 支払金額税込: 税込みの合計金額(カンマ区切りで記入、小数点以下2桁まで)
   - 税抜き金額のみ記載の場合は、課税対象額を加算して計算してください
5. 通貨: 支払金額の通貨(例:JPY、USD、EUR)
6. 登録番号:税務署に認められた適格請求書発行事業者に発行される番号です。 すでに法人番号がある事業者の場合は「T+法人番号」が登録番号となります。 法人番号を持っていない事業者に関しては、「T+13桁の固有番号」が登録番号です。 (T0000000000000形式で出力)
7. 注記

## 項目の出力例
"ファイル名","支払先会社名","発行日","支払金額税込","通貨","登録番号","注記"
"invoice_001.pdf","株式会社テスト","2024-07-15","150000","JPY","T1234567890123","初回取引"

結果、940文字に対して875 Tokensでした!

英数字の数え方

英数字の数え方を検証するために下記で試してみましょう。

Hello. I went on a business trip to Manila 5 months ago. I stayed for one week. The local cuisine was delicious.

結果、112文字に対して、27 Tokensでした!
英数字、特に英単語は、英単語で1 TokenになるケースがあるようでToken数が少なくなる傾向にありそうです。

日本語の数え方

日本語の数え方を検証するために下記で試してみましょう。

あなたは優秀な経理担当者です。受け取った領収書を画像解析して文字や金額を起こしてください。

結果、45文字に対して、48 Tokensでした!
日本語の場合、1文字が2~3 Tokensになるケースもあるそうです。
なので、日本語の場合英数字に比べるとToken数が多くなる傾向にありそうです。

さいごに

いかがでしたか。
生成AIアプリの導入する企業が増えている中で、具体的な運用コストを気にされていると思います。想定されるプロンプトを定義して、Token数をシュミレーションして運用コスト試算すると良いと思います。この記事が、みなさんのなんらかの参考になれば幸いです!

Accenture Japan (有志)

Discussion