勢いに任せて昨日利用を開始したOpenAIの自然言語処理モデルGPT-3に用意されている現時点で49件上がっているExamplesを試してみました。
それぞれ、Examples上でクリックするとポップアップが表示され、次のような画面構成になっており、選択肢がある場合、選択ごとに、それぞれ反映されるようになっています。
試したのは、選択肢がある場合には、最も賢いらしきdavinci、ライブラリはPythonのみ、ログイン後のサンプル同様、出力にちょっと手を加える必要はありますが、どれも驚愕の結果でした。
当然、全く同一のものを試して上げても意味がないので可能な限り、違うケーススタディを日本語で行っています。
尚、サンプル実行にあたり、いくつか注意点がありました。
サンプルの実行にあたっては、Pythonスクリプト/Curl/Json形式から選択できるようになっています。
ただ、Json形式は試していませんが、前回のログイン後のサンプルでもあったようにCurlによる実行だと応答がないかもしれません。
Pythonスクリプトを使うにあたり、まず、修正点から。
スクリプト実行にあたり、出力ステートメントがないのでprint()、または、import jsonしてjson形式で出力する記述を追加する必要があります。
何れかのみ出力可能なサンプルやprintする場合、文字列にキャストを要するサンプルもあります。
続いてPythonスクリプトにおける実行結果について。
GPT-3は、数十を越える各国語に対応しており、日本語も使えるわけですが、サンプルにもよるものの、(English to Frenchに倣って組み合わせることも可能かもしれませんが、)基本結果は英語で返ってきます(ってそれはそれで凄い)。
尚、GPTならではですが、次のほとんどのサンプルも、より応答精度を高める為、機械学習ではなく、1つまたは、複数の自然言語ベースの例文やブロックなどの例示と質問などを併せて渡す前提になっています。
シンプルなものもある一方、ここでは小さなサンプルなだけに、こんな例示するくらいなら、初めから自分でやった方が早いんじゃないか?と思うほど骨が折れるものもありますが、実際には、大量データの処理に適用することになるでしょうから、たいしたコストではないでしょう。
また、答えありきっぽい多少強引なサンプルもあります。
問いかけに相応に応答するChat。
文章を標準的な英語に修正するGrammar correction。
自然言語をOpenAI API形式に変換するNatural language to OpenAI API。
英語をフランス語に翻訳するEnglish to French。
自然言語をSQLクエリに変換するSQL translate。
とあるカテゴリ分けを例示しつつ、質問すると相応に分類するClassification。
複数の対応する名詞と絵文字のサンプルを投げつつ、サンプルにない名詞を問うと対の意味を類推して対応する絵文字を表示するMovie to Emoji。
コメントを使って、Python(あるプログラミング言語)からHaskell(他のプログラミング言語)に変換するTranslate programming languages。
複雑なプログラミングコードの一部を自然言語で説明するExplain code。
学習モデルにないような質問もいくつかの応答方法を示して投げることで未知の応答を返すことができ、例示するにあたり、知らないフレーズへの応答に「?」を使うとより自然な応答を得ることができるFactual answering。
商品説明、関連深いフレーズ、商品名を例示しつつ、先の2者を提示すると商品名を提示するProduct name generator。
何らかの方法でバグがあることを示唆した(Python)ソースコードを投げるとバグを発見・解決して(書き直して)くれるPython bug fixer。
チャットボットとのやりとりのようにJavaScriptにおいて「○○ってどうやるの?」「xx関数を使ってこうするのさ!」と例示しつつ、「じゃ△△は?」と問うと方法を回答するJavaScript helper chatbot。
SFの本を例示すると続いて10件まで列挙してくれるScience fiction book list maker。
「ロスからマイアミに飛びたい」といった自然言語と利用可能な空港コードの対を示しつつ、「オーランドからボストンに飛びたい」のような自然言語を投げると対応する空港コードを返すAirport code extractor。
文中に含まれる連絡先情報を抽出するExtract contact information。
やり取りを例示しつつ、問いかけると相応の応答を返すテキストメッセージによる会話エミュレーションFriend chat。
Pythonのソースコードに対してPythonにおいてhelp関数からも参照・表示される関数の:(コロン)直後に3連などのシングルクォートやダブルクォートで挟んだ説明文docstringを書いてくれるWrite a Python docstring。
JavaScriptのソースコードを投げるとワンライナー(一行の命令文)にしてくれるJavaScript one line function。
いくつかの入出力となる文章を例示しつつ、他の入力となる文を渡すと一人称視点を三人称視点に変換するThird-person converter。
動画ゲームにおいてフィットネスと仮想現実(バーチャルリアリティ)のアイデアをいくつか例示しつつ、問いかけると他のアイデアを提案してくれるVR fitness idea generator。
「xxxとyyyのエッセイの概要を書く、1.概要」などと投げると1.だけでなく、場合によっては、2.や3.まで概要を書いてくれるEssay outline。
相応の応答例文を複数投げて問いかけると皮肉たっぷりに答えるMarvというチャットボット例Marv the sarcastic chat bot。
とあるレストランのレビューを書くこと、店名、キーワードの後にReviewなどと書いて投げるとそれらしい文章のレビューを書いて返すRestaurant review creator。
「xxに関するインタビュー用の質問リストを作って、1.」などと投げると質問の例文を作ってくれるInterview questions。
知らないことには、「Unknown」と答える既存の知識に基づく質疑応答Q&A。
難しい文章でも要約してくれるSummarize for a 2nd grader。
自然言語の文章をプログラム的に書き換えるような相応の例文を投げつつ、それに即した質問をすると文章をプログラムチックにして返すText to command。
自然言語からクレジットカードなどの決算処理代行サービスStripeのAPIを呼ぶためのコードを生成するNatural language to Stripe API。
ある程度の長文において一部を構造化して、そのあとのも構造化しと言わんばかりに投げると残りをそれに倣って構造化してくれるParse unstructured data。
Pythonのソースコードとこれが何やってるか教えてと投げると自然言語で説明してくれるPython to natural language。
関数自体とこの関数の時間計算量教えてと投げると時間とデータ量の関係について表したオーダー記法などを返すCalculate Time Complexity。
いくつかの例文と感情のセットを交えて新たな一文を提供すると感情分析する進化したツイート分類器Advanced tweet classifier。
文中からキーワードとなり得るフレーズを抽出するKeywords。
商品の特徴、目的や条件を投げると広告に使える文章を返すAd from product description。
テキストの文章の最後に「tl;dr:」を付けるとテキストを要約するTL;DR summarization。
任意の区切り文字を使ったいくつかの例示と「〜と〜の2列のスプレッドシート」などと投げると、その組み合わせと、区切り文字でCSV形式に変換するSpreadsheet generator。
Q&A形式の言語モデルに関する質疑応答チャットボットML/AI language model tutor。
例文と問いを投げると、つぶやきの感情を分析・分類するTweet classifier。
SQL文を構成するに十分な自然言語を投げ、例えば、SELECTと投げるとSELECT文を作成するSQL request。
(コメントなどそれぞれ何らかの方法で言語を特定しつつ、)JavaScriptのソースコードを渡すとPythonに書き換えるJavaScript to Python。
自然言語による色とCSSプロパティbackground-color: #などを渡すとカラーコードを返すMood to color。
投げたフレーズと似た類似性をもったフレーズを返すAnalogy maker。
失敗談のテーマと具体例を例示し、違うテーマを渡すとそれに合致した例を示すMicro horror story creator。
誰がなんと言ったと列挙した議事録から要約文に変換するNotes to summary。
該当する自然言語の文章から難易度や低年齢者保護の観点からゲームや動画などのエンタメの年齢制限など等級管理を行なう米国の国家機関かつ勧告ESRB等級を分類するESRB rating。
材料のリストからレシピを作成するRecipe generator。
該当する自然言語の文章から目的地へのルートをたどるために進むべき方向を順次示すTurn by turn directions。
テーマを提供するとポイントとなる情報を返す(学習ノートを取得する)Create study notes。