🖍️

AIに採点させたはなし

2023/09/12に公開

学生もすなるChatGPTを、教員もしてみむとてするなり。

本記事は、実際の大学の (臨時) テストの中の1問をGPT3.5-turboに採点させ、人間であるわたしの採点と比較したものです。

まあ同様のこと (文章題のAI採点) を考えている教員のみなさまの参考になれば。

経緯

レポートの作成に使われたら教育が崩壊する!! みたいに騒がれている生成系AIですが、なら教員も採点に使ってみちゃおうじゃないの? という取り組みがどのくらい世の中でなされているか分かりませんが。

まあそんな大仰なことを考えたわけじゃなくて、たまたまe-learningシステムで解答を提出させる小テストがあったんですが、解答用紙の提出形式がPDFだったんですね。いちいちファイルをダブルクリックして開いてマウスでスクロールとか面倒くさいので、Python3のPDFのOCRと埋め込みフォント取り出しのライブラリを使ってテキストファイル化して一括採点したわけです (はじめからテキスト形式で提出させればよかった、とかの突っ込みはなしで)。

で、自分の採点担当分を採点しつつ、「あれ? これってimport openaiしてopenai.ChatCompletion.create()したら、どういう結果になるんだろ?」と思った、というわけです。

背景

某大学で『マルチメディア実験』なるものを教えていますが、最後になぜか実験のテストなるものがあります。そこでの動画像制作のテーマにおける、動画ファイルの圧縮 (?←後述) に関する問題。

問 16. 動画ファイルをの大きさを小さくする工夫にはどのようなものがあるか。各フレームごとの画像を圧縮する (静止画にも適用される) 工夫と動画特有の工夫に分けて説明せよ。(配点 8 点)

  • 受講者は、情報系学部生の2年次前期
    • ただし配当学年の関係で『マルチメディア』『情報理論』 (いずれも選択科目) といった、この問を解くための素養? となる授業は、実験後に取ることになる
    • そこで実験前には事前に自学の予習課題を課し、開始時に最低限の座学的説明をしている →動画像のフレーム差分を動画で観せたり、とかインパクトがあるとは思う
    • 世間が思っているほどコンピュータや動画像が好きな (たとえばH. 265がどうとか、画質とかレンダリング計算量とかファイルサイズとか、に興味がある) 学生は多くない
  • テストは全21問30分
    • この『問16』より単純な穴埋めや○×もあるが、より複雑な計算問題もあるので、まあこの問の解答に費やす時間は1〜2分程度でしょうか
    • 現代の私立理科系の学生の常として、国語力がひどい
  • 実験実習は『動画』テーマに2コマ200分: 課題は『自分の得意なものをひとに説明する30秒の動画制作』 (MacのApp storeで無料で手に入るDaVinci Resolveを使用)
    • それ以前の週に『静止画の編集』テーマの回があり、画像の成り立ちや静止画圧縮技術などはそこでも学んでいる
    • 実は教員免許『情報』の認可要件なので、シラバス的目的は『動画がつくれること』 (カメラで撮影して編集してエンコードしてYoutubeで公開できること)。ただし情報系なのでそこは、圧縮技術などもわかった上で取り組んでもらおうと

この記事で触れないこと

思いつき程度の短時間の試行ですので、あまり真面目に『文章題を採点する』プロンプトエンジニアリングしているわけではありません。発展形としてはあと、『◯◯ (本記事では計算機科学) 分野の記述・計算問題の採点に特化したファインチューニング』『同じく人間の教員のフィードバックによる強化学習』とか、『複数問題解答が並んだPDFから適切な解答番号を採点してCSV表を作る』とか、いろいろ考えられるんでしょうけども。

ChatGPT (その他生成系AI) を使ったレポートって、ChatGPT自身に検出させると高確率で見抜ける、いやそれはできていない、などという議論もありますが、ここではほとんどそれには触れません (AI解答をAIに採点させてみてはいる……つかGPT3.5-turboは揺らぎすぎだろ)。そもそも、このテストはほぼカンニングなどができない状況下で (時間的余裕もないでしょう) 行なっているので、学生がChatGPTを使っている疑いはまずありません (他の人間の解答もカンニングできていないと思われますが、過去問が出回っている可能性は否定できない)。

あと、思いつきで試すには高いので噂のGPT-4や (そもそもわたし自身はDLの中身とかつくる方に興味があってもGPTビジネスなどにはあまり興味ないので$20払ってないです(笑))、Google Bardなど他の生成系AIについては試していません。

テスト問題と、学生に期待する正解の例

テスト問題 (再掲)

問 16. 動画ファイルをの大きさを小さくする工夫にはどのようなものがあるか。各フレームごとの画像を圧縮する (静止画にも適用される) 工夫と動画特有の工夫に分けて説明せよ。(配点 8 点)

テスト解答例と採点基準

