ChatGPTの応答精度を高めるためにプロンプトを英訳、応答文を和訳するのがオススメ

2023年1月28日

ChatGPTは日本語にも対応しているため、プロンプト(質問文や依頼文)に対し、非常に自然な日本語を返してくれます。

しかし、内容の精度においてはサラッと間違った情報や嘘を伝えてることがあります。

ChatGPTの応答精度を高めるため、日本語のプロンプトを英訳して投稿するのがオススメです。

実際にChatGPTへのプロンプトを英語にすることで、応答結果の精度が変化するか検証してみました。

ChatGPTは日本語より英語が精度が高い

ChatGPTはアメリカのAI研究機関であるOpenAIが2022年11月に開発・発表したツールです。

日本語の応答にも対応しているため、多くのユーザーがChatGPTを試してその自然な日本語の応答結果に驚きました。

しかし、ChatGPTはもともと英語圏で作られた文章生成AIのため、日本語よりも英語の方が精度の高い文章が生成されると言われています。

それならば日本語のプロンプトを英訳して投稿し、ChatGPTが返した応答文を和訳すれば、日本語のままよりも優れた結果を返せるはずです。

そこで、ChatGPTで日本語のプロンプトと英語のプロンプトの応答結果の精度がどうなるか実験をしてみました。

ChatGPTの日本語・英語プロンプト比較実験の条件設定

ChatGPTへのプロンプトは日本語よりも英語のほうが高精度な回答が得られるか検証するため、実験条件を設定します。

実験では以下の2つのパターンを行って、ChatGPTの応答結果を検証します。

  1. 英語の方がドキュメント量が多いPython
  2. 日本語の方がドキュメント量が多いスラムダンク

実験では翻訳ツールとしてDeepLを使って、プロンプトと応答結果を翻訳します。

質問文となるプロンプト文を日本語→英語に英訳し、ChatGPTの応答文を英語→日本語に和訳します。

最終的な日本語として読んだ時にどちらが優れているか判定してみます。

実験①プログラミング言語のPythonについて質問

1つ目の実験はプログラミング言語で人気のPythonについて特徴をChatGPTに尋ねてみます。

日本でも幅広い層が使用しているPythonですが、ウェブ上の情報量で言えば、英語が圧倒的に多いです。

そのため、英語プロンプトで質問した方が高精度な応答文が返ってくると見込んでいます。

日本語でChatGPTに質問した場合

「Pythonの特徴についておしえてください。」というプロンプトでChatGPTのPlaygroundで問い合わせしました。

ChatGPTで「Pythonの特徴についておしえてください。」というプロンプトで質問した結果、もっともらしいPythonの情報が列記

Pythonは、汎用プログラミング言語として広く使用されています。特徴としては、以下のような点があります。

  • シンプルな文法と構文
  • 豊富なライブラリとモジュール
  • オブジェクト指向プログラミングや関数型プログラミングにも対応
  • 人間にとって読みやすい
  • プラットフォームに依存しない(Windows、macOS、Linuxなどで動作)

これらの特徴から、Webアプリケーションの開発、データ分析、機械学習など幅広い用途に使用されています。

応答文の内容としては誤った内容は含まれていません。

シンプルに箇条書きの形式でPythonについてまとめてくれています。

英語でChatGPTに質問し、DeepLで和訳した場合

続いて「Pythonの特徴についておしえてください」をDeepLで翻訳した「What are the characteristics of Python?」の応答文を確認してみました。

ChatGPTで「Pythonの特徴についておしえてください。」というプロンプトを英訳して質問した結果、英語の応答結果が返答

日本語よりも多くの文章が返ってきたので、DeepLでChatGPTの英語応答文を和訳しました。

Pythonは、高水準のインタープリタ型汎用プログラミング言語です。その主な特徴は以下の通りです。

オブジェクト指向プログラミング:Pythonは、クラス、継承、ポリモーフィズムなどのオブジェクト指向のプログラミング概念をサポートしています。

インタプリタ型言語:Pythonはインタプリタ型言語であり、最初に機械語にコンパイルされるのではなく、コードが1行ずつ実行される。

動的なセマンティクス:Pythonはダイナミックセマンティックを採用しており、変数の型はコンパイル時ではなく、実行時に決定されます。

自動メモリ管理:Pythonにはメモリ管理が組み込まれており、オブジェクトに対するメモリの割り当てと解放を自動的に管理します。

大規模で活発なコミュニティ:Pythonは大規模で活発なコミュニティを持っており、多くのサポートと多くのライブラリが利用可能です。

学びやすく、使いやすい Pythonは読みやすく書きやすいように設計されているので、初心者にも経験豊富なプログラマーにも最適な言語です。

英語のプロンプトの方が文字量も多くて詳しい応答結果でした。

