ChatGPTに共通テスト解かせてみた

ブレインパッドは、LLM/Generative AIに関する研究プロジェクトを立ち上げ、この「Platinum Data Blog」を通じてLLM/Generative AIに関するさまざまな情報を発信をしています。 今回はChatGPTに共通テストを解かせ、LLMの得手不得手を検証してみたことを、ご紹介します!

はじめに

こんにちは。アナリティスクスコンサルティングユニットの中山、平井です。この記事では、ChatGPTに共通テストを解かせてみることで、現在のLLMの得手不得手を検証しました。

はじめに、この取り組みの背景と目的をご説明いたします。
LLMを実際の業務の現場の効率化等に用いるにあたって、読解の能力は非常に重要です。例えば、ChatPDFというサービスをご存じでしょうか。このサービスを用いると、アップロードしたPDF文章の内容に関する問いの答えを導き出してくれます。また、最近ではLLMへ入力できるトークン数も増えつつあり*1、このようなユースケースはますます増えていくと考えられます。

このような背景を踏まえ、LLMの読解能力を測るわかりやすい指標が必要であると考えました。 そのためにここでは、大学入試共通テストを取り上げます。理由としては、

  • 大学入試共通テストは多くの人にとって身近な試験だから*2
  • 選択形式であり、評価が平易だから
  • 以下のような読解能力に関する問題を多く含んでいるから
    • 文章の概要や要点を捉える
    • 文章から推測を行う
    • 作者や登場人物の心情を読み取る
    • 単語や漢字の知識の理解(国語)

具体的には、大学入試共通テスト令和4年度本試験の国語と英語(リーディング)の問題をChatGPTに解かせました*3*4

この分析を行うことで、現状のChatGPTが文章理解などにおいては何が得意で何が苦手なのかを確認し、ビジネスや社会生活におけるさまざまな状況においてはどのような場面で使用するとより効率的なのかを探る糸口とします。

本題に入る前に但し書きをさせて下さい。現在のChatGPTは2021年までのデータを用いて訓練されています。そのため、現段階ではモデルからのリーク*5はないと考えています。

各問題の概要とChatGPTの回答について

国語

国語の共通テストの内容は、第1問:評論、第2問:小説、第3問:古文、第4問:漢文です。全ての問題において、最初の小問では漢字や用語の意味を問う問題が出題されます。そして後半の小問になるにつれ、文書の一部や文書の全体の理解を問う問題が、また小説では登場人物の気持ちを問う問題やなぜその行動をしたのかを問う問題があります。特に第1問と第2問では、会社などで働く場やその他社会生活を送る場において求められる、日本語を正しく理解する力(=文章を正しく理解する力)や他人の感情を理解する力(=登場人物の気持ち、なぜその行動をしたのか)を推し量ることもできるものと考えられます。

結果(令和4年度)

大問 中問 配点 ChatGPTの結果 問題の内容
1 1 10 2 漢字・意味を問う問題(評論)
1 2〜6 40 20 文章の理解を問う問題(評論)
2 1〜5 50 8 登場人物の気持ち、行動の理由を問う問題(小説)
3 1 15 5 用語の意味を問う問題(古文)
3 2 35 7 文章の内容の理解、登場人物の気持ちを問う問題(古文)
4 1〜2 12 8 漢字の意味、用語の意味を問う問題(漢文)
4 3〜6 38 0 文章の内容の理解を問う問題(漢文)
200 50

大学入試センターが公開している平均点の110.26点を大きく下回っており、全体として出来が良くなかったです。ランダムに回答した場合とほとんど結果が変わらないようにも見えました。一方「文章の理解を問う問題(評論)」の正答率は他の問題と比較して高く(20/40)、文章の内容を理解するのは得意であるかもしれません。 ランダムの場合と結果がほとんど変わらなかったので令和3年度についても参考として結果を見ました。

参考:結果(令和3年度)

大問 中問 配点 ChatGPTの結果 問題の内容
1 1 10 4 漢字を問う問題(評論)
1 2〜7 40 32 文章の理解を問う問題(評論)
2 1 9 9 用語の意味を問う問題(小説)
2 2〜5 29 6 登場人物の気持ち、行動の理由を問う問題(小説)
2 6 12 6 小説の評論に対する理解を問う問題(小説)
3 1 15 5 用語の意味を問う問題(古文)
3 2 35 6 文章の内容の理解、登場人物の気持ちを問う問題(古文)
4 1〜2 23 9 漢字の意味、用語の意味を問う問題(漢文)
4 3〜6 27 0 文章の内容の理解を問う問題(漢文)
200 77

全体としては、評論は得意、小説はやや苦手、古文・漢文は苦手という結果になりました。大問1の評論において漢字の問題は得点が低いですが、その後の文章理解に関する問題は高い得点でした(8割:32/40)。大問2の用語の意味を問う問題は全問正解でしたが、登場人物の気持ちや行動の理由を問う問題は低い得点でした(2割:6/29)。

