GPTのAPIを使う

自然言語AIであるChatGPTのベースとしてGPT-4もリリースされて、一般の人々でもサービスとして利用できるようになった。日々、新しいサービスが登場している。

年内には私たちが触れているオフィスソフトやネットサービスにAI機能が搭載されているのは珍しくない状況が揃うだろう。使うかどうかは使途に応じて変わってくると思うけれど。

ニュースばかり追いかけても面白くはないので、私もAPIを触ってみることにする。

まずは初歩的にPDFファイルを要約させることから挑戦してみた。

試行錯誤の末に出来上がったのがこちら。

https://www.con3.com/pdf/

読み込んだPDFファイルの内容を、OpenAIに登録して発行してもらったAPIキーを利用して、相手に投げて、要約文を返してもらう。シンプルにそういうWebページである。

実際にはもっと簡素な画面でつくったのだが、公開するとなるとページのお化粧をしたくなって、個人的に便利に使っているBootstrap Studioで作り直してみた。

OpenAIへの登録とAPIキーの発行が必要なので、便利とは言い難い。PDFなどの手持ち情報をもとにAIチャットを実現するサービスは立派なものがたくさんあるし、もはやブラウザでPDFを表示させてチャットで要約させることもできるようになってきたので、自作するメリットはお勉強のためくらい。

それでも、実際にAPIを使ってみる経験は、ニュースを追うだけでは曖昧な部分を知るよい機会となる。

高等学校の情報Ⅰ・Ⅱの内容を考えると、この程度のアプリ開発を高校生で理解できるようになる時代になったのだといえる。少なくとも、この分野のAIアシスタントは飛躍的に実用的になってきたのだから、あと何年かすれば、AIとペアプログラミングしている高校生の姿を学校でみることもできるだろう。

今回つくった要約ツールは、PDFの全文を細切れにして、順にAPIに投げることで、細切れに返ってくる要約を繋ぎ合わせて表示する形になっている。だから通して読むときの繋がりはあまりよくない。

この問題に対処した方法は、すでに先達の皆さんがいろいろ提示しているので、次の機会にそれらに挑戦してみたいと考えている。自分で再現してみたいという気持ちを大事にしたい。

もともとの目的は、自分の授業の見直しにあたって、新しい教科書の内容を要約させてみたいと思ったからだった。

とりあえず要約文を得ることができたので、第一段階は達成。それをもとに本文も精査しながら、授業の資料や課題を捻り出すとしよう。

また余裕が出来たら、課題生成ツールとか、穴埋め問題作成ツールとか、つくってみよう。

Don’t ask! Dooooo!

AI関連のWebページを開いたままのブラウザ・ウインドウがディスプレイを埋め尽くしていて、そのまま頭の中の散らかりようにつながっている。

ChatGPTは相変わらず高トラフックな状況にあり、昨夜はとうとうWebUI側は完全に落ちた。

ニュースによると実はチャット履歴の表示関連でバグがあったらしく、落ちたというか落としたというか、チャットの復旧後も履歴に関しては作業中になっていた。

ChatGPTフィーバーでいろんなサービスを開発したり、個人個人のタスク処理に早々に導入している人達にとって、ChatGPTや(今回は直接落ちなかったが)そのAPIが何かしらの障害に陥った場合、仕事や作業が止まってしまうことになる。今回の一件は「ChartGPT依存状態」に関して考える機会にもなったという感じだ。

東京大学の松尾先生のインタビュー記事の新着。

お忙しいなかで精力的に科学コミュニケーション活動にも対応されていて凄い。ただ、インタビューの質問がわりと似たようなものになりつつあって、ご本人も内心うんざりなんじゃないかと拝察。

「プログラミング言語じゃなくて、あなたも使ってる自然言語でやれるんだから、手を動かしてみたらいいのよ。Don’t ask! Doooooo!」みたいな。

来年度の授業を見直すにあたって、新しいテキストを選び直して再構築を試みているけれど、この際、授業のリソースはChatGPTに生成してもらおうと思った。

そのためにはAIにテキストを読み込ませて、それに関連したチャットや要約をさせたい。