Pythonの特徴について個別の解説内容も含まれています。

そのため、Pythonのようなプログラミング言語などは英語のほうが精度が高いと言えます。

実験②スラムダンクについて質問

次に2つ目の実験として、2022年に映画も公開されたスラムダンクについてChatGPTに質問してみました。

日本語でChatGPTに質問した場合

日本語のプロンプトは「スラムダンクはどんなストーリーの漫画なのか教えてください。」でChatGPTに尋ねてみました。

バスケット漫画「スラムダンク」についてChatGPTに質問した結果、内容に大きな誤りが発生

スラムダンクはバスケットボールを題材にしたスポーツ漫画で、主人公の小学生・桜木花道が高校バスケットボール部に所属し、チームを引っ張って優勝を目指す姿を描いています。

物語は彼が低学年のバスケットボール部員から上級生になるまでを描いており、彼の成長やチームの結束力の強さ、そしてバスケットボールに対する情熱を描いています。

小学生が高校バスケットボール部に所属と明らかな間違いが含まれています。

さらに低学年から上級生という部分も小学生と高校生が混ざっていて、適切でない内容です。

英語でChatGPTに質問し、DeepLで和訳した場合

日本語での質問文を英訳してプロンプトとしてChatGPTに質問するとどうなるでしょうか?

DeepLで先程の質問文を翻訳したところ、「Please tell me what kind of storyline manga Slam Dunk is.」になりました。

バスケット漫画「スラムダンク」についてDeepLで英訳してChatGPTに質問したところ、一部間違いはあるものの概ね正しい応答文が返却

スラムダンクは、井上雄彦が原作と作画を担当したスポーツ漫画です。

高校生の桜木花道は、バスケ部員の女の子との出会いをきっかけにバスケに興味を持つようになる。

高校生の桜木花道は、バスケ部の女子生徒に出会ったことからバスケに興味を持ち、未経験ながらバスケ部に入部し、チームのスター選手となる。

花道たちは、全国高校バスケットボール選手権大会の優勝を目指します。

ライバルチームやライバル選手との対決の中で、花道は自らの未熟さと周囲の偏見を克服し、真のバスケットプレイヤーになることを目指す。

こちらは主人公の桜木花道が高校生であると正しく記載しています。

ただ、「バスケ部員の女の子」や「バスケ部の女子生徒」というのがヒロインの赤木晴子を指していますが、微妙に間違っています。

「中学時代バスケ部の女の子」または「バスケ部に兄がいる女子生徒」が正解です。

しかし、日本語での応答結果に比べると正確性の点では上と言えます。

プログラミング・漫画どちらも英語の方が高精度

ジャンルの異なる2つのワードについてそれぞれChatGPTに尋ねてみましたが、どちらも英語の方が高精度でした。

英語の方は①プロンプトの英訳、②応答文の和訳という手間が発生しますが、より精度を重視するならば、英語を選択すべきです。

ChatGPTのAPIは公開されていませんが、OpenAIのAPI(同じGPT-3.5系のtext-davinci)を使って同じように文章生成する場合も同様に英語がオススメです。

APIを使ったプログラミング等での利用であれば、DeepLもAPIを公開しているため、①のプロンプト英訳、②の応答文和訳のいずれもコードで自動実行できます。

OpenAIのAPIだとトークン節約のメリットも

さらに、ChatGPTへのプロンプトを英訳するやり方には、OpenAIのAPIで実行する際にもう1つのメリットがあります。

それは、英文の方がAPI利用の課金単位であるトークンが少なく済むことです。

英語では1token=1単語なのに対し、日本語では1token=1文字~になります。

ひらがなの場合多くは1文字=1tokenですが、漢字の場合は1文字で3tokenになることもあります。

APIのリクエストにかかるコストを抑えるためにも、プロンプトを英訳する方が節約に繋がります。

ただし、DeepLをAPI経由で翻訳する場合には、DeepL側のAPIも課金される可能性があるため、その点は注意が必要です。

まとめ・終わりに

今回、ChatGPTの応答精度を高める方法として、プロンプトを日本語から英語に変更し、応答結果を和訳する方法を紹介しました。

ChatGPTの自然言語処理のしくみは英語をベースに開発されており、学習データも多く使われているため、英語のほうが精度が高いです。

実際にプログラミング言語のPythonと漫画のスラムダンクについてChatGPTに尋ねたところ、どちらも英語で質問したほうが詳細かつ間違いが少ない回答でした。

実験した事例が少ないため、いずれのケースでも英語メッセージの方が日本語よりも優れていましたが、日本語のほうがよい結果の場合もあるかもしれません。

ただ、ChatGPTにより精度を高めたい場合は手間はかかりますが、プロンプトを英訳した上で英語文で尋ね、応答文を和訳する方法を試してみて下さい。