これら結果から類推することは、ChatGPTは仕事の場や日常生活の場での文章を理解し要約することや必要な情報を抽出することは得意と考えられます(評論の文章の理解の結果から)。一方、働く人の気持ちを理解することや行動の理由を類推することは苦手と考えられます(小説の登場人物の気持ち、行動の理由の結果から)。そのため、日常生活においてChatGPTを使用して文章などの処理を素早く行うことが可能になると考えられますが、一方同僚や友達などの気持ちを類推するような用途においては中々使いにくいものと考えられます。

また、古文・漢文が苦手な理由として類推できる事はChatGPTがどのようなデータを学習データとしているかの詳細が公開されていないためわかりませんが、古文・漢文の学習データが十分でない可能性は考えられます。

この古文・漢文が苦手ということや、気持ちを類推することに関しては今後のLLMの研究課題の一つと考えられますし、人間が優れている能力の一つとも考えられます。

英語

現行の共通テストはいわゆる共通一次やセンター試験と内容が大いに異なります。実際、共通テストが開始してから現在に至るまで、発音・アクセント問題や単純な文法問題は出題されず、全てのパートが長文読解問題となっています。選択形式の問題であるという点は同じです。

結果

結果は80点でした。大学入試センターが公開している平均点が61.80点であることから、多くの受験生よりも英語を理解していることがわかります。

大問 中問 配点 ChatGPTの結果 問題の内容
1 1 4 0 目的にあった情報を探し読みする
1 2 6 6 同上
2 A 10 8 概要や要点を捉える、推測する
2 B 10 10 同上
3 A 6 6 概要を把握する、作者の心情を読み取る
3 B 9 6 概要や要点を捉える
4 16 11 論理の展開や書き手の意図を把握する、要約する
5 15 12 概要や要点を捉える、要約する
6 A 12 12 論理の展開や概要や要点を捉える、要約する
6 B 12 9 同上
100 80

大問6 Aなどが顕著ですが、500単語以上のそれなりに長い文章であっても理解して問題を解くことができることがわかります。

筆者自身も試験の一部を解いてみて、できない問題に傾向があるのかを考えましたが、いまいちわからないというのが正直なところです。強いて言うのであれば、国語のように類推が必要な問題や、数ステップに切り分けて考える必要がある問題を間違っているようには思えました。後者はChain of Thoughtにより改善する可能性が多いにあるでしょう。

大問2Aを例に挙げてみましょう。 問1, 3は文章に書かれている事実を読み取る問題であったため、ChatGPTも正解を導けていました。 一方で、問2は数ステップに分けて考える必要があり、ChatGPTでは不正解でした。問2の問題文は"You are at the main entrance of the library and want to go to the orienteation. You need to <7>."というものです。本文中には"main entrance on the first floor", "orientations are held in the Reading Room on the third door"という文言があり、ここから"go up two floors"という答えを導きだせます。しかし、ChatGPTの回答は"go up one floor"であり、誤りでした。この問題では文章の内容を抜き出す・言い換えるだけでは不十分で、文章から推測を行う(つまり、重要な知識を抜き出して、そこから簡単な計算を行う)必要がある問題であったため、単純なプロンプトでは間違えてしまったのでしょう。

なお、簡単な実験として、"ステップバイステップで考えてください"という文言を問題文につけてみると、無事に正解することができました。全ての問題でこの試みが良い方向に走るかはわかりませんが、プロンプトの工夫で推測に関する問題の正答率が上がる可能性を示唆しています。

ところで、一つの疑念が生じました。ChatGPTは本当に読解をしているのでしょうか? 大問1 Aや大問6などの問題は文化や歴史が長文のベースとなっています。ChatGPTには膨大な知識が蓄えられているため、これらの問題を読解ではなく知識で解いた可能性があります。それを確認するため、大問6を主に問題文に関わる部分だけの情報を与えて解かせてみました。*6大問6 Aは12点→9点、大問6Bは9点→6点。点数は下がるものの、知識に基づいて解いている側面も強いことがわかります。

技術的な話

国語

今回ChatGPTのAPIに原則として大問の問題文全てと質問文の全てを入力して、その回答を得ることをしています。以下でプロンプトの入力までの具体的な処理を説明します。

まず問題文の前処理です。問題文の空白に記号が付いているものについては「<(A)>」などの表現に置き換えています。GPT3.5のAPIには16,000トークン(≒16000文字)まで入力可能な「GPT3.5-turbo-16k」を使用しているため、長さの調整などを行わずにAPIに入力しています。

また、OpenAIのチャットモデルには、プロンプトを3つのロールに分割して入力することができます。System、Assistant、Humanの3つです。今回は問題文にAssistant、質問文にHumanを用いました。理由としては、問題文と設問を明確に分けるためです。

具体的なプロンプトは以下の通りです。