PDFを読み込めるAIサービスはいくつかある。ChatPDFとか、Explainpapeとか、DocsBot AIといったものがある。

これらを利用すれば、テキストのPDFを読み込ませ、あれこれチャットしたり、要約させたり、作問させることで、授業で使えるリソースが得られるという寸法である。

ところが、どれも有料だ。無料枠はあっという間に消費される。

根が貧乏臭いので「自分でつくってみよう」となった。すでにOpenAIには年貢を納め始めているのだ。その中でやってしまいたい。

私も恥ずかしげもなくChatGPTにAsk!して、プロトタイプを作成してもらう。

プログラムが書きやすいお願いの仕方でプロンプトを作成。

あとはお約束の展開。

HTMLファイルとJSファイルが生成され、サーバーに置いてみると確かに動く。さすがGPT。

でもエラーが出て、結果は出ない。動くといっても正常には動かない。

2021年までの情報だと最新のAPI仕様が反映されていないし、ライブラリの参照先は通用しない。トークンの制限も引っかかっている。

最初からGPT4に相談してもよかったのだけど、メッセージ数を消費して、ここぞというときに助けてもらえないのは怖いので、しばしGPT3.5を友に試行錯誤して、最後にGPT4に仕上げを仰いだ。

それらしく動く原型はできた。

小学校の学習指導要領を総則を部分的に読み込ませると、要約文が返ってきた。ちなみに、同じPDFでも毎回要約文が変わる。

しかし、学習指導要領全文を入力するということはできていない。これには工夫が必要だ。

こちらのお知恵を借りようと思っている。

上手くいったら、あとはプロンプトエンジニアリングの世界になりそうだ。

ちなみに、学習指導要領に関しては、DocsBotを利用して全文を対象としたAIチャットボットをデジ庁の稲田さんが作成してくれている。

学習指導要領についてチャットできるのが嬉しいかどうかといわれると、現職の先生達よりは、どちらかというと教員養成在籍の学生達が利用すると便利かも知れない。教員採用試験の対策用問題を無限に生成できる。

というか、来年度以降は教育委員会の問題作成者がこれを使っていそうである。

確かにお金を払えば、このサービスで済むなぁ…、どうしようか。

言葉のガチャ

AIチャットは学習利用にも可能性

昨年11月末にChatGPTが公開され、深層学習技術が牽引する人工知能(AI)フィーバーが続いています。

そして先日はChatGPTがベースとしている言語モデルのバージョンアップ版GPT-4がリリースされ、より尤もらしい返答をするようになったことが話題です。

このタイミングで、GPT-4搭載のサービスも発表され、教育分野ではカーン・アカデミーがチューター・チャットボットKhanmigo(カーミーゴ)を試験中であることが公表されました。

大規模言語モデルをベースとしたAIチャット技術を教育分野に導入する具体的な一つの姿を見せてくれます。

個々人に向けて最適化された学習支援にAIを用いる場面が、単に最適な教材や問題の提示といった場面だけでなく、教材内容に関する質疑応答や問題に取り組む過程のアシストにも広がっていく可能性が示唆されているというわけです。

確かにGPT-4はかなり賢く返答しているように見えます。


言語モデルとは言葉のガチャ

言語モデルをどのように例えるとその特性を説明しやすいだろうかと、ぼんやり考えています。

言語モデルから生成される言葉や文章の危うさを印象づけるために…

ChatGPTのベースとなっているGPTという大規模言語モデル(LLM)は、世に出回る大量のテキストデータを学習データとして作られた言葉の「ガチャ」である。

と例えてみてはどうだろうと考えています。

希望するものが出てくるとは限らないという点がガチャに似ていて、何が飛び出す変わらないという不確定性を含められると思ったからです。

ただ、言語モデルをガチャに例えるのは、すぐに苦しくなります。

たとえば、ガチャの場合、トイ(おもちゃ)がカプセルに閉じこめられて用意されているので、取り出されるトイそのものは保証されたものなのに対して、言語モデルの場合、言葉が「トークン」という単位に分解されて存在するため、拾い出したトークンから組み立てられた言葉の内容までは保証されてないという違い。

推論によって言葉の表現が正しく組み立てられていても、内容までは保証されていないのだということを理解してもらいたいのにガチャの例えではその部分はうまく対比的に説明できません。