(配点 8 点) 部分点あり、『静止画にも......』4・『動画特有......』4。ひとつ以上の妥当な技術を挙げていれば正解
フレームごと: 縦横の画素数を少なくする、色数を落とす、周波数変換して高周波成分を落とす (細かい模様を落とす)、など。
動画特有: フレームレートを落とす、フレーム間相関を利用する (隣り合ったフレームの輝度を引き算する)、など。

この問題のミソは、必ずしも『圧縮技術』に言及しなくても、『ファイルサイズを小さくする』工夫ならなんでも、たとえば画素数やフレームレートを減らすとかでもよい、というところです。いわゆる圧縮技術、コサイン変換の原理とか情報理論的冗長度の削減などテクニカルなはなしを理解していなくても、(計算機リテラシがあれば) 直感的に答えられるようにしています。

実はChatGPTの採点では、『圧縮に言及してないからダメ!! 解像度を落としたらダメだろ!!』的なものもあったのですが、ChatGPT自身に解答を作らせてみる (次) と、原画像の情報量そのものを減らす的な解答もあったり。

またわたし (人間w) 自身は、『静止画でも』4点・『動画特有』4点と分け、さらに『なにをしたいか』がわかっていれば2点・技術的な原理をわかっていれば2点、と決めていたのですが、そういった配点詳細をプロンプトで与えていないのも、後述の採点の食い違いだったかも。

逆に、なんか書いていればまあ1点くらいやるか、みたいな仏心は、人間の採点者にはあります(笑)。

GPT先生自身がテストに答えてみた解答例

ChatGPT (GPT3.5-turbo web UI):

動画ファイルの大きさを小さくするためには、以下のような工夫が考えられます。これらの工夫は、動画ファイルを効果的に圧縮して、ファイルサイズを削減する方法を示しています。

  1. 各フレームごとの画像を圧縮する(静止画にも適用):

画像圧縮アルゴリズムの選択: 動画は連続した静止画の集合です。そのため、各フレームの画像を効果的に圧縮することが重要です。一般的に使用される画像圧縮アルゴリズムには、JPEG、PNGなどがあります。画像の特性に応じて適切な圧縮アルゴリズムを選択することが必要です。

適切な画像品質の設定: 圧縮時に画像の品質を調整することができます。品質を下げると、ファイルサイズが小さくなりますが、画像の解像度やクリアさが低下する場合があります。適切な画像品質を設定して、ファイルサイズと画質のバランスを取る必要があります。

キーフレームの使用: 動画は差分フレーム(前後のフレームとの差分のみを記録)とキーフレーム(完全なフレーム)で構成されます。キーフレームを使用することで、各フレームを単独で解析することができるため、効果的な圧縮が可能になります。

  1. 動画特有の工夫:

フレームレートの調整: 動画のフレームレートは、1秒間に表示されるフレーム数を示します。高いフレームレートは滑らかな動画を提供しますが、ファイルサイズが大きくなります。必要に応じて、フレームレートを調整してファイルサイズを削減できます。

解像度の変更: 動画の解像度を調整することで、ファイルサイズを大幅に削減できます。ただし、解像度を下げると画質が低下するため、バランスを取る必要があります。

音声の圧縮: 動画に含まれる音声もファイルサイズに影響を与えます。効率的な音声圧縮方式(例:AAC)を使用することで、音声のファイルサイズを削減することができます。

動画の再エンコード: 動画ファイルを再エンコードすることで、新しい圧縮パラメータを使用してファイルサイズを小さくできます。ただし、再エンコードによる品質の低下に注意する必要があります。

動画コーデックの選択: 動画ファイルの圧縮には、H.264、H.265(HEVC)、VP9などのコーデックがあります。これらのコーデックは異なる圧縮効率を持ち、ファイルサイズに影響を与えます。適切なコーデックを選択することで、ファイルサイズを最適化できます。

これらの工夫は、動画ファイルのサイズを最小限に抑えるために重要です。ただし、圧縮をかけすぎると画質や音質が低下する場合があるため、バランスを考慮して適切な圧縮方法を選択する必要があります。

わたしの採点基準だと、6/8点というとこですかね?

実はそれっぽい技術要件は並べていて、構造が整理されているかのようにみえて

  • 動画特有のこと (キーフレーム云々) を静止画のほうに混ぜ込んだり、静止画にもいえること (解像度云々) を動画特有に入れたり
  • 無関係な答 (音声の圧縮・再エンコード) が混ざっていたり

などという点が、減点対象ですね。

模範解答をGPT採点してもらったらどうなるか

(web UI問い合わせ)

あなたは大学の先生です。テストの問『動画ファイルの大きさを小さくする工夫にはどのようなものがあるか。各フレームごとの画像を小さくする (静止画にも適用される) 工夫と動画特有の工夫に分けて説明せよ』について、学生が次のように答えました。8点満点で何点を与えますか。またその理由を教えて下さい。
学生の解答:
フレームごと: 縦横の画素数を少なくする、色数を落とす、周波数変換して高周波成分を落とす (細かい模様を落とす)、など。
動画特有: フレームレートを落とす、フレーム間相関を利用する (隣り合ったフレームの輝度を引き算する)、など。

