見出し画像

【情報Ⅰ】 ChatGPTの新機能「Code Interpreter」で問題作成がはかどる話 -Part1-


※ 2023年9月21日追記
「Code Interpreter」は、現在は「Advanced Data Analysis」という名称に変更されています。


こんにちは!ライフイズテックのサービス開発部でカリキュラム制作を担当しているないとうさおりです。

この度、学校向けプロダクトを開発するグループから、新設された「AI lab」というグループに異動をしました。

中高生が AI とともに学ぶカリキュラムの作成、安心して AI を利用できるプラットフォームの構築、社内業務の効率化などなど……
AI lab で取り組んでいることは多岐にわたるのですが、今回は私が担当している「問題作成の効率化・自動化プロジェクト」の一端をご紹介します。


問題作成の効率化・自動化プロジェクト

現在ライフイズテックでは、高等学校の情報Ⅰに対応した教材として、学校向けの「ライフイズテックレッスン 情報Ⅰ全対応コース」「ライフイズテックレッスン 情報Ⅰ・AIドリル」、学習塾向けの「ライフイズテックレッスンfor学習塾 情報AIドリル」をご提供しています。

2025年度から新たに情報Ⅰが大学入学共通テストの出題科目に加わるにも関わらず、基礎レベルから共通テストレベルまで、学校や学習塾で活用できる問題がまだまだ足りていないというお声を多くいただいています。

内容に誤りがないのはもちろんのこと、身につけるべき知識や技能、思考力を適切に測ることができる問題を作成してご提供するまでには、それなりに時間がかかるものです。

でも、最早そんな悠長なことは言っていられない…!!

このプロジェクトでは、問題の題材探しから設問文や図表の作成、その後の校正校閲まで、あらゆるプロセスでLLMを駆使し、大量の問題を誰よりも早くお届けしていきます。
また、近い将来には、生徒一人ひとりの学習状況に応じて問題や解説を自動生成し、これまで以上に「個別最適な学び」を実現することも目指していきます。

問題作成の強い味方、「Code Interpreter」が登場!

前置きが長くなりました。
問題作成の精度を高めるためにあの手この手を試している中、先日ChatGPT に追加された新機能「Code Interpreter」がとても便利だったので、ご紹介します。

(現在のところ、「Code Interpreter」の利用は、有料プランの「ChatGPT Plus」のユーザーのみに限定されています。
GPT-4 を選択し、真ん中の「Code Interpreter Beta」を選択することで利用できます。)

これを使って何ができるのかというと、「Pythonでできることなら、大体なんでもできる!」ということのようです。すごい!

計算問題の壁

ChatGPTを利用した問題作成を行う中で、最初にぶつかった壁が「計算問題」でした。

例えば、動画のデータ量を計算する問題。
ためしに、GPT-3.5 と GPT-4 に以下の指示を与えました。

## todo
次の手順に従って、「動画のデータ量」を計算で求める問題を作成する。問題は選択肢形式で、選択肢の数は4つにする

## 手順
1. この問題における解像度、フレームレート、動画の長さを設定する
2. データ量をStep by Stepで求める
3. 高校生から出てきそうな誤答を3パターン想定して提示する
4. 3を誤答の選択肢に反映して、問題を作成する

## 条件 ・問題文中で、フレームレートとは何かを説明する ・問題文中で、動画データには音声は含まれず、データは圧縮されていないことを説明する

GPT3.5 の出力結果

GPT-3.5の出力結果

指示が正しく通らず、計算結果も合いません…。手順1に入れ忘れていた階調についても、そのままスルーされています。

GPT-4 の出力結果

GPT-4 の出力結果

理路整然としているのに、最後の最後で計算が違っています。惜しい…!
(正しくは、6.2MB × 30fps × 10min × 60sec/min = 111,600MB) 

ちなみに、何回か同じ指示を試すと、こういうパターンも出てきました。

GPT-4 の出力結果(別パターン)

混乱して開き直っている…!
こんな調子で、計算結果が合わないだけでなく、出力自体がなかなか安定しません。

やはりChatGPTは計算機ではないので、こればかりは他のツールと連携させないと解決できないかなぁと思っていたところに、Code Interpreter の登場です。

早速先ほどと同じ指示を試してみた結果はこちら。

Code Interpreter を利用した出力結果

正しい計算に基づいて、問題が作成できています!
5回ほど同じ指示を試したところ、計算の手順や誤答の想定の仕方に若干のバラつきはあるものの、毎回正しい問題と解答を作ることができました。

このように Python のプログラムで計算させる方法は、この他にも、2進数、浮動小数点数、IPアドレス関連、音声・画像のデータ量、データの転送時間などの問題作成にも活かすことができそうです。

予告:Part2では擬似データの生成にチャレンジ!

ここまで、「正しく計算ができた!」という感動をお伝えするためだけに、かなりの紙幅を費やしてしまいました。

問題作成の自動化を目指す私にとっては、それはもう画期的なことだったのですが、情報科の先生方からすれば「これくらいの計算問題なら自分で作った方が早いな」と思われるかもしれません。

Code Interpreter を活用すれば、もっと複雑な演算や、グラフや図表の描画なども可能になります。また、ファイルをインポートする機能も搭載されているので、データの加工などにも使えそうです。
これは、「データの活用」分野の問題作成を効率化できる可能性が大いにあります。

次回Part2では、Code Interpreter を活用して擬似データの作成にチャレンジし、その過程や成果をお伝えできればと思います。
よろしければ、ぜひお付き合いください!


お知らせ

ライフイズテック サービス開発部では、今後定期的なカジュアルなイベントを実施しています。
開催予定イベントの詳細は ライフイズテックのconnpass からご確認ください。
興味のあるイベントがあったらぜひ参加登録をお願いいたします!

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?