KCC JOURNAL

KCCジャーナル

2024/12/6

Kids Code Club 2024年秋の技術開発インターンシッププロジェクト

 オンライン空間での子どもの学習行動をAIに分析させるシステムを試作 -  専門知識がなくてもデータ分析が可能に!

「あの子は今日、マイクラ島にいたっけ?」「この子が質問島に来た時にクルーが対応できていた?」― 仮想オンライン空間に大勢の子どもが集まってデジタル創作活動をする無料イベント、放課後プログラミングクラブ(通称:放プロ)。毎回数人のスタッフやボランティアの方が見守りをしますが、すべての子どもの動きを把握できるわけではありません。そこで、イベント中の子どもの活動データをそのままAIに見せ、スタッフが自由に質問できるシステム開発に米国大学生インターン2人が挑戦しました。

放プロ空間内の島に境界線を引いて子供の滞在状況を把握します 

専門知識不要のデータサイエンス

Kids Code Clubでは、放プロに参加する子どもたちの自習力、協働学習力がどう向上しているかを可視化・数値化するという目標があり、その第一歩としてメタバース空間での子どもの位置情報を抽出して分析することを試みました。ところが、データ分析にはどうしてもデータサイエンティストなどの専門家が必要で、長期に渡って人員を確保する余裕はありません。そこで、収集したデータをそのままAIに渡して、あとはスタッフがそこから知りたいことを自由に質問できるという仕組みが可能かどうかを実験的に開発・テストしました。もしAIが生データをもとに質問に回答してくれるのであれば、難しい分析・解析をするプロセスは不要となります。

 本システム全体のプロセスフロー

プロトタイプ、AI Insightsの開発をスタート

今回のプロジェクトには、米国ワシントン大学で情報学を専攻したTaiga Hijikataさん、情報システム・マーケティングを専攻したShiho Kyokutaさんが参加。まずは1日の放プロでの子供の動きをAIに渡してどこまで深い質問ができるか、その精度や整合性に着目しながら「プロンプトエンジニアリング」を進めました。

プロンプトエンジニアリングとは、AIにどのような事前情報や指示を与えたら望ましい回答が出てくるかを探る作業です。この手法については全世界の著名な大学の研究者によって論文が発表されていて、このプロジェクトでも数多くの手法を試してみました。

 プロンプト手法に関する米国コーネル大学の論文の例

最適なプロンプトを整える難しさ

まず、生データの構造はとても単純で、放プロ会場にいるユーザーの座標位置(XとYの値)を毎分記録し、その位置がどの「島」にいるかを判断します。1回の放プロで約5000行程度のデータが抽出されます。放プロでは活動の目的に応じて「テーマパーク島」「マイクラ島」「お助け&質問島」などエリアが分かれていて、どの島にどの程度いたかを把握することで一定の活動内容が理解できます。

生データは全ユーザーの位置情報を毎分取得したCSVデータ

プロトタイプの精度を測るため、次のような質問をベンチマーク(評価基準)として設定しました。

  • 「お助け&質問島」に行ったユーザーをすべてリストして

  • それぞれの島に立ち寄った人数を教えて

  • 時間内に島を6か所以上動いた子を教えて

  • 始まって30分以内に退室した子を教えて

 このシンプルな質問に対して生データを見せるだけではなかなか正確な回答は得られません。そこから多くのプロンプト手法を参照しながら、どうしたら正確な回答になるかを調整する毎日が続きました。例えば上記3つ目の質問で、「滞在した島の数が6つ以上になるユーザー」と尋ねるのと「6回以上島を移動したユーザー」と尋ねるのとでは結果に大きな差がでます。つまり後者の聞き方だと「同じ島の出入りは複数回と数えるのかどうか」という曖昧さが生じます。これがAIの回答精度にもインパクトを与えるわけです。 

想定以上だったプロンプトの‟深さ“

 今回は主にOpen AIのGPT4oモデルを利用し、よく聞かれる質問として設定した上記の固定質問4つに対して正確に回答するための「個別プロンプト」、そしてどんな質問にも利用できる「汎用プロンプト」を構築していきました。