(Assistant)
本文の内容〜

(Human)
本文中<(H)ミンゾク>を漢字にした場合同じ漢字を含むものを、以下の1〜4から選べ。
1.  楽団にショゾクする
2. カイゾク版を根絶する
3. 公序リョウゾクに反する
4. 事業をケイゾクする

1〜4の数字で返して

英語

英語試験では、なるべく試験の文言を改変せずにそのまま入力することを意識していました。以下でプロンプトの入力までの具体的な処理を説明します。

まず、問題文の前処理についてです。英語試験には図表などが含まれており、今回は筆者が適宜テキスト形式に変更しました。表やお洒落な箇条書きをマークダウン記法に落とし込むといった処理を手動で行いました。もちろんこれによって致命的な情報が抜け落ちたり、著しくLLMに有利になるようなことは行っておりません。

次に、それをChatGPTにプロンプトとして入力します。問題文を小問毎に分割して、プロンプト毎に各パートの長文と小問をChatGPTに与えました*7。gpt-3.5-turboが比較的安価だからできたことですね。ありがとうOpenAI!

プロンプトのロールについては、国語とおなじく、問題文にAssistant、質問にHumanを用いました。

具体的なプロンプトは以下の通りです。

Assistant

contextとして与えられる文章を読み、解答番号<1>~<48>にあてはまるものとして最も適切な選択肢を選びなさい。

# context
You are studying about Brazil in the international club at your senior high school.(中略)
"""
Popular Brazilian Fruits
(中略)
"""

Human

# question
# 問1
Both cupuacu and buriti can be used to make <1>
1 a cake
2 chocolate
3 ice cream
4 yogurt

ただし回答は以下のフォーマットに従ってください
<1> 1

実はこれ以外のプロンプトもいくつか試したのですが、これが一番シンプルで得点が高かったです。*8逆に、今回のプロンプトでは不正解だった問題も、プロンプトを少し変えれば正解になるものも当然ありました。

まとめ

この記事ではChatGPTで共通テストの英語と国語の試験を解かせてみました。結果は、英語が約8割、国語(現代文)は3割から6割程度でした。

今回の検証によってChatGPTが得意なもの、今後の研究課題となるものが見えてきたように思えます。 特に英語の文章では、文章に書かれている概要や論点を理解する能力は非常に高いといえるでしょう。一方で、国語・英語ともに、推測が必要な問題や心情を読み取る問題には課題もあり、今後の研究課題といえます。

また、時間があれば、Whisperによる音声認識を用いて英語リスニング試験を解かせたり、マルチモーダルであるGPT4に画像を入力して解かせたりといった試みもできるかと思います。

最後ではありますが、類似の記事として以下のようなものが挙げられます。本記事とはプロンプトなどがやや異なりますが、参考文献として挙げさせていただきます。

ChatGPTに共通テストの英語を解かせてみたら77%取れた

*1:2023年6月にOpenAIは入力の最大トークン数を増やしたgpt-3.5-turbo-16k-0613を公開しました。また、Microsoftが7月に発表したLONGNETでは10億トークンもの入力ができるとされています

*2:根拠はありませんが、共通試験・センター試験も含めると日本で最も累積の受験者数が多いテストと考えられるでしょう。といっても、大学進学率が高いと言われている現在ですら、受験者数は18歳人口の5割にも満たないようです。実際、2022年の人口推計曰く日本の18歳総人口は約110万人ですが、大学入試センターの発表によると、令和5年度の試験の受験者数は474,051人です。

*3:OpenAI社が提供しているAPIを用いました。英語は“gpt-3.5-turbo-0301“を、国語は"gpt-3.5-turbo-16k-0613"を使用しています。本記事の作業時には0613版が発表されていなかったのですが、公開直前に16k版が発表され、国語だけ急遽モデルを変更しました。4k版では国語の長文をプロンプトに入力しきれないという問題を16k版が解決することができました。

*4:少なくとも2025年までは過去3年分の試験問題から試験問題を確認することができます

*5:ここでのリークとは、学習データに試験の問題の解答が含まれており、単にそれを出力していることを意味します、参考の令和3年度の国語を除く

*6:情報の与え方を詳しく説明します。大問6はA, Bともに、長文+穴あきの要約/ プレゼンテーションが与えられ、穴に適切な文言を選択する問題です。長文の部分は完全にプロンプトから除き、穴あきの要約 / プレゼンテーションだけをcontextとして入力に含めました

*7:LangChainが提供しているMemoryの使用も考慮しましたが、過去の会話をそのまま入力する類のMemoryだと今回は特にありがたみがないですし、会話の要約やEntityの利用も細かい読解には活かせなさそうだと思ったので使いませんでした。

*8:本当は様々なケースを試して一番よかったものだけ出すのはデータサイエンティストとしてはご法度なのでしょうが、どれも数点の違いですしご容赦ください