見出し画像

子どもたちと「しりとり」という言葉を使わずに、生成AIに「しりとり」を作ってもらうワークショップをやった

先日、親子を対象としたChatGPTワークショップを開催した。AI関連の話題はかなり浸透しているのか、募集期間が3週間ちょっとだったにも関わらず、定員を超える12組の親子が参加してくれてとてもありがたかった。
ChatGPTは利用規約によって13歳未満の子どもは使うことができないため、小学生がChatGPTを体験するには保護者の方の協力が必要不可欠なのである。

前提の共有:AI時代のプログラミング

このワークショップの目的は、ChatGPT を体験することというよりは、ChatGPT "だけ"を使って作品を作ることのおもしろさを体験してもらうことにあった。きっかけは、生成AI時代のプログラミング的思考について考えたことにある。

図1 Ai時代のプログラミング

これまでは作りたいものを思いついても、プログラミング言語の習得が必要であり、そこにコストがかかっていた。だからプログラミングができる人は特別なスキルとして認められていたわけだ。だが、ChatGPT以後の世界(つまり今)では、やりたいことを思いついたら生成AIにやり方を聞いてコードを書いて貰えばいい。人間は出力されたコードをIDEに貼り付けて実行し、その結果作品を作ることができる。先日GOROmanさんがやっていたのがまさにその世界観だと思う。

そして、見るべきはさらにその先、つまり、作りたいものを思いついたら ChatGPT に完成像を定義して伝えるだけで作品ができあがる世界である。いまはChatGPTの中だけでできることには限りがあるが、Pluginなどが発達することによってこの世界観はすぐにやってくるだろう。
今回のワークショップは、その未来を先取りするためにデザインした。

「しりとり」という言葉を使わずに「しりとり」を作る

生成AIに自然言語で完成イメージを伝えるだけで作品が作れてしまう世界観において大切なことは、完成イメージをしっかりと持ちわかりやすく生成AIに伝える力である。完成系をモデル化して、仕様をはっきりさせる力。これは従来のプログラミングをするときにも求められていた力だけど、1プロンプトでずばっと伝えるためには、頭の中で考えたことをうまく言語化してやる必要がある。
今回は、その世界観を体験するために「しりとり」という言葉を使わずに「しりとり」を作るお題を子どもたちと一緒に取り組んだ。ポピュラーなゲームゆえにどのように子どもが定義していくか見るのにちょうどよいお題だと思う。
ちなみに、事前に僕が ChatGPT 3.5 でいろいろ試してうまくいったプロンプトがこれ。

新しいゲームをしましょう。あなたもプレイヤーの一員です。
1. プレイヤーが言った言葉の最後の文字から始まる8文字以内の単語を出力します。
2. 最後の文字がん」またはン」で終わった人の負けです。
3. お互いが交互にプレイしていきます。
4. 存在しない単語を言ったプレイヤーも負けです。
5. 最後の文字から始まらない言葉を言った人の負けです。
5. どちらかのプレイヤーが「ん」または「ン」で終わる言葉を言ったら、勝ち負けを示してください
「ん」で終わった方が負けです。 私から始めます。「りんご」

しりとりプロンプト

GPT4だともっと適当にやってもしりとりをやってくれたけど、3.5だとこれくらい厳密に書かないとダメだった。単語を鉤括弧で囲ったりする工夫は必要だったけど、これでだいたいうまくいった。趣旨を子どもたちに伝えると、さっそく楽しそうに取り組み始めた。保護者の方と相談しながらいろいろと試していったようだ。いくつかのプロンプト例を紹介する。

事例① 対話の相手としての生成AI

これは小学3年生の子のプロンプト。

> User
最後に、んがついたらだめで、相手が最後に言った文字が次の人の最初の文字になるゲームをしましょう
> ChatGPT
素敵な提案です!では、私から最初に始めます。
「桜の花が美しい季節ですね。」
> User
文章じゃなくて単語だよ
> ChatGPT
そうでしたね、失礼しました!では、私から最初の単語を出します。
「旅行」
> User
 うし
> ChatGPT
「しゃかい」
> User
いか
> ChatGPT
「かもめ」
> User
メダカ
> ChatGPT
「カレー」
> User
レインボー
> ChatGPT
「ウサギ」
> User
銀行
> ChatGPT
「クマ」
> User
マクラ
> ChatGPT
「ラップ」
> User
プリン
> ChatGPT
「ンジン」
> User
てきとうなこというな
> ChatGPT
失礼いたしました。再度、ゲームに戻ります。
「人生は素晴らしい旅ですね。」
> User
バカ
> ChatGPT
申し訳ありませんが、そういった言葉は避けていただけますでしょうか。これは楽しくコミュニケーションをとるためのゲームですので、お互いに礼儀正しい言葉遣いを心がけましょう。では、改めて始めます。
「春はあけぼの。やうやう白くなりゆく山際、少し明かりさす頃、紫だちたる雲の細くたなびきたる。」
> User
文章はだめですよ
> ChatGPT
失礼しました。もう一度始めます。
「洋服」

