生成AIは情報処理技術者試験に合格できるのか?

2024-03-21

3月になり、まだ寒い日も多いですが、日差しが少しずつ暖かくなってきた気がします。
この時期になると思い出すのが、情報処理技術者試験です。(2月初旬に申込締切なので、今思い出しても遅いですが……。)
IT業界であれば、ほとんどの方がご存じの資格かと思いますが、弊社はこの情報処理技術者試験を推奨しており、多くの社員が取得しています。→ 資格保有者情報|株式会社エヌデーデー
資格試験では、一番といっていいほど身近な情報処理技術者試験なのですが、ふと、「生成AIにこれは解けるのか?」という疑問がわきましたので、試してみました。

概要

生成AI(Gemini・GPT-4)に情報処理技術者試験の「応用情報技術者試験」の午前問題を解いてもらいます。
応用情報技術者試験についてはこちら → 応用情報技術者試験|試験情報|IPA 独立行政法人 情報処理推進機構
午前問題は、全80問の四択形式で、ITに関する幅広い分野の問題が出題されます。
知識を問う問題や、実践的に計算が必要になる問題もあります。
60点(60%)が合格ラインです。
問題は、2023年秋の問題を使用しました。応用情報技術者試験のページで過去問題のPDFが公開されています。

生成AI側は、グラウンディングや学習等のカスタマイズはせず、公開されているモデルをそのまま利用します。

  • Gemini:gemini-1.0-pro-vision
  • GPT-4:gpt-4-0613(Azure OpenAI利用)

問題データの準備

公開されている過去問題のPDFが、問題冊子のスキャンデータのため、そのままではテキスト抽出ができません。
そのため、まずは問題ごとに画像を切り出し、80枚のJPEGデータを作成しました。
その後、画像のみではうまくいかなかったため(後述)、Geminiによる画像からのテキスト抽出後、人手のチェックにより、問題文と選択肢の書き起こしをしました。書き起こしデータ利用時に添付する図表のJPEGデータも作成しています。

問題画像で出題

はじめに試したのが、問題ごとの画像データをそのまま生成AIに渡し、解答してもらう方法です。
問題文、解答、解説を生成してもらいました。

結果は次の通りです。

Geminiはぎりぎり合格点となりました。
問題文の読み取り精度が良く、式等を除くとほぼ100%の抽出ができていました。
やはり実践問題は難しいようですが、知識問題はなかなかよくできているのではないでしょうか?

GPT-4については、残念な結果となってしまいました。
生成結果を見ると、原因は、問題文の読み取り精度にあると言えそうです。
画像からのテキスト抽出がうまくいっておらず、半分以上の問題文に誤りがありました。

問題画像で出題する方法では、Geminiのほうが良いという結果になりました。
ですが、画像認識精度による差が大きく、「応用情報技術者試験の問題を解かせる」という問題としてはあまり面白くないので、画像を極力減らした方法でも試してみることにしました。

問題文テキストで出題

この方法では、可能な限り問題文をテキストに書き起こし、テキストで表現できない図表部分のみ画像を添付して出題しました。生成AIには、解答と解説を生成してもらいます。

結果は次の通りです。

Geminiについて、実践問題は件数は変わりませんが、知識問題は少し正解率があがりました。
問題文の抽出は、画像の時も問題はありませんでしたので、正解率が上がった明確な要因はわかりませんでした。
実践問題についても、正解の問題番号は変わっていたため、生成の揺れによる誤差の可能性があると考えられます。

GPT-4については、正解率が格段にあがりました。
やはりテキスト抽出がうまくいっていなかったことが原因だったようです。

問題文テキストで出題する方法では、双方合格点となりました。
GPT-4がわずかに正解率が高いですが、1回実施しただけの数値で、生成結果の揺れも多く発生するようですので、正確に比較する場合は複数回の平均を出す必要がありそうです。

まとめ

最終的に、どちらも合格点(60%)を超える結果となりました。
知識問題では、どちらも90%前後正解していますので、多少の揺れは考慮しても十分合格圏内だと思われます。
実践問題は予想通り正解率は低く、4択の確率(25%)よりはちょっと良さそうという程度です。

本題とは少しずれますが、Geminiの画像からのテキスト抽出精度には驚きました。問題を知っていたのでは?と思えるほどに正確でした。モデルの学習に応用情報技術者試験の問題が入っていたかどうかは定かではありませんが、画像のテキストを抽出する精度がこれだけ良ければ、何かに利用できそうです。

情報処理技術者試験を生成AIに解かせてみるという実験的な試みでしたが、いかがだったでしょうか?
生成AIの得意不得意が改めて明確になったかなと思います。知識問題ではもう負けてしまいそうです。
今回は1回分の80問だけで実験したため、解答の形式(単語、説明、値など)や図表の有無等、細かい指標での数値は比較できませんでした。機会があればいろいろな指標を試したり、試行回数を増やして平均値を出したりしてみたいと思います。

番外編 他の生成AIでも試してみた

本編に記載したGemini1.0、GPT-4以外で試したものです。

Geminiアプリ

純粋にモデルの知識だけでなく、検索等いろいろなことができるGeminiアプリ(旧Bard)ではどうなるだろう?と興味があったので、試してみました。
テキストでの出題です。解答候補が3つ出ますが、1のみを採用しました。

若干正解率は上がりましたが、誤差の範囲ともいえそうです。
最新のニュース等を取り扱っているわけではないので、あまり変化はないのかもしれません。
参考資料として、解説サイトが表示されているものもありました。

最近では、宿題やレポート等に生成AIを利用するなどという話も聞きますが、正解率80%弱だと聞くと、どう感じるでしょうか?
利用するのは自由かと思いますが、きちんと解答を確認する必要があると、改めて実感しました。

Gemini1.5Pro

最新版でも実験してみました。
テキストでの出題です。

こちらも若干正解率が上がりましたが、劇的に良くなるわけではないようです。
解答をみていると、ひっかけ問題にかかったり、微妙な言葉の定義を読み間違えたり、まるで人間のような間違いをしていました。このような問題に対して、生成AIの仕組みではこのくらいが限界なのかもしれないと感じました。

Cloud3 Sonnet ※2024/3/21追記

Cloud3がVertexAIから利用できるようになったので、同様にやってみました。

画像の認識はうまくいかないようでしたが、テキストの結果はGemini1.0と同程度でした。
知識、実践それぞれの正解率もほぼ同じです。ここまで横並びなのも面白いと思いました。

参考

参考までに、記事内の実験で使用したプロンプトを書いておきます。

問題画像で出題

画像の問題を解いて、次の形式で解答してください。
```json
{
    "question": "問題文",
    "answer": "解答(ア、イ、ウ、エのいずれか)",
    "explanation": "解説"
}
```

問題文テキストで出題

問題を解いて、次の形式で解答してください。
問題:{問題文}
選択肢:
    ア:{選択肢ア}
    イ:{選択肢イ}
    ウ:{選択肢ウ}
    エ:{選択肢エ}

{図表画像}

解答形式:
```json
{
    "answer": "解答(ア、イ、ウ、エのいずれか)",
    "explanation": "解説"
}
```