京都光華大学 短期大学部 ライフデザイン学科 ニュース Kerasは大人のScratch?-小学生も生成AI作りへ!?

ニュース

専門分野コラム

Kerasは大人のScratch?-小学生も生成AI作りへ!?

ライフデザイン学科教員の相場浩和です。

以前のこのコラムでScratchを用いたゲームつくりの授業について取り上げました。授業の大きなテーマはSDGsなのですが、ゲーム作りがどうSDGsにつながるのかについてはこちらのコラムを参考にしてください。

Scratchでは、命令が書いてあるブロックを積み上げることでプログラムを作ります。その簡単な操作のイメージからか、Scratchを使ったことがない人は「Scratchは小学生用なんでしょう?本格的な「プログラミング言語」ではなく、きっとできることは限られているに違いない」と思いがちなようです。一度使った人はわかるようにそんなことはありません。たくさんの種類のブロックが用意されており、制御用ブロックも十分すぎるほどあります。新しくブロックを定義するためのブロック(昔のプログラミングの言葉だとサブルーチンを作るためのブロック)もあり、Scratchでほとんどのプログラムは作れると言っていいでしょう。

ブロックを積み重ねてプログラムを作るということは、むしろ理にかなっています。プログラムというのは原則、命令を順番に並べたものですから。ループ構造も1つのブロックとして表現できます(ほかのブロックと少し形は異なりますが)。1つ補足すると、Scratchは大枠としてイベント駆動型というプログラミングスタイルを持っているということです。様々なキャラクターなどのオブジェクトに対し、様々なイベントが起った時(「緑の旗が押されたとき」や「〇〇のメッセージを受け取ったとき」など)の動作を、ブロックを積み重ねて作るわけです。

今、プログラミングの1つの最先端分野はディープラーニングニューラルネットによる機械学習でしょうか。実はそこまでいくと、プログラミングとブロックの積み重ねの親和性がさらに強まります。ディープラーニングは、入力ブロック(ニューラルネットではブロックをレイヤーと呼びます)で用意されたデータを、次々と隠れ層のブロックを通して加工しながら、最終的に出力ブロックから出力データが出てくるという構造をしています。これってまさにブロックの積み重ねではないですか。実際、Kerasという機械学習用のライブラリがあるのですが、このKerasを使ってAIをプログラミングするのはScratchでプログラミングをするのと非常に似ています。ChatGPTによるKerasの説明は次の通りです。

Q. Kerasをひとことで言うと?
A. Kerasは「ディープラーニングを簡単にしてくれる道具」です。すごい難しい計算は全部裏でやってくれるので人間は「どんなモデルを作りたいか」だけ書けばよい。身近な例でいうとレゴでロボットを組み立てる感じ。レゴブロックを組み立てるみたいに部品(層)を積むだけでモデルが作れてしまいます。

いいですか、念のために言います。これは最先端のディープラーニングのプログラミングスタイルの説明ですよ。しかし、Scratchの説明と全く同じですよね。

そういう意味で「Kerasは大人のScratch」と言えるかもしれません。Kerasのライブラリの整備は非常に急速に進んでいます。例えばトランスフォーマーやそのコアアルゴリズムである「注意機構」は少し前までは論文で読んで勉強するものでした。それが今ではKeraのレゴブロックとして用意されています。これは何を意味するかというと、(誰でも)(簡単に)生成AIが作れるということです。プログラムを書くのに1時間もかからず、用意した学習用データでモデルを数10分学習させるとあなただけのテキスト生成モデルができあがるはずです。ただし、そのモデルで生成されたテキストを見ると一見すごそうだけれどよく見ると内容はでたらめというもののはずです。それでも一応はテキスト生成のAIです。小学生がScratchでゲームを作ってプログラミング思考を学ぶように、大人はKerasで生成AIを作って、生成AIというのは魔法ではなく単なるプログラムに過ぎないということを実感をもって学ぶことができます。これはとても大切なことにように思います。

いや、生成AI作りという楽しみを大人だけのものにしておくのはもったいない!こういうのはどうでしょうか。Scratchのブロックのサブセットとして生成AI作りに必要なブロックを用意するのです。こうすれば小学生もこれを用いて生成AI作りを体験し、生成AIの単なるプログラムだということを実感できます。・・・実は私が知らないだけでこのようなものがすでにできあがっているのかもしれませんが・・・。


いずれScratchでこんな風に生成AIを作れるように?