AIに与えるプロンプトは複雑なものであれば次のように細かく分析方法を指示します。

 # 指示: 

あなたは優秀なデータサイエンティストです。以下のデータをもとに、質問に答えてください。

#分析方法

- ステップ1: 全ユーザーごとに訪れたlocationをカウントしたリストを作ってください

- ステップ2: ユーザー名とカウント数のリストを表示してください

- ステップ3 その結果をもとに質問に答えて

- UNKNOWNも島の一つとしてカウントして

#出力

- 次の形式で出力してください

- [ユーザー名] (回数)

- プログラミングコードは表示しないでください

#データの説明

以下のCSVデータは、バーチャルスペースで1分毎にユーザーが滞在したlocation(島)の名前が記録されています

#データ:

ところが、どうしても結果が不安定で、ユーザーの列挙で1人抜けていたり、全く間違った回答をするケースもあります。様々なプロンプト手法を試す一方で、次のような単純なプロンプトがベストであるケースもあります。

#出力

- プログラミングコードは表示しないで、質問に回答してください。

#データ 

モデル次第でかなり正確な分析が可能

プロンプトの調整に加え、コードインタープリター(Code Interpreter)というPythonコードを裏で生成・実行することで、自由質問に対してもかなり正確な回答が得られることが分かりました。例えば次のような質問です。

  • 「●●さんはテーマパーク島の後、どこに行きましたか」

  • 「●●さんがおたすけ&しつもん島に行った時、だれかクルーが対応しましたか」

  • 「●●さんが●●島で一番長い時間を過ごしたユーザーはだれですか」

  • 「自習島にいた後でおたすけ&しつもん島に行った人はいますか」

 こうした質問に対して、生データからAIが回答してくれるのであれば、見守りをするスタッフはいつでも好きな質問をして実態を把握することができます。ただし、問題は正確性と一貫性です。GPT4oではかなりのプロンプト調整が必要であった一方、最新のo1-previewモデルなどを実験的に使ってみると単純なプロンプトでも正確に回答を出してくるケースが多く、今後生成AIモデルのパフォーマンスが向上するにつれて、データをそのままAIが分析するというアプローチの実現性が高まることがわかりました。

プロトタイプで作成したAI InishgtsのUI

さらなるデータ収集が必要

今回は仮想空間での位置と滞在時間だけをもとに子どもたちの動きを把握する試みでしたが、学習行動を理解するためにはもっと多くの情報(シグナル)が必要です。例えば、「作品発表で画面共有をした」、「リアクションボタンを押した」、「マイクをオンにしてしゃべった」など、他の参加者との接点が増え、空間活動により深く参加するようになったかなどは、オンライン上での学習行動を把握する上ではとても大切なデータです。包括的に子どもの学習力を計測するには、こうした多様なシグナルが収集できる仮想空間環境が必要であるとう課題が見えてきました。

One Code Club
Kids Code Clubは放課後プログラミングクラブなどを通じてあらゆる子どもたちにデジタル体験・学習の機会を提供するため、教材システムや学習管理システムなどを導入している。米国で立ちあげたOne Code Clubというプロジェクトでは国内外でコンピューターサイエンスを学ぶ学生やプロボノの方に一部の開発プロジェクトを解放し、インターンシップ形式でリアルな開発を経験してもらっている。これまでのプロジェクトについてはこちらをご覧ください。お問い合わせはKids Code Club 板垣 (mitagaki@kidscodeclub.jp) までご連絡ください。

この記事を拡げて応援する

関連記事

keyboard_arrow_left

一覧へもどる

HOMEkeyboard_arrow_rightKCCジャーナルkeyboard_arrow_right

Kids Code Club 2024年秋の技術開発インターンシッププロジェクト

わくわくするテクノロジー体験を
すべての子どもたちへ

子どもたちの笑顔と希望をつくるために、まずはできることから一緒にはじめてみませんか?

寄付で応援する

keyboard_arrow_right