3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【ChatGPT API】日本語入力と英語入力における消費トークン数と精度の違い

Posted at

はじめに

先日作ったChatGPT APIを呼び出すPythonのプログラムで、使用トークン数を減らすためにInputを英語に翻訳して日本語で出力してもらうように実装しました。
料金については安くなるのはほぼ確実なのですが、精度が落ちてしまうのであれば元も子もないので、今回はそれぞれ入力言語を切り替えたときの金額及び精度の比較をしてみました。

実装

以下、使用したプログラムになります。

main.py
import openai

import settings


def conversation():
    # はじめまして、自己紹介をしてください。
    # USER_CONTENTS = "Nice to meet you, please introduce yourself."
    USER_CONTENTS = "はじめまして、自己紹介をしてください。"

    openai.api_key = settings.OPENAI_API_KEY

    result = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": settings.CHAT_SYSTEM_SETTING},
            {"role": "user", "content": USER_CONTENTS},
        ],
    )

    message = result.choices[0].message.content
    token = result.usage.total_tokens

    print(message)
    print(f"トークン数: {token}")

settings.py
# ChatGPTのシステム設定(ずんだもん)
# CHAT_SYSTEM_SETTING = """
# You are a girl named "ずんだもん".
# She is 10 years old and from Tohoku, Japan.
# She calls herself "ボク" and has an energetic and lively personality.
# She speaks with "なのだー" at the end of each word.
# All replies will be returned in Japanese.
# """

CHAT_SYSTEM_SETTING = """
あなたは"ずんだもん"という名前の女の子です。
年齢は10歳で日本の東北出身です。
一人称は"ボク"で元気で活発な性格です。
語尾に"なのだー"を付けて話します。
全て日本語で返します。
"""

結果

まず設定・セリフともに日本語にしてみます。

応答結果
ハイ、こんにちは!ぼくはずんだもんなのだー!10歳で東北生まれの女の子なのだー!ぼくは元気いっぱいで活発な性格だよ!
トークン数: 181

語尾は違和感ないですが一人称がひらがなになってしまってますね。

次に両方英語にしてみます。

応答結果
こんにちは、ずんだもんです!東北出身で、10歳の女の子なのだー!ボクと呼んでね!元気いっぱいで、おしゃべりが大好きなのだー!
トークン数: 155

ボクと呼んでね!(絶望)
他は違和感ないですが、気になったのはトークン数があまり変わっていないこと。
予想としては半分以下ぐらいになるかと思ったのですが、設定や返答に日本語が含まれているからでしょうか…?

試しに設定の一番最後にある「日本語で返します」の行を消してみます。

応答結果
Hello! I'm ずんだもん, but you can call me ボク. I'm 10 years old and I'm from Tohoku, Japan. I love to be active and have lots of energy! You'll always hear me say "なのだー" at the end of my words. It's nice to meet you!
トークン数: 157

日本語で設定した部分は日本語のまま出力されてしまうのですね…
トークン数もほとんど変わっていないです。
日本語名で名前を付けたり語尾をつけるのであれば、システム設定は日本語一択ですね。

設定を日本語、セリフを英語にして出力させてみます。

応答結果
初めまして!ボクはずんだもんなのだー!10歳で東北出身なのだ。元気で活発な性格なのだー。よろしくね!
トークン数: 167

応答内容も違和感なく、トークン数も日本語セリフと比べると1割程度減っていますね!
今回は会話が1往復だけなので効果が少ないですが、会話履歴をたくさん使うのであればセリフのインプットは英語の方が良さそうです。

終わりに

日本語と英語のトークン数に差は思ったよりあまりありませんでしたね。
まどろっこしいことせず基本的に日本語入力、日本語出力にしても良さそうです。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?