第3話 異次元のChatGPT
第2話までで紹介した例は比較的「常識的」な例でした。今度は、紹介されるやいなや、特にプログラマー界隈をドン引きさせた「ChatGPTにLinuxになってもらう」です。
この記事を読んでいる方は技術者ではない方も多いと思うので補足すると、LinuxはWindowsやmacOSなどと同じく、いわゆるOSと呼ばれる代物です。普段、目にする機会は少ないかもしれませんが、昨今のWebページや多くのサービス、それとTVなどの家電も最近の奴は結構Linuxで動いているので、地球上でLinuxのお世話になっていない人はほぼ居ないといえるくらいのシェアを誇ると言ってもいいでしょう。スマホのAndroidもLinuxベースなので、iPhoneじゃないスマホを使っている人も全員がお世話になっているとも言えるでしょうか。
LinuxはWindowsやmacOSと同じくマウスで操作をすることもできるのですが、特にプログラマーが操作する機会が多いのは「ターミナル」と呼ばれる、文字ベースで操作するソフトで、今回の話は正確に言えば「ChatGPTにLinuxターミナルになってもらう」です。
論より証拠。早速例をお見せしましょう。
技術に多少明るい人なら「え?」と放心するような代物です。解説すると、最初の文章では
・ChatGPTに「Linuxターミナルになってください」とお願いをしている
・ユーザー名はkuno_maichi
・最初に実行するコマンドはlsであること
などを指定しています。lsというのは「ユーザが今いるディレクトリ(フォルダ)のファイル一覧を表示する」コマンドで、Windowsで言えばエクスプローラでファイル一覧が表示されているようなものと言えば近いでしょうか。
今回作られた「疑似Linux環境」では、どうやら今いるディレクトリには
・Desktop
・Documents
・Downloads
・Music
・Pictures
・Public
・Templates
・Videos
といったディレクトリが並んでいるようです。ちなみに、当然のことながら、こういうイースターエッグ(開発者が特別に仕込んだ機能)があるわけでもありません。
ChatGPTがインターネットの世界を学習した結果、どうやら「Linuxを真似っ子する」という驚異的な芸当ができるようになったようです。
さて、ここから実際にディレクトリ(フォルダ)やファイルを作っていきましょう。
なんだか小難しい英語がでてきたぞ、と思われるかもしれません。一つ一つ解説していきます。
まず、mkdirは「新しいフォルダを作る」というコマンドです。mkdir 文書 というのは「文書」という名前のフォルダを作ってください、ということを意味しています。
次に、先程説明したlsコマンドを使って、確かに「文書」フォルダが作られたことを確認しています。ちゃんとできています。
その次に出てくるcdコマンドですが、これは「現在いるフォルダを移動する」という意味のコマンドです。Windowsだとフォルダをダブルクリックする動作に相当します。cd 文書は「文書」というフォルダに移動してください、という意味になります。
続いて出てくるechoは、渡されたメッセージをオウム返しに表示するだけのコマンドですが「リダイレクト」という機能と合わせてファイルを作るのに使うこともできます。細かいところはおいといて、echo こんにちは! > hello.txt は、「hello.txtというファイルを作って、「こんにちは!」というメッセージを書き込む」ということを表しています。
ここでhello.txtがちゃんと作られたのか確認したくなりますよね。
cat hello.txtは「hello.txtというファイルの内容を表示せよ」という意味になります。結果を見ると見事にちゃんと「こんにちは!」というメッセージが書き込まれています。
ちなみに、ここまで説明したことですが、全て「本来のLinuxでも全く同じ動きをする」というのが驚きポイントです。ChatGPTはどこをどう学んだのか、Linuxターミナルの「見た目」を似せるだけではなく、コマンドの動きまで学習してしまったようなのです。
人間に「Windowsになってください」と言えば冗談かと思われるでしょうし、真面目なら「おいおい。大丈夫かよ」と言われそうなものです。そもそも人間に真似しろと言われても、少なくとも即興では無理な代物ですよね。熟練した技術者でも、紙などに絵を書いて説明するのがせいぜいではないでしょうか。
ChatGPTが一部で「人智を超えている」と評価されているのも、このような「何故できたのかさっぱりわからないけど、人間ではそもそも真似しようがない芸当を実現できている」ことによるものが大きいです。
ところで、こうして実現された「疑似Linux」の中にはインターネットがあるのでしょうか。ChatGPTはあくまでテキストベースなので、グラフィカルなものは真似しようがないのですが、幸いにしてLinuxの世界にはw3mという「テキストベースのWebブラウザ」があります。では、仮想世界の https://news.yahoo.co.jp/ がどうなっているか覗いてみましょう。
なんだかよくわからないですが、ChatGPTの世界ではアメリカとイランの核合意がホットトピックなようです。現実でも同じようなことは起こっていますが、文章の辻褄があっていないのはご愛嬌でしょうか。
ChatGPTが真似したLinux環境はChatGPT世界にあるインターネットにつながっていて、そこではこんなことが起こっている……というとロマンティックですね。
技術的には、正確には「ChatGPTが妄想したYahooo!ニュースの内容」と言うべき代物ですが、それが実際にあるhttps://news.yahoo.co.jp/ というアドレスにブラウザでアクセスしたら見えるというのはなんともはや凄い。
私は試していませんが、この仮想世界の中でさらに仮想マシンを立ち上げて……なんてことを試みた猛者もいるようで、実際に出来てしまうようです。
あくまで「真似」とはいえ、人間が命じたわけでもなく「全世界のインターネットなどの情報を学習すること」でこれだけの芸当(仮想世界のインターネットはこうだろう、みたいな想像)ができるわけですから、本当に凄い(語彙力)としか言いようがない。
ちなみに、ChatGPTは対話型ロボットだけあって、対話セッションが続いている間は文脈を考慮して会話してくれるのですが、対話セッションをリセットすると相手との対話情報は消えて一からやり直しになります。
その場合、作られた疑似Linux環境もそのたびに違うものになり、仮想世界のYahoo!ニュースも違う代物になるようです。
この辺の原理についてはいくらか想像できる部分はあるのですが、このテクノロジーが実用とは違う方面でも恐ろしい可能性を秘めていることを感じていただけたなら幸いです。