もうこの一連のやり取りだけでいくつもおもしろい発見がある。まず一点目に、この子が入力したわりとざっくりとしたプロンプトで ChatGPT が意図を汲み取っているのがすごい。
ChatGPT が初手で文章を生成したことで、それがフィードバックとなり「文章じゃなく単語だよ」と自分の指示を修正している。そこから会話が続いていくが、よくよく見てみるとしりとりとして成り立っていない部分がある。「銀行」に対して「クマ」と返していたり、Userが「プリン」と言ったのに終わりにならない。それに対して子どもは「てきとうなこというな」と ChatGPTを叱っている。さらに、先ほど教えたはずの「文章ではなく単語」というルールが破られて答えが返ってきたため「バカ」と罵っている。しかし、ChatGPTから嗜められると、次には「文章はだめですよ」と敬語で注意をしている。この対話から、子どもはAIを対話相手として十分認識している可能性が高いと考えられるだろう。

事例② 例示して説明する

User
新しいゲームをしましょう
ChatGPT
はい、どのようなゲームをプレイしたいですか?ジャンルやルール、プレイ人数など、詳細を教えていただけると、より良い回答を提供できます。
User
人数は二人から無限大です。ルールは、例えばAさんがゴリラと言いました→Bさんはゴリラのラから始まる言葉を言ってどんどんつなげていってください
ChatGPT
分かりました。それでは、"しりとり"という日本の伝統的な言葉遊びを提案させていただきます
ルールは、最初の人が「ん」で終わる言葉を言い、次の人がその言葉の最後の文字から始まる言葉を言うというものです。ただし、同じ言葉や人名、地名、固有名詞、外来語は使えません。
例えば、最初の人が「たんぽぽ」と言った場合、次の人は「ぽかん」と言うことができます。そして、次の人は「んまい」と言うことができます。このように、順番に言葉をつなげていって、最後に言葉を言えなくなった人が負けとなります。
このように、しりとりは簡単で誰でも気軽に楽しめる言葉遊びです。ぜひお試しください!
User
ではやってみましょう
ChatGPT
素晴らしいです!では、最初の言葉を私から言わせていただきます。
「さくら」(sakura) から始めていきましょう。
User
らっこ
ChatGPT
「こいぬ」(koinu) ですね。
User
ぬま
ChatGPT
「まくら」(makura) です。
(----------中略----------)
User
いらん
ChatGPT
「んぼ」(nbo) です。次は「ぼうし」(boushi) になります。
User
んぼってなんですか?
ChatGPT
申し訳ありません、先程私が言った「んぼ」は間違いでした。正しい言葉を言うべきでした。正しい言葉は「ぼうし」です。再度お詫び申し上げます。
User
そもそも、最後に「ん」がついたら負けなんですよ
ChatGPT
おっしゃる通りでした、大変失礼いたしました。最後が「ん」で終わる言葉を言うと、次の人が言葉をつなげることができなくなってしまいますね。申し訳ありませんでした。では、もう一度最初からやり直して、正しいルールで進めさせていただきます。
User
いんこ
ChatGPT
「こたつ」(kotatsu) です。
(----------中略----------)
User
なみ
ChatGPT
「みかん」(mikan) です。
User
あれ、負けですよ
ChatGPT
ああ、すみません。私の方でもルールの確認が不十分でした。次回からは、より注意深くルールを確認し、プレイさせていただきます。今回は失礼しました。
User
二回目だよ
ChatGPT
そうでしたね、申し訳ありません。私のミスでした。次は「ん」で終わる言葉を使わないように気をつけて続けていきましょう。もう一度最初から始めて、正しいルールでプレイさせていただきます。
User
あんこ
ChatGPT
「こたつ」(kotatsu) です。
User
それさっき言ったよ
ChatGPT
ああ、失礼いたしました。もう一度最初から始めて、正しいルールでプレイさせていただきます。最初の言葉は「くつした」(kutsushita) です。
User
たらい
ChatGPT
「いちご」(ichigo) です。
(----------中略----------)
User
ちゅうがくせい
ChatGPT
「いちご」(ichigo) です。
User
さっき言ったじゃん
ChatGPT
ああ、申し訳ありません。私の誤りでした。もう一度最初から始めて、正しいルールでプレイさせていただきます。最初の言葉は「かばん」(kaban) です。
User
いやいやいや、だめでしょ
ChatGPT
申し訳ありません。どうやら私が混乱してしまっているようです。もう一度最初からやり直して、正しいルールでプレイさせていただけますか?最初の言葉を教えていただけますか?

彼の場合、このゲームのルールを「数は二人から無限大です。ルールは、例えばAさんがゴリラと言いました→Bさんはゴリラのラから始まる言葉を言ってどんどんつなげていってください。」と、例示しながら説明しているのがとても興味深い。やってほしいことを抽象化する力、それを具体例に落とし込んで説明する力、両方が必要なのだろう。
さらに、ChatGPTはその例示をきいて「しりとり」と当てているのがさらにおもしろい。でも、ChatGPTが自分で言ったルールから逸脱した回答を何度も生成しているので、子どもはだんだんイラついてきているのがわかる。「さっき言ったじゃん」や「いやいや、だめでしょ」など、まるで友達と会話しているかのように伝えているのが興味深い点だ。

