OpenAIが開発した自然言語処理モデルGPT-3で遊んでみました。

GPT-3 が遊べる場所

OpenAIの公式ページの下のAPIのところから、
アカウントを作ってGPT-3のお試しページに移動することができます。

Examples を選ぶと使い方の例がたくさん表示されます。

Q&A、文法修正、要約、プログラム、翻訳、分類、絵文字、パイソンから自然言語、もっとあります。

遊び方

使い方がたくさんあるので、いろいろなモードがあるような気がしてしまうのですが、
実はそうではなく、
GPT-3 は、入力した言葉に対して、よくありそうな文章を出力する

だけ、と理解しました。
それらしい聞き方をすればいろんなことができるのだと思います(勘違いだったらごめんなさい)。

では試してみましょう。
playground というところで、
好きに文を入れてSubmit を押せば出力が返ってきます。日本語でも大丈夫です。

入力:日本で一番高い山は
出力:富士山です。

ただ、英語で入力した方が精度はよい気がします。以下の日本語は、DeepLで日英を翻訳して使った結果です。

お話の出だしを入れれば続きを書いてくれます。

入力:ペリー提督は、どうしても日本と友達になりたかった。そこで
出力:彼はある計画を思いつきました。それは、贈り物をすることでした。彼は自分の船を日本まで航行させ、大きなプレゼントを渡しました。それは大きな黒い大砲でした。日本人はとても興奮しました。彼らはそれを素晴らしい贈り物だと思いました。しかし、問題がありました。その大砲は大きすぎて、将軍の宮殿の扉に入りきらなかったのです。だからペリーはそれを持ち帰らなければなりませんでした。将軍は不機嫌になりました。ペリーが自分を馬鹿にしようとしていると思ったのです。

長い!それらしい!すごいです。

入力に質問をいれると、出力には答えが返ってきます。
質問の後には答えが来るのが自然だからだと思います。

入力:コカ・コーラの原料はなんですか?
出力:コカ・コーラには、水、砂糖、カラメル、着色料、カフェイン、リン酸、天然香料が含まれています。

今のことを聞いたらどうなるのでしょう?

今の日本の総理大臣を聞いて見ました。

入力: Who is the Prime Minister of Japan?
出力: The current Prime Minister of Japan is Shinzō Abe.

安倍晋三。。

新しい事実に対するupdateなどはないのでしょう。少し悲しい気持ちになります。

試しに、今日の日付を聞いてみましょう。

入力:What year and month is today?
出力:Today is March 3, 2020.

どうやら、2020年3月3日に生まれたようです。ちょっといじわるだったかな。

気を取り直して、と。プログラムも作ってくれるので驚きです。

入力:入力に対して素数かどうかを判定するPythonの関数のコードを次に示します。
出力:

def is_prime(n):
    if n < 2:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

ちゃんと動きそうてます。

一体どれくらい複雑なコードが書けるのでしょうか。スーパーマリオを作ってもらいましょう。

入力:Shown next is the Python code for Super Mario.
出力:

import pygame
pygame.init()
screen = pygame.display.set_mode((800, 600))
background = pygame.image.load("background.png")
mario = pygame.image.load("mario.png")
x = 0
y = 0
speed = 5
while True:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            sys.exit()
    screen.blit(background, (0,0))
    screen.blit(mario, (x,y))
    pygame.display.update()
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and x > 0:
        x -= speed
    if keys[pygame.K_RIGHT] and x < 800 - mario.get_width():
        x += speed
    if keys[pygame.K_UP] and y > 0:
        y -= speed
    if keys[pygame.K_DOWN] and y < 600 - mario.get_height():
        y += speed

なんと。。動かしてみたい。
コードを見ると、pygame(ゲーム用ライブラリ)を使っているので、pygameをインストールしたpython3.8の仮想環境を作り、background.png (800×600) とmario.png も使うようなのでそれも準備して実行すると、、動きました!

カーソル右を押すと、一瞬でマリオが右端に行きます。下を押すと一瞬で下に。でも動きます。

まあ、マリオではないんですけど、
GPT-3すごいです。