(GPT先生の採点)

学生の解答に対して、私が与える点数は7点です。

理由は次のようになります:

フレームごとの画像を小さくする工夫についての解答は適切であり、縦横の画素数を少なくする、色数を落とす、周波数変換して高周波成分を落とすなどの方法が挙げられています。これらは一般的な動画ファイルのサイズを小さくするためによく使われる方法です。

動画特有の工夫についての解答も一部適切であり、フレームレートを落とすことで動画の連続性を減少させることができます。これにより、ファイルサイズを減らすことが可能です。

また、フレーム間相関を利用する方法も挙げられています。隣り合ったフレームの輝度を引き算することで、変化が少ない部分においてデータの重複を排除することができ、効果的にファイルサイズを削減できます。

しかし、完璧な解答ではないため、1点を引かせていただきました。より詳細な説明や他の可能な方法についても触れるとより良い答えになるでしょう。例えば、動画特有の工夫については、ビデオコーデックの選択、キーフレームの設定、フレーム間の差分を利用する方法などがあります。これらについても言及すると、より高得点になる可能性があります。

7点いただきました!! って、う〜ん? 後述の例にもあるが、『ChatGPT先生が考える、とある方法』をすべて列挙しないと、減点されるようだ(???)。

AI採点手法

API叩きました。噂のfunctions =などは使っていません。

すなわち、解答文を73回、web UIにコピペするのを自動化した、という程度です。

openai.ChatCompletion.create()の引数に

  • {role: 'system'}, {content: 'あなたは大学の先生です。'}
  • {role: 'user'}, {content: 'テストの問『動画ファイルの大きさを小さくする工夫にはどのようなものがあるか。各フレームごとの画像を小さくする (静止画にも適用される) 工夫と動画特有の工夫に分けて説明せよ』について、学生が『' + 学生の解答 + '』と答えました。8点満点で何点の答ですか? 理由も教えて下さい。'}

を与えた (ちゃんと敬語w)。

人間の採点者との違い: 統計的な詳細

繰り返しますけど、これ人間がいったん採点したものと同じ解答をGPTに食わせています。決して手抜きのためではありませぬ (未来の手抜きのため……いやなんでも)。

したがって、人間とGPTの採点の食い違い、というか、相関が気になります。

  • 評価対象: 73名 (全解答者: 88名のうち、問16が無回答・20文字以下は削除)
  • 人間の採点者: 平均点3.01点、標準偏差1.59点、最小0最大7中央値3 (/8点満点)
  • ChatGPT: 平均点4.58点、標準偏差2.15点、最小0最大8中央値5 (/8点満点)

GPT先生、甘い!! (笑)

最大の理由として、採点解説でまずい点を列挙している (そしてそのまずい点は人間であるわたしも大体同意) にも関わらず、6点とかをつけてしまうからに他なりません (ほんと6点ばっか。学習データに「当たり障りないよう8割くらいで評価しとくか」ってのが多い?)。後述するように、もう少し配点について細かいプロンプトを与えればよかったのかとも思う。

得点分布


人間の採点者: 青、ChatGPT: オレンジ

人間の方はまあ、きれいなポアソン分布? ですが、ChatGPTのほうは二山に分かれているのが気になりますね。これは、上述のようになぜか6点を頻出させるからかも。

人間とChatGPTの相関


横軸: 人間、縦軸: ChatGPT

  • 相関係数: 0.474

相関、弱い……。原因はやはり6点頻出、もあるのでしょうが、人間が1〜4点評価をしているものを、2〜7点評価してしまっているのが大きいかと。たぶん後出のように配点基準をプロンプトで与えていないのがこの辺の得点の違いになっています。

面白いのが、人間が5〜7点評価をしているものは、GPT先生も5〜8点評価をしている、つまり「良い解答は良い評価」なのと、人間の0点評価はGPT先生も0点評価なこと (サンプル数が少ないからスケーラブルなのかどうかわかりませんが)。中庸な、なんとも言い難い解答に対する評価が主たる課題だ、ということがわかります。けど、人間が3・4点評価なのにGPT先生に0点喰らっている学生はかわいそうですね……。

余談。少ない数の整数マトリクスで複数の同得点者がいるので、分散図だけだと人数重みがわからず『バブルチャート』なるものを使ってみましたが、こゆのうまく表わす方法ってあるんですかね?

人間の採点者との違い: 具体例にみる定性的な傾向

本項に出てくる実際の解答例は、「Zennにこんな記事書いていい?」っていう同意が取れた学生のものです。言うまでもなく、本記事の目的は「学生がこーんなにできない」などという批評ではなく、「AIの採点はこーんなにまずい」という批評だったりするので、はからずもAIの面白い採点を引き出してしまった学生諸君の解答には感謝するとともに、そういうものか、と思ってください。