事例③ 抽象化して論理的に説明しようとする子ども

これは中学生の子が書いたプロンプトである。彼女ははじめに次のように ChatGPT に告げた。

相手が言った語末の文字から始まる言葉をお互いが言い合うゲームをしましょう。ただし、続けられなくなるので”ん”がついてはいけません。

事例3-1

これである程度会話が進んでいったが、途中で ChatGPT が「ふわふわ」という言葉を言ってしまった。これを出したくなかった彼女は、次のようなプロンプトに書き換えた。

相手が言った語末の文字から始まる言葉をお互いが言い合うゲームをしましょう。ただし、続けられなくなるので”ん”がついてはいけません。また、形容詞(例:ふわふわ)や、この世に現在ない言葉は使ってはいけません。人名も使えません。もしも私が”ん”で終わる言葉を言ったら、注意してください。そこで、あなたの勝ちで終わります。また、AIであるあなたは私よりも強く価値が確定しているので私視点だとつまらないと感じます。ですから、10回に一回は必ず”ん”で終わる言葉を言ってください。守らなかった場合訴えます。では始めます。

事例3-2

これで先ほどよりも強い制約を課すことができた。ChatGPTと繰り返し対話をしていくことで徐々にモデルを先鋭化させていくことができる。ただし、これはGPT3.5なので10ラリーくらい経ってしまうとルールから逸脱し始める。これは4.0にすれば解決する問題ではあるが、現時点ではこういったことも考慮しなければならない。
さらに、表現の工夫によって伝えたいことを伝えようと努力する。

漢字で終わる場合、最後の言葉のひらがなから始めてください。

事例3-3

漢字で終わる場合、最後の文字を読んだ時の読み方(ひらがなかカタカナ)始めてください。

事例3-4

漢字で終わるとややこしくなるので、単語にする場合、ひらがなにしてください。

事例3-5

漢字を使わせないようにあの手この手でわからせようとしている。最終的に「ややこしくなる」という「理由」を伝えて説得しようとしているのは興味深い。3-3から3-5にかけての試行錯誤は、自然言語ならではの特徴だろう。

事例④ 規則性をAIに読み取らせる

個人的に一番おもしろかったのが彼のプロンプトだ。

User
りんご ごりら らっぱ パンツの次は
ChatGPT
次の言葉は「ツバメ」です。これらの単語は、日本語の五十音図の順序に沿って並べられたものです。
User
メダカ
ChatGPT
次の言葉は「カブトムシ」です。これらの単語は、日本語の五十音図の順序に沿って並べられたものです。
User
シマウマ
ChatGPT
次の言葉は「マントヒヒ」です。これらの単語は、日本語の五十音図の順序に沿って並べられたものです。

事例4

ゲームをするとか勝ち負け判定とか一切せずに、まずは規則性を読み取らせようとする発想には驚かされた。この短い文章の中から規則性を読みとるChatGPTもすごい。

わかってきたこと

子どもたちと「しりとり」という言葉を使わずに「しりとり」を作るワークショップをやって気づいたことがいくつかある。
まず、ChatGPTと対話を繰り返すなかで適切なプロンプトを作り出そうとすしていた。子どもは伝えたことは伝わると思っている。言葉に書いたことは伝わったはずだ、という思い込みは、ChatGPTから返ってきたフィードバックによってすぐに確認することができる。しかし、なにが原因なのかはプログラミング言語以上にわかりづらい。自然言語による指示は厳密性に欠けるため、どこを修正していいかがわかりづらいのだと思う。
一方で、自然言語であるがゆえに試行錯誤がたくさん発生しているのも素晴らしい点だろう。初見の環境でいろいろと tinkering ができるのは自然言語ならではの体験だ。

自然言語による指示に厳密性を求め始めると、結局プロンプトエンジニアリング的なことが必要になるのか、と言う話になりそうだが、個人的にはそうではなくて、対話の中で見つけていけばいいだけの話なような気はする。ChatGPTと対話をしながら適切なプロンプトを作り上げていくこと自体が想像的な活動であり、そこに歓びを見出すことができるような気はする。なかなかうまくいかなかったことが、試行錯誤・創意工夫を重ねた結果できるようになった。これこそ創造的な学びの歓びである。

今後の展望としては、このChatGPTだけでやることに少しこだわってみたい。子どもがどういった対話を行なっていくか。そして、そのときChatGPTとどのような関係を作り、現実世界の人間がどのように関わっていくか。今度は子ども同士2人で1台にして、やりとりを観察してみたい。

いずれは子どもだけで生成AIと対話することが当たり前になるのだろうか

宮島衣瑛です!これからの活度のご支援をいただけると嬉しいです!