そもそも言語モデルはトークンを膨大な次元の数値にもとづいて配置(埋め込み)して、その配置の距離的関係を意味の関係性として処理することができるという前提もガチャではまったく表わせていません。

というわけで「言語モデルは言葉のガチャである」というのは、かなり大ざっぱな例えでしかないと言わざるを得ません。

より特定のタスク(プログラムコードを生成する)においては、かなり確実な結果を返してくる場面もあるため、その点でもますます例えとして難しくなります。

AIはタスクに応じて様々な手法やモデルが存在しますし、私たちが利用できているサービスなどは素の言語モデルを晒して使っているわけではなく、いろんなチューニングや評価機構、補完機能を組み合わせて構成されたものです。単純な例えで全てが賄えるわけもありません。

賢く見えるし、正しい情報を提供しているようにも見えるし、正しい情報であることもほとんどだろうけれども、それでも、それは「ガチャ」くらいの程度のものだというまなざしから始めた方が、いろいろと誤解しなくて済むのではないかと思います。

パズル的思考

かつて『パズラー』という総合パズル雑誌が発行されていました。

1983年に創刊、2000年に休刊し、現在はその名を発行元であった世界文化社が運営する「インターネットパズラー」というパズル関係出版物の情報発信サイトで引き継いでいるのみです。

比較的大きな書店には様々なタイプのパズル雑誌が並ぶコーナーが設けられているので、パズル誌のジャンル自体は現在も健在ですが、総合パズル誌は老舗の『パズル通信ニコリ』(季刊)を残すのみで、ほとんどは細分化された雑誌です。

パズル通信ニコリは1980年に創刊された日本初のパズル雑誌であり、パズラーは後発雑誌ということになります。しかし、発行元のニコリが会社を立ち上げるのは1983年で、流通は大手取り次ぎではなく地方・小出版流通センターを利用しているため、場所によっては入手性が良くありませんでした。そのため、全国書店で目にしやすかったのはパズラーの方であり、それが日本初のパズル雑誌はどっちだ論争の火種の原因にもなりました。

パズルといっても多種多様なタイプがあり、その中からあるタイプのパズルがヒットを飛ばし人気が出ると、そのタイプに特化した特集雑誌や別冊ムックなどが発行されていきました。そうやって、人気のあるタイプのものを集中的に掲載するタイプの出版物が増加していき、やがて「総合誌」の立場が少しずつ危うくなったのです。

少数流通で地道に発行を続けるニコリと、全国書店に流通させてきたパズラーの明暗は、ここではっきりと分かれていきます。

そもそも両誌の編集コンセプトも、ゆる楽しいニコリと、マニアックなパズラーといった感じでかなり異なるものでした。また、パズラーの方は懸賞パズルやタイアップパズルなど、いわゆる80年代のミーハー気分を伴った勢いを背に受けていた雑誌の一つです。

パズラー全盛期はそうした側面が楽しかったわけですが、そのような盛り上がりには、大概、下り坂が待ち受けているもの。勢いがいつかのリニューアルで途切れてしまったことが、パズラーを休刊に向かわせました。

様々なパズルとの出合いを提供する総合誌としてだけでなく、パズルという素材を武器に異なるジャンルやテーマ、別の界隈の人々を引き込んで賑やかに展開していた全盛期のパズラーは、本当に楽しい雑誌でした。

そんなパズラーを創刊時から支えていた人々の中に、「菫工房」というパズル作家集団がありました。

その主宰とも言うべき人物が超有名パズル作家の西尾徹也さんです。その西尾さんが新刊を出したというので買いました。

所々に挿し込まれた西尾さんのコラムや「パズル年表」をちょこちょこと読んで楽しみました。西尾さんはパズラー側の人なので、年表も若干パズラー寄りです。^_^;

一方、ニコリ側についても、昨年(2022年)のうちにこんな書籍が発行されていました。

ニコリの創刊メンバーで、パズル「数独」の父として世界でも知られている鍛冶真起さんが2021年8月に逝去されていたのです。その鍛冶さんについてかかれた本です。