それと成績は別だからねっ (びしっ)。

seedによるゆらぎ

まず先生としてはこれが一番まずい(笑)。

まあわたしだって、気分とか機嫌とか採点の順番とかその学生のリアルの印象によって点数が左右されることはない……とは言えないが (だから採点時は名前をみないようにしている(笑))、デバッグのときに気づいたのだがGPT先生、あまりに同一の入力に対して採点が揺らぎすぎ。

これは、seedを固定したら同一入力に対する点数こそ揺らがないでしょうけど、seedによって学生への運・不運が生じると思うので、根本的解決にはなりませぬ。それだったら、random seedによる複数回の同じ答案に対する採点ののmedian値でも取ったほうが信頼できるかと。

そもそも、前出のChatGPTによる解答をChatGPTに採点させてみると、5点であった↓(笑)。つまり、自分でこうだと思って (※ 思ってない) 答えているものを、別の自分の評価 (seed違いなのか) では気に入っていない、と。

ChatGPTによる解答をChatGPTに採点させる

学生の回答は、以下のように評価できます。

各フレームごとの画像を圧縮する(静止画にも適用): 2点
学生は、画像圧縮アルゴリズムの選択と適切な画像品質の設定について説明していますが、キーフレームの使用についての具体的な説明が欠けています。したがって、この項目には部分的な理解があると言えます。

動画特有の工夫: 3点
フレームレートの調整、解像度の変更、音声の圧縮、動画の再エンコード、動画コーデックの選択についての説明が含まれていますが、これらの項目についても一部詳細が不足しています。具体的なコーデックについての言及や再エンコードによる品質低下への言及があれば、より高得点となります。

総合的に見て、学生の回答は5点と評価します。工夫の大まかな説明がある一方で、詳細や具体例が不足しているため、完璧に理解しているとは言い難いです。また、その他の圧縮方法や注意すべき点についても触れることが望まれるでしょう。学生にはさらに知識を深めてもらい、より充実した理解を目指すようにアドバイスしてみてください。

『学生にはさらに知識を深めてもらい』って、ChatGPT、お前のことだよ!!

忖度

これは後述『国語の問題』にも関わるが、てきとーなことを書いても、てきとーに忖度してくれちゃう傾向があるようだ。

中身的なはなしでは、(次の例にも出てくるが) この問題で『静止画にも共通』『動画特有』を分けて答えていない (非論理的な) 解答についても、『このフレーズはどちらに当てはまるか』を忖度して正解と解釈してくれちゃう場合があるようだ (そうでなく、明確に『分けて答えていない』と指摘される学生も。要は気まぐれ度高)。

だがこれは、『学生の意図を汲み取って』優しく採点してくれる親切な先生にもつながる (これも後述する)……厳密な先生が良いのか、優しい先生が良いのかはバランスの問題だと思うが、人間の採点者であってもまったく同様に難しいはなし。

国語の問題

エンジニア、言葉が命だ。用語を誤ったらひとが死ぬ。なおかつ生成系AI時代に『国語で正しく質問できる能力』がなければ、AIを正しく使いこなすことはできないっっ!!

と言ってきたのに〜。GPTの良くない点は、文法的に出鱈目な日本語、用語の誤りすら『それっぽく』解釈してしまうことかもしれない。

学生の解答例

(前略)
なるべく音やえへくとを少なくする

GPT評価

(前略)
2. 「なるべく音や映像を少なくする」:この回答は、音声や映像の情報量を減らすこと
によって、動画ファイルの大きさを小さくする方法を指していると思われます。一般的に
、情報量を減らすことでファイルサイズを削減できますが、この回答は具体的な方法や技
術について触れていないため、評価はできません。
(中略)
以上の理由から、6点程度の評価をすることとします。

『えへくと』は100歩譲って正しい言葉『エフェクト』 (動画にかける色補正や特殊効果) だとしても、動画を小さくする理由にはならない (つまりこのパートは0点)。ところがGPT先生は『映像』と忖度補正してくれているので、それについて点数を与えている (配点は明示してないが3点くらいか?)。

やっぱり、技術や法律系の試験など『用語が正しいかどうか』まで問われるテストで、この採点はまずいんじゃないだろうか。これもプロンプトで『用語は厳密に使っていること』などで補正できるのかなあ? そもそもChatGPTが喰って育ったであろう巷の有象無象のweb上の文書が、それほど良い国語であるとは思えない (ファイルの『容量』とか画素『数』が『高い』とか、『ACアダプタ』のことを『充電器』とか、あまたのbuzz wordとか) から、GPT先生は国語に甘いのか。

現代の学生とGPT先生の言語感覚(?)

