ChatGPT

最近話題のChatGPT(チャットジーピーティー、Generative Pre-trained Transformer)。大量のテキストデータから作られた言語モデルによって、チャットの回答を生成するOpenAIのサービスです。
https://openai.com/blog/chatgpt/

https://ja.wikipedia.org/wiki/ChatGPT より

OpenAIが2022年11月に公開したチャットボット。OpenAIのGPT-3.5ファミリーの言語モデルを基に構築されており、教師あり学習と強化学習の両方の手法で転移学習されている。

 

OpenAIといえば、あのイーロンマスクの投資先としても有名ですが、以前”OpenAI Gym”というフレームワークを下記ブログで試したことがあります。
https://decode.red/blog/202005051121/

しくにみついては下記に詳しくあります。
「GPT-3とは」
https://www.nri.com/jp/knowledge/glossary/lst/alphabet/gpt_3#:~:text=GPT-3%20%EF%BC%88Generative%20pre-trained%20Transformer%203%EF%BC%89%E3%81%AE%E7%89%B9%E5%BE%B4

今回プログラマ目線で利用したところ、衝撃的な結果となりました。
まず1から100までの総和を求めるプログラムを作るように指示したところ、実行可能なPythonプログラムを回答してきました。

ここまでは想像はつきましたので、次はコードのデバッグをしてもらいました。
printfのフォーマットが間違っているプログラムですが、その詳しい解説と正解コードも回答してきました。

printfは%sを期待しましたが、アドレスを表示するのも間違いではありません。
次は、SprintBootのスケルトンプログラムを作ってもらいました。YouTubeでもWebサイトのコードを出力するデモを見ましたが、css、htmlの定型的なテキストは比較的簡単に出力するようです。
このあたりはネット上に膨大にあるプログラムコードが有利に働いているのでしょう。


見事です。

最後に技術的な質問を投げてみました。

REST, gRPC, GraphQL それぞれの特徴は

REST (Representational State Transfer)は、Web上のリソースを表すためのアーキテクチャスタイルです。RESTはHTTPプロトコルを使用し、URIを使用してリソースにアクセスします。RESTはスケーラブルで、柔軟性が高く、標準的なインターフェイスを提供します。

gRPCは、高性能なリモートプロシージャ呼び出し (RPC) フレームワークです。gRPCは高速なシリアル化プロトコルであるProtocol Buffersを使用してデータをやり取りします。gRPCは複数の言語で利用可能で、高速な性能と柔軟な拡張性を提供します。

GraphQLは、クライアントがサーバーから必要なデータのみを取得するためのクエリ言語です。GraphQLは、RESTのようなエンドポイントを持たない、一つのエンドポイントを持つことでデータの取得を簡素化します。また、クエリの複雑さに応じて必要なデータのみを返すため、通信量を削減することができます。

 

それぞれ他にくらべて優位なところ、劣っているところは何ですか

1回目

RESTは、Web上のリソースを表すための最も一般的なアーキテクチャスタイルの一つであり、標準的なインターフェイスを提供します。そのため、多くのクライアントやサーバーがRESTをサポートしているため、普及が高いです。しかし、RESTはリソースに対して固定された操作を定義するため、クライアントからサーバーに対して複雑な要求をする場合は、複数のリクエストをする必要があります。

gRPCは高性能なRPCフレームワークであり、Protocol Buffersを使用してデータをやり取りするため、高速な性能を提供します。また、複数の言語で利用可能なため、クロスプラットフォーム開発にも適しています。しかし、gRPCはHTTP/2プロトコル上で動作し、そのため一部のネットワーク環境では利用できない可能性があります。

GraphQLは、クライアントからサーバーに対して複雑な要求をする場合に優れています。クライアントは必要なデータのみを取得するため、通信量を削減することができます。また、クエリの複雑さに応じて必要なデータのみを返すため、APIの設計が簡単になります。しかし、GraphQLはまだ普及が限られており、一部のクライアントやサーバーではサポートされていない可能性があります。

 

“Regenerate response”で2回目

RESTは、Web上のリソースを表現するために広く使用されており、柔軟性が高く、標準的なインターフェイスを提供します。しかし、RESTは、クライアントがサーバーから取得するデータの量を制御することができないため、通信量が増加しやすいという欠点があります。

gRPCは、高速なシリアル化プロトコルであるProtocol Buffersを使用してデータをやり取りすることで高速な性能を提供します。しかし、gRPCはHTTP/2プロトコルのみをサポートしており、HTTP/1.1環境では利用できないという欠点があります。

GraphQLは、クライアントがサーバーから必要なデータのみを取得することができるため、通信量を削減することができます。また、クエリによって必要なデータのみを返すため、データの不足や余分なデータを受け取ることがなくなります。しかし、GraphQLは、RESTと比較して学習コストが高く、導入には技術力が必要であるという欠点があります。

 

どんな質問でも、そつなく回答するその文章力がすごいと思います。
プログラマとしての使い方としては、定型文的なものはとても便利だと思いました。将来プログラムは、いったんAIに作らせておいて人間はその検証する作業とかになるのでしょうか・・検証もAIか・・
しかし一気にブレイクスルーした感が否めません。