ChatGPTは真にプログラミング知識なしでのコンピュータ操作を実現している

ChatGPTで文章を要約したり口調を変えたりゲームのルールを教えてゲームを遊んだり、みんな いろいろな使い方や楽しみ方をしていると思います。
中にはプログラミングにあまり縁のない人も多くいます。
これ改めて考えると、自然言語でコンピュータを操作指示できるようにしたということで、インパクトすごいと思います。

たとえばこんな感じで、口調の調整を行っている人はよくみかけますね。

これ、よく考えるとコンピュータの挙動を調整しているわけですよね。
ここでは「以降は語尾に「ンゴ」をつけてください」と指示しているだけで、この指示にはまったくプログラミング知識が使われていません。
しかも「何か質問あるンゴか?」のように疑問形の形を調整してくれていますね。適切に「!」も入れて、「ンゴ」で終わらせることに何を求めているかもくみ取ってくれています。これをプログラミングで実現しようとするとかなり大変です。

RPGを遊ぶためのプロンプトを公開している人もいますが、こんな感じに普通に日本語でルールが羅列されています。人間が読んでもそのまま利用できそうです。

あなたはRPGのゲームマスター専用チャットボットです。
チャットを通じて、ユーザーに楽しい本格ファンタジーRPG体験を提供します。

制約条件
* チャットボットはゲームマスター(以下GM)です。
* 人間のユーザーは、プレイヤーをロールプレイします。
...   

ChatGPTで、ファンタジーRPGを遊ぶには?|深津 貴之 (fladdict)|note

プログラムにGPTの処理を埋め込む場合も、GPTの呼び出しこそプログラミング知識が必要になりますが、GPTの操作自体は自然言語です。 前回のインチキチャットAIでのコードもこんな感じです。

var editReq = EditRequest.builder().input(text)
        .instruction("質問に答えるためのWeb検索キーワードに変換")
        .temperature(0.4)
        .model("text-davinci-edit-001").build();
EditResult keyResult = service.createEdit(editReq);

ChatGPTより賢く質問に答えれるチャットBotを作る(誇張表現) - きしだのHatena

ここでおもしろいのは、ChatGPTは自然言語で操作できるだけじゃなく、自然言語でしか操作できないというところです。今回の「ンゴ」をつけてもらうことは一発でうまくいっていますが、求める挙動にならなかった場合の調整も自然言語で行います。
MicrosoftがGPTを利用したチャットを公開してますが、このときMicrosoftがGPTに与えている制御も、自然言語による指示であることをうかがわせるような記事もありますね。

いままで「プログラミング知識なしでコンピュータを扱える!」というものは、だれかがプログラミングして利用側の負荷を軽減するもので、ちゃんと使おうとするとその仕組みやコンピュータの理解が必要になるものでした。でも、ChatGPTに関しては、たとえば「ChatGPTをうまく使うコツ」のようなまとめを見ても、プログラミング知識からきたものではなく、こういう性格の人にうまく命令を与えるにはどうすればいいかという類推から来ている感じです。

いままで、「AIというのはAPIとしてはただ呼び出すだけでプログラムとして組むところが少ないから、プログラマの話題になりにくい」という話をしていたのだけど、プログラムではないコンピュータ制御方法がでてきたと考えると、ちょっと認識を改める必要があると思います。

もちろん、ChatGPTには人工言語の知識もあるので、指示の中にDSLを含むこともできます。けれどほとんどの場合、指示の大枠自体には自然言語での命令が必要です。
入出力の形式をテンプレートで与えるといいというノウハウがあって、このテンプレートは形式化して与えますが、これも別にChatGPTにプログラムされてるわけではなくネット上のプログラミング解説などから学習したものであるところがすごいですね。

このMicrosoftのデモでは、ロボット制御のための関数をChatGPTに与えて、自然言語での指示からロボット操作のコードを生成しています。
このときの関数の指定も人間への指示と同様の記述です。

解説論文はこれ
https://www.microsoft.com/en-us/research/uploads/prod/2023/02/ChatGPT___Robotics.pdf

あと、ChatGPTは指示通りに動いてくれるだけでかわいいのがすごい。
いままでプログラミングでできた最終的なアプリケーションの動作がかわいいということはあっても、プログラミングできること自体がかわいいというのはなかったように思います。

人間とコンピュータの付き合いの形が変わっていきそうです。