「いまの若者は」ネタになっちゃうのですが。映像編集に『トランジション』(場面転換)というのがありますが、別の問題 (用語の問題) でこれを『トランジスタ』などと解答してきたのが2、3名。単純に笑えません。

学生の身になって考えると、昭和の小学生みたいにラジオ工作をしてトランジスタの実物をみたこともなければ (なのに『トランジスタ』という言葉だけきいたことがある)、『英語が苦手』と思い込んで語源としてtrans- が『移り変わり』等の概念を指している、などという結びつきを考えたことがない……要するに日常生活でカタカナ英語にすら触れない・触れても意味など考えてみる習慣がない (同じく電子工作での電源や信号変換機の『トランス』 transformer を知らないとか、海外旅行など未経験で『transit』という言葉も知らないとか)、というような学生にとっては、技術の中身 (意味・概念) を覚えるのに加えて未知の見たこともなければ聞いたこともない用語を覚えるという2レイヤーにおける二重苦になっているのではないだろうか、と。

この点、語彙 (文字列のシーケンス) とembeddingされた意味の結びつき、さらに使われ方の文脈までパタンマッチングしているtransformerが優秀なわけです。このような低レベル (字句・単語レベル) での指摘・訂正などこそ、AIに任せたい……ところですが。人間より低レベルな添削に対して飽きずに・怒らずに、親切に指導してくれるし(笑)。

試しに、GPT先生にやらせ解答でいろいろな『誤字脱字』『似た言葉』『ききかじりで意味がわかってない専門用語』などを与えてみると……何例か:

不適切な用語: 学生の回答には、「サンプラーを少なくする」という表現が含まれていますが、この文脈では適切な用語ではありません。おそらく学生が言いたかったのは、動画のフレーム数を減らすか、またはフレームレートを低くすることでしょう。

不適切な表現: 学生の回答には、「ふうぇーむすうを少なくする」という表現が含まれていますが、これは正確な日本語表現ではありません。正しくは、「フレーム数を減らす」または「フレームレートを下げる」と言うべきです

という厳密な指摘や誤りの訂正をびしっっ!! としてくることがたまにあり……ましたけど、しないでてきとーに忖度したりすることもあるので、やっぱりこれもゆらぎが大きすぎるということでしょうか。

採点基準について

最初のほうで触れましたが、この問題の微妙な点は『圧縮でなくても』『ファイルを小さくする工夫』ならOKとする、という点でした。

『画像の圧縮技術』!?

そもそも『画像の圧縮』というものが、数学的な冗長度削減だけではなく、視覚的に鈍感な高周波成分を切り捨ててみたり色信号の量子化をおおざっぱにしてみたり、という『切り捨て技術』なのだから)。

これは人間の解答者に対して『圧縮技術という言葉を使っていないことから推し量れ』ということですが (解答者である学生も同様に推し量れるかどうかで解答の難易度が変わる!?)、AIの場合、まだプロンプトで明示しないといけないかもしれません。そして……AIに読解力で負ける学生にも、そこんとこ (引掛けとか裏ワザ的ではなく明示的に) 述べてやらないといけないのかも。

学生の解答例1

解像度を下げる。若干の荒さが生じるが動画ファイルを小さくすることができる。
(後略)

GPT先生の評価

解像度を下げるというアイデアは正しいですが、その利点として荒さが生じることを述べています。ただし、荒さが生じることはデメリットであり、回答としては不完全です。したがって、この部分には半分の点数を与えます。
(後略)

学生の解答は、わたしは満点評価をしました。(不正確ながら) ファイルサイズと画質のトレードオフにまで言及しているのに、GPT先生はトレードオフで犠牲にしたことを『デメリットだから解答として不完全』と切り捨てています。

学生の解答例2

(前略)
無駄なシーンはカットする。

GPT先生の評価

(前略)
2. 無駄なシーンはカットする:これも一般的なアドバイスですが、具体的な方法や技術
について触れていないため、詳細が不足しています。

この問題では、フレームごとの画像の圧縮や、動画特有の圧縮技術についての説明が求め
られています。そのため、具体的な方法や技術に触れずに一般的なアドバイスだけを書い
た回答では、問題の要求を満たしていません。評価点数は低くなります。

ちょっとこれは微妙です。この学生の答は、わたしの評価基準上 (ファイルを小さくする工夫なら何でも) で一定の点になるのだけど、『動画を短くする』ことを『シーンのカット』と表現すると、技術的な問題ではなくメディア制作者側のはなし。ということが『一般的なアドバイス』に含まれ評価の低下につながるのかどうか、よくわかりません。

『圧縮技術に限らない』をプロンプトで明示して問い合わせ (web UI)・上記学生の解答例1

あなたは大学の先生です。テストの問『動画ファイルの大きさを小さくする工夫にはどのようなものがあるか。ただし圧縮技術だけではなくファイルの大きさを小さくする方法全般について正解とする』について、学生が次のように答えました。4点満点で何点を与えますか。またその理由を教えて下さい。
学生の解答: 解像度を下げる。若干の荒さが生じるが動画ファイルを小さくすることができる。