西尾さんと鍛冶さんは、ともに同じ数字パズルを日本に持ち込み、それぞれの呼び方を付けて普及に尽力した関係にあります。方やパズラー側の「ナンバープレース」(ナンプレ)、方やニコリ側の「数字は独身に限る」(数独)というわけで、二誌のライバル関係は、こういうところにも表れていました。

そんなお二人に関する書籍が出たこのタイミングは、日本のパズルを振りかえってみる、よい機会なのではないかと思いました。

私個人は、中学校の数学の先生がパズル好きな方で、クラブ活動で雑誌パズラーや米国のパズル作家サム・ロイドのパズルを紹介してもらったことをきっかけに関心を持ちました。

当時はメイズを解いたり作成したり、ウィットに富んだ謎解きパズルを楽しんだりしました。パズル経験はお遊び程度で、クロスワードや数独などをやり込んだりもしない、かなりライトなパズル愛好家です。

それでも謎解きものは、いまでもワクワクする感覚がわきますし、ロジカルなパズルも興味があります。おそらく、プログラミングに興味があるのもそうしたパズルへの興味が下敷きにあったからだろうと思います。

プログラミングはChatGPTあたりに聞けばかなり助けてくれるようになったので、この機会に、もう一度パズルへの関心を高めて、楽しんでみようかなと思っているところです。

ちなみにパズル的思考なんて言葉はありませんが、もしも推論課題を解く経験が人間にとって有効なのであれば、学校でもっとパズルに触れる機会を増やしてもいいかも知れません。それだったらプログラミングとかに抵抗を抱く先生方にも、だいぶ柔らかく受け止めてもらえるんじゃないかと思ったり。

いまは無きパズラーに思いをはせながら、パズル通信ニコリを手に入れたので、時間があったらちびちび解いてみようと思います。

ICカードでおかいもの(親子教室)

ICカードを読み取るScratch3.0拡張機能を利用して、電子マネーのお買い物活動をするワークショップを徳島新聞社さんと阿波銀行さんのご協力のもとで行ないました。

ゼミ生達にも企画と当日の運営に参加してもらいながら、午前と午後に合計20組40名の親子と、お店屋さん準備とICカードづくりをして、参加者同士のお店でお買い物する活動を楽しみました。

ご参加いただいた皆さんありがとうございます。

このテーマでの教室は過去3回ほどやってきたのですが、実は、参加者同士のお店に訪れてお買い物活動をするのは今回が初めて。

これまではコロナ禍の厳しい条件があったため、参加者同士が交わる活動は制限されていました。各自でお店やICカードはつくるけれど、お買い物も自分のお店で試して終わりでした。

今回、ようやく参加者同士の関わり合いも活動に取り込むことができました。

そして、会場も阿波銀行 本店営業部コワーキングスペースを特別にお借りして開催。本物の銀行で本物の銀行員さんに、おもちゃ電子マネーをチャージしてもらうという贅沢な洒落にもご協力いただきました。

あわぎん用スペシャル画面で雰囲気を盛り上げ

わ〜っと始まって、さ〜っと終わってしまうほど、盛りだくさんであっという間だったという教室。

エンディングで皆さんの様子や感想を伺うとわりと楽しかったという反応。こちらとしてはハラハラしながらでしたが、参加してくださった皆さんは楽しげな雰囲気で過ごされていました。

参加者同士の関わりがあったというのも、プラスに働いたのだろうなと思います。

おかげで、活動やプログラムの要改善点も見えてきたので、いつかまたの機会に向けてネタを仕込んでおこうと思います。

今回の活動で利用したのは、PaSoRichという改造Scratch3.0用拡張機能です。

SC2Scratchというサイトでご紹介しています。だれでも利用できます。ただし、ICカードリーダーは特定製品のみの対応になってしまっているので、そこが実施のハードルになっています。

今年中に新しいモデルに対応することや、他の方が開発したQRコード読み取りの拡張機能を使った場合の活動の仕方など、やってみたい方々への情報提供を充実させようと思っています。

それにしても、ずっとひきこもってばかりいたので、朝から夕方まで立ちっ放しのしゃべりっ放しの催事は久し振り。すっかりぐったりしてしまいましたので、ぐっすり休みます。