GMO NIKKOのT.Nです。
最近弊社のプロダクトで使用しているOpenAIのモデルを、
gpt-4oやgpt-4o-miniに切り替えました。
gpt-3.5-turboを使用していた時と比較して、
トークン数に変化があったので、
tiktokenの処理時間も含めて確認してみました。
確認方法
以下のようなプログラムで、
トークン数と処理時間の平均を確認しました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
import tiktoken import timeit import statistics with open('sv_jp.txt', encoding="utf-8") as f: sv_text = f.read() model_name = "gpt-4o" tokenizer = tiktoken.encoding_for_model(model_name) # トークン数 token_count = len(tokenizer.encode(sv_text)) # encodeの実行時間 result_encode = timeit.repeat(lambda: tokenizer.encode(sv_text), repeat=10000, number=1) mean_encode = statistics.mean(result_encode) # decodeの実行時間 result_decode = timeit.repeat(lambda: tokenizer.decode(tokenizer.encode(sv_text)), repeat=10000, number=1) mean_decode = statistics.mean(result_decode) print("{} - トークン数: {}".format(model_name, token_count)) print("{} - encode - 平均実行時間(秒): {}".format(model_name, mean_encode)) print("{} - decode - 平均実行時間(秒): {}".format(model_name, mean_decode)) |
今回は、GMOインターネットグループの企業理念である、
スピリットベンチャー宣言の文章を使用しました。
https://www.gmo.jp/brand/sv/
日本語版と英語版をそれぞれ検証しました。
文章の量は、日本語版で約6000文字です。
結果
以下のような結果になりました。
日本語版
トークン数 | 平均実行時間(秒) | ||
---|---|---|---|
encode | decode | ||
gpt-3.5-turbo | 6847 | 0.001462 | 0.001691 |
gpt-4o | 5177 | 0.001761 | 0.001959 |
トークン数は0.7561倍、
encodeの処理時間は1.2048倍、
decodeの処理時間は1.1583倍になりました。
英語版
トークン数 | 平均実行時間(秒) | ||
---|---|---|---|
encode | decode | ||
gpt-3.5-turbo | 3296 | 0.001481 | 0.001575 |
gpt-4o | 3262 | 0.001967 | 0.002069 |
トークン数は0.9897倍、
encodeの処理時間は1.3283倍、
decodeの処理時間は1.3131倍になりました。
日本語版ではトークン数が大幅に減りました。
英語版でもトークン数が少し減っています。
処理時間は、日本語版、英語版のいずれも、
gpt-4oの方が長くなりました。
まとめ
今回はtiktokenでgpt-3.5-turboとgpt-4oのトークン数と処理時間を比較しました。
gpt-4oの方がトークン数は少なく、
処理時間は長いという結果になりました。
モデルを切り替える際の参考になると良いです。