GPT解答

学生の解答について、私は3点を与えます。

理由:
解像度を下げることは、動画ファイルのサイズを小さくする効果的な方法の一つです。解像度が下がることで、画像の精細さが減少し、荒れた印象が生じるかもしれませんが、ファイルサイズは大幅に削減されます。ただし、この方法は動画の見た目の品質に影響を与えるため、使いどころを考慮する必要があります。

しかしながら、完璧な4点を与えない理由は、他にもファイルサイズを小さくする方法があるからです。例えば、以下のような手法が挙げられます:

動画コーデックの選択: (略)
ビットレートの調整: (略)
オーディオの圧縮: (略)
不要なコンテンツの削除: 動画に不要な部分が含まれている場合、それを削除することでファイルサイズを減らすことができます。

以上のような方法を挙げることで、学生の解答がファイルサイズを小さくする方法の一部をカバーしていることがわかりますが、他の方法も考慮する必要があるため、満点には至りません。

う〜む? ちょっと評価は上がりましたけど、最後の『不要な……削除』を除いて、プロンプトで与えてもどうしても『圧縮技術』にこだわるようだな……。しかも関係ない音声圧縮と、上記解答例2で切り捨てたコンテンツの削除について自分で解説で触れているし(笑)。

配点について

プロンプトでは配点基準について明確に与えていませんが、これについては人間の基準 (『静止画にも』 4点 + 『動画特有』 4点、各々『何をするか』2点・技術的詳細2点) を与えたら、もっと人間と一致したかも。

学生の解答例

それぞれのフレームを圧縮するとは解像度などを少し低くしたり各々のデータを小さくし
形式などを変えること。

人間の評価

2点: 『静止画にも共通』『動画特有』が分離できておらず後者に答えていない・『解像度を低くする』(おそらく前者の解答) のみ意図だけ記述・『形式を変える』が不明確

デフォルトのGPT採点

この学生の回答は、個別のフレームを圧縮することで動画ファイルのサイズを小さくする
という基本的な概念を把握していることを示しています。しかし、回答が十分に詳細では
なく、具体的な技術や工夫については触れていません。したがって、この回答は6点とし
ます。

次回、これに関連するより具体的なテクニックや工夫について学生に説明するように指導
すると良いでしょう。たとえば、フレームを圧縮するための畳み込みや転送技術、ビット
レート制御などのテクニックを紹介し、さらに動画特有の工夫として、差分ビデオ符号化
やキーフレームの使用などについても説明することができます。

後からより細かい配点をプロンプトで与えたもの (web UI)・問い合わせ

あなたは大学の先生です。テストの問『動画ファイルの大きさを小さくする工夫にはどのようなものがあるか。各フレームごとの画像を小さくする (静止画にも適用される) 工夫と動画特有の工夫に分けて説明せよ』について、学生が次のように解答しました。8点満点で何点の答ですか? ただし配点は、静止画にも共通することが4点、動画特有のことが4点とします。またそれぞれについて、何をするかが説明できていれば2点、技術的原理がわかっていると思われる場合はプラス2点とします。評価の理由も教えて下さい。
学生の解答: それぞれのフレームを圧縮するとは解像度などを少し低くしたり各々のデータを小さくし形式などを変えること。

より細かい配点指定に対する解答

  1. 静止画に共通する工夫について:
  • 解像度を低くする。
  • データを圧縮する。
  • ファイル形式を変更する。
  1. 動画特有の工夫について:
  • フレームごとの画像を圧縮する。

静止画に共通する工夫についての評価:
解像度を低くしたり、データを圧縮したり、ファイル形式を変更することは、静止画や動画のファイルサイズを小さくする一般的な手法です。学生はこれらの工夫を説明しており、何をするかが理解できていると言えるでしょう。従って、2点を与えます。

動画特有の工夫についての評価:
学生は「フレームごとの画像を圧縮する」という動画特有の工夫について述べていますが、具体的な技術的原理については触れていません。圧縮という言葉だけでは、どのような圧縮アルゴリズムや手法を使うのかがわかりません。従って、技術的原理がわかっているとは言えないため、追加の2点を与えることはできません。したがって、この部分には2点を与えます。

合計得点:2点 + 2点 = 4点

学生の解答は、8点満点中4点と評価されます。改善点として、動画特有の工夫についてより具体的な圧縮技術や手法についての理解を深めると良いでしょう。

う〜ん? まだ『静止画に共通』『動画特有』を、ChatGPT先生が適当に忖度して採点してくれちゃってるし (『フレームごとの圧縮』は問題文だし)。

GPT先生が考える配点

面白いことに、先の細かい配点を指示していないプロンプト

(前略) 8点満点で何点の答ですか? 理由も教えて下さい。

