1. にゃおのリテラシーを考えるラジオ
  2. #543 【技】PrologとSQL..
2023-05-03 07:58

#543 【技】PrologとSQLとChatGPTは似ているような気がする話

昔、Prologというプログラミング言語がありました。その後、SQLというデータベース検索言語が出てきました。

そして今、ChatGPTという機械学習の成果が話題になっています。

この3つがなんだか似ている感じがするのです。

それはどういうことでしょう?

にゃおの考える現代の基礎的なリテラシーは、ITをきちんと使えることが含まれます。

そのためにどのような問題があり、どう解決していったらよいか考えてみるPodcastです。

#508 【技】ChatGPTにトークシナリオを作ってもらった話

 https://open.spotify.com/episode/6Sw7gz33DosbprkO0tmkwq?si=ff1d52630f28439f

#500 【談】ノーマスク解禁!春メイクはこれで勝負!づめのメイク講座 

https://youtu.be/ctdrGhEwxfs

#421 【占】あけましておめでとうございます!2023を計画する
https://youtu.be/3pW_FyTXjzI

#400 【談】ポッドキャスト配信が400回目になったのでゲストをお招きしてトークします!
https://youtu.be/6mcXQwfHwVA

Davinci Resolveのダウンロードサイト
https://www.blackmagicdesign.com/jp/products/davinciresolve

Vrew
https://vrew.voyagerx.com/ja/

配信書き起こし
https://note.com/nchiba

twitter @nchiba

YouTube
https://www.youtube.com/@nyaos

「読書と編集」の活動は、
https://www.nyaos.net/

ストアカの「読書と編集のITリテラシー教室」は、
https://www.street-academy.com/steachers/468576?conversion_name=direct_message&tracking_code=62e788e6ff484f6d2952151bb9c955b4 

をご覧ください。

プロローグとは
にゃおのリテラシーを考えるラジオ、読書と編集の千葉直樹です。
このチャンネルでは、読書とIT時代の読み書きソロ版を中心に、様々な話をしています。
今回のタイトルは、「プロローグとSQLとChatGPTは似ているような気がする話」というものです。
水曜日は、ITを中心とした技術的な話をしています。
40年も前のことですが、人工知能界隈でプロローグという言語が流行ったことがありました。
当時の通産省が主導した第5世代コンピュータープロジェクトの中心的なプログラミング言語として選択された言語です。
パラダイムとしては論理プログラミングに分類されています。
一回述語論理に基づいてデータ間の関係を記述して、得べき命題を与えると、それが成立するかを自動的に探索するという動作をします。
と言っても何が何だかよくわからないですよね。僕も正直よくわかりません。
ただ、僕が10代の頃はちょうど第5世代コンピュータープロジェクトが動いていて、新しいプログラミングができる言語として興味を持っていたので、
所属していたゼミみたいなところの教授にねだって、処理系を買ってもらって触ってみていました。
この言語は原則としてアルゴリズムを記述しません。
プログラム的には事実という形でデータの関係を記述していくだけです。
もちろんデータを書いたら処理が動くなんてことはありません。処理が動くきっかけは質問することです。
AがBであることを証明してみて、みたいな感じのことを書くのです。
データの関係としてAはBであるという記述があれば、Trueが返って質問は証明されます。
データの関係を全て検証して、結果的にAはBであるということになったら、この場合もTrueが返って質問は証明されます。
全て検証して結果的にAはBであるということにならなかったら、Falseが返って質問は否定されます。
基本はこれだけです。
この証明過程はプロローグの処理系の中に内蔵されていて、自動的に動くわけですね。
ただこれだとプログラミング的に何が面白いのかさっぱりわかりません。
TrueかFalseが返ってくるだけですからね。
それだとあんまりなので、証明過程の途中で副作用的に文字を出したりはできて、それを無理やり使って、例えばカレンダーを出すみたいなことはできなくはありません。
が、そのためには論理式の形で謎の論理を書かなければならないのです。
副作用のために論理式を書くってそもそも変だし、だいたいそういうことをするために作られた言語じゃないのですよ。
SQLとリレーショナルデータベース
まあ、あえて言うと、自転車で飛行機を作ろうとする感じですかね。
今ならこの言語の価値はある程度わかります。
論理を書いて自動証明する用途に使うのならまあありです。
文字を並べてカレンダーを書いたり、絵を書いたりするのはそれができる言語を使えばいいですよね。
でも当時はそんなにリッチな世界ではありませんでした。
プロローグを買うだけでも数十万かかったのです。
用途別に違う言語を使うという理想が教科書には書かれていましたが、それはマリー・アントワネット級に贅沢なことでした。
だからある意味万能なプログラミング言語が求められていて、人工知能に使えそうなプロローグはそんな夢を叶えてくれるのではないかと思って夢破れたわけですね。
何年か経った頃、リデーショナルデータベースが実用になり始めたときに登場したのがSQLでした。
SQLが登場する前からリデーショナルデータベースというものはありましたが、
それを扱うための共通的なインターフェースはありませんでした。
リデーショナルデータベースは当時の常識的なハードウェア上ではCPUやメモリを爆食いするものでしたが、
ChatGPTについて
ハードウェアが実用レベルに達したのと同じくらいの時期にSQLという扱いやすい検索言語が登場したことで、
それまでのデータベースシステムを駆逐してしまうくらい普及しました。
SQLは自分が必要なデータの形を指定すると、データベースがデータを組み立てて返してくれますが、
原則としてどのようにデータを作り出すかをアルゴリズム的に書く必要はありません。
処理系が内部で戦略を立てて、効率的な方法でデータを組み立ててくれるのです。
ずいぶん圧倒になってからですが、この動作はそういえばプロローグに似ているんだなと思いました。
今考えるとプロローグは副作用的にデータベースのように使えるもので、
僕は卒業研究でまさにそういう見せ方でプロローグをプレゼンしたのでした。
このアルゴリズムは書かないけれど処理は動くというイメージは、今流行のChat GPTにもよく似ているなと思います。
もちろんそれらの仕組みは全く違っているのですが、
データと内蔵されたアルゴリズムから思った結果を引き出せるというのは何となく既視感があるのです。
そして思った結果を引き出すために遠回しにちょっと難しいことを書かなければならないというところもなんだか似ていて、
プロローグで思ったことをするためにした苦労をChat GPTではプロンプトの形で表現することになるわけで、
これはこれで苦労しそうだなぁと思うのです。
そして、記述の難しさと出力表現の自由度の低さがそれなりにバランスしたSQLというのは案外よくできているものなのだなぁとも思うのですね。
まあ僕が直感的に似ていると思っただけのことで、ほんの少し解像度を上げてみただけで全く違って見えるものではあるのですけれど、
そういう見方もあるかもね、という話をしてみようと思ったのでした。
今日はここまで。
ITリテラシーについて
読書と編集では、ITを特別なものではなく、常識的なリテラシーとして広める活動をしています。
ITリテラシーの基礎を学べるオンライン講座をやっています。
詳しい内容については概要欄のリンクから、または、読書と編集と検索して猫がトップページに出てくるホームページをご覧ください。
この配信の書き起こしをノートで連載しています。
概要欄にリンクがありますので、フォローいただけると嬉しいです。
今日もワクワクする日でありますように。
しばなおきでした。ではまた。
07:58

コメント

スクロール