だけに対して、数十回の試行に対して一回だけGPT先生が考える配点を『理由』の中に明示してきたことがありました。それによると

点数評価:
完全に正解: 8点
一部正解・一部不正解: 4点〜7点
不正解だが何かしらの関連性がある回答: 1点〜3点
全く関連性のない回答: 0点

だそうで。ただこの採点基準もその一回だけについて適用されていると思われるので、毎回のゆらぎに対しては有効であるとは限りません。

良かった点

いろいろ採点者としてまずいかな、という点を列挙してきましたが、逆にドキッとするくらい学生の解答に突っ込んでいる点もあったので、そういった例を2、3。

技術がブラックボックスな学生へのお叱り

学生の解答例

(前略)
動画の拡張子によって動画サイズを小さくすることも出来る

GPT先生の評価

(前略)
次に、学生は「動画の拡張子によって動画サイズを小さくすることもできる」と指摘しましたが、これは正確な情報ではありません。 拡張子はファイルの種類を表すだけであり、動画の圧縮に直接関係ありません 。正確な情報としては、動画の容量を減らすためには、圧縮アルゴリズムやビットレートの調整などの方法を使用する必要があります。

これなんですよね。この解答者が「拡張子 (ファイル名) を変えたら、ファイルが小さくなる〜」と信じていたのか、それとも『ソフトウェアでセーブするときの拡張子を変えることによって選ばれるエンコーディングメソッドが変わる』という意図の表現不十分なのかどうか分かりませんが、……一定数実在するんです。『PDFで提出』といったら、名前を『.docx』から『.pdf』に変更しただけで出してくる学生が(爆)。

ちなみにこの解答への評価は、わたしとChatGPTでまったく一致していました。

説明になっていない・あるいは理解していない学生へのお叱り

学生の解答例1

(前略)
似ている色彩のところは、一つにまとめている。

GPT先生の評価

(前略)
また、「似ている色彩のところは、一つにまとめている」という回答も具体的な説明がなく、どのような方法でまとめているのか不明です。

これは情報系の大学生によくあるはなしですが、概念として『似ているところをまとめ』れば『情報量は減る』と感覚的には理解していても、『まとめられた2つの場所のindexが必要』だとか 『実体がリファレンス程度の大きさに減る』 だとかの、具体的なアルゴリズムが伴っていないわけです。そういうのはびしっと『具体的な説明がない』と指摘してくれる傾向は強いです。

そもそも『色彩』 (技術用語『色』でもなく) が『RGBごとの輝度』から成り立っているので『輝度』と書くべきとか、輝度は数値なので『連続した数列を圧縮……』と表現しないところが技術的でない、という指摘になるべきなんですけど……。

学生の解答例2

(前略)
細かい人間の目に見えないような情報は削除する。

GPT先生の評価

この学生の回答は、テストの問題文に対する適切な回答とは言えません。理由は以下の通りです。
(中略)
2. 不正確な説明: 学生が述べた「細かい人間の目に見えないような情報は削除する」という説明は、非可逆圧縮による情報削除の一般的なアイデアを指しているようですが、具体的な方法や手法には触れていません。
(後略)

どちらかというとGPT先生の減点対象は『では「人間の目に見えない細かい情報」の定義は?』ということだと思うのだけど、同じ『具体性に欠ける』で切り捨ててますね。世間 (GPTの学習サンプル) では、若者が年寄りに怒られるときとか「具体性に欠ける!!」とか評される文章表現が多いのかな(笑)。

問われていないことへの解答へのお叱り

学生の解答

各フレームごとの音声を圧縮する

GPT先生の評価

この学生の回答は、問題の要求には合致していないため、0点です。
(後略)

問われていないことに答えても0点、というのは、まあ信頼できますね。

それにしてはGPT先生の解説で『音声を圧縮……』という、問われていないことに触れるのが多いんですけども(笑)。

良い忖度: 不十分な解答の意図を汲み取って評価している

学生の解答例

(前略)
特有:カメラを固定している際の背景など動きの少ないものは同じものとして保存する。

GPT先生の評価

(前略)
一方、学生の回答は動画特有の工夫について一部理解していることがわかります。特に、
背景など動きの少ない部分を同じものとして保存するという工夫に言及しています。この
工夫は、動画ファイルの大きさを小さくする効果があると言えます。

同様にカメラの固定について触れた学生は多数いましたが、これには実験実習時の背景があります。三脚にカメラを固定して撮影されたニコニコ動画の『踊ってみた』動画の、フレーム差分画像を動画にしたもので背景がすっぱり消えてなくなるのをみせたのが多くの学生の印象に残っているようでした。という経緯をGPT先生に与えたわけではないので、生半可な採点者だったら「なんで三脚使うと動画ファイル小さくなるのよ〜バツ!!」と評価するかもしれないとこです。そんな背景を知らないGPT先生、カメラの固定について理解を示してくれているのは、有能かつ優しい先生だと思います。おそらくGPTの学習データに、プラクティカルな例としてそういうものが一定数あるのかも。

つか、GPT先生やさしいよね。親切。

ちなみに他の問題ではどうか

まず、単純な穴埋めや○×などは、パタンマッチングでできちゃう (そもそも弊学のe-learningシステムの機能でもできる) ので、あまりGPTを使う意義は感じません。ま、プログラム書かない先生にもノンコードで簡単にテスト自動採点ができる枠組みとか作れるかな?

あと、GPT-3の登場時から計算問題が苦手 (出鱈目) というのはよく知られていますので、最初からその問題を与えてみようとは思いませんでした。ちなweb UI (採点じゃなくて解答ですけれども):

問題例

問19. ある 33.21[秒] の音声を AAC 非可逆圧縮で書き出したところ、圧縮済みファイルの大きさは 99.37[KB] であった。圧縮率を有効数字 3 桁で答えよ。
ただし音声記録の諸元 (無圧縮を仮定したファイルの諸元) は、サンプリングレート: 44100 [sample/秒]、 サンプリングビット数: 16[bit/sample]、チャンネル数: 2[ch] とする。
圧縮率の定義は (圧縮済みファイルサイズ)/(無圧縮を仮定したファイルサイズ) とする。

正解例

無圧縮を仮定したファイルサイズは 44100[sample/秒] × 2[ch] × (16/8)[byte/sample] × 33.21[秒]⌋(2 点) = 5858244[byte]⌋(3 点)、圧縮済みファイルサイズは 99370[byte] より圧縮率は 99370/5858244⌋(3 点) ≃ 0.0170[・]⌋(2 点) (無次元単位『[・]』は未記入でも可).

ChatGPT3.5-Turbo (web UI) の解答

圧縮済みファイルの大きさは 99.37 KB であり、無圧縮ファイルのサイズを求める必要があります。

無圧縮のファイルサイズを求めるには、音声ファイルの長さ(秒数)と諸元(サンプリングレート、サンプリングビット数、チャンネル数)を使って計算します。

まず、無圧縮のファイルサイズを計算します:

無圧縮ファイルサイズ = 音声ファイルの長さ × ビットレート
ビットレート = サンプリングレート × サンプリングビット数 × チャンネル数

サンプリングレート = 44100 sample/秒
サンプリングビット数 = 16 bit/sample
チャンネル数 = 2

ビットレート = 44100 × 16 × 2 = 1411200 [bit/秒]
無圧縮ファイルサイズ = 33.21 [秒] × 1411200 [bit/秒]

次に、圧縮率を計算します:

圧縮率 = 圧縮済みファイルサイズ ÷ 無圧縮ファイルサイズ
圧縮率 = 99.37 [KB] ÷ (33.21 [秒] × 1411200 [bit/秒])

計算結果を有効数字 3 桁で丸めます:

圧縮率 ≈ 0.00283

お? 途中まで正しいかと思ったけど、bitとbyteを混同、割り算もなんか誤った桁オーダと意味不明な数字並び(採点基準上は途中までの考え方に4/10点の部分点が与えられる程度の解答ですが)。

まあこの調子なんで、計算問題の採点にははなから期待しませんでした。

まとめます

  • 文章解答のテスト問題も、一定リーズナブルな採点ができる
    • ただし計算機技術系のテスト問題だから得意で、一般教養とか他の専門分野ではどうか?
    • 一見論理的にみえて (箇条書きなど)、破綻している論理に基づいて採点している箇所も→GPT4やBardではどうか?
  • 採点基準と配点基準をかなり明確に与えないといけない
    • 記事では一部、web UIでやり直した例としてプロンプトの一部分を細かくして与え直していますが、すべての学生についてやり直していないのは、渡すトークン数 (採点指示) が膨大になるからです。APIでは履歴が残らず、同じ問題を連続して採点する場合でも直前の解答に対する採点指示などが残らないので、各学生の解答ごとに『あなたは大学の先生です』から始めて問題文・採点基準・配点基準まで細かく指示するのは無理がある (と考えた)
  • 採点者の気まぐれ (揺らぎ) が大きすぎる

→現状では人間の教員による『全数でたらめチェック』が必要な程度。したがって、二度手間だからまだ使えない……。

まあ当たり前の結果でしょうか。

やり方についてコメントがある方はください。また、他分野でやってみた、みたいな情報もお待ちしています。


コストのはなしですが、ChatGPT先生の総採点時間は約10分程度。日曜昼 (USでは土曜夜間?) に実行したので

openai.error.ServiceUnavailableError: The server is overloaded or not ready yet.

なんてエラーも。

使用料金は (安い方のGPT3.5-turboだったので) USD0.08 (約11.3円)。70数人の答案を (根拠付きで) 採点してくれる労働としては、安すぎますね。

さあ、先生の職は、AIに奪われるのか!? (笑)

Discussion