メインコンテンツへスキップ
見出し画像

OpenAI の ChatGPT でできること

     こんにちは、こんばんは teftef です。12月1日に OpenAI が自然言語処理モデル(GPT-3 ベース)のひとつである ChatGPT をリリースしました。このモデルではチャットのように対話を楽しむことができます。少し試してみたので使用感と応用法などを書いていきたいと思います。
     プレビュー期間中は無料で利用できるので試してみたい方は以下のURLから。ChatGPT はこちらから↓

    基本的な使用法

    他愛ない会話

    画像
    挨拶してみた

     軽く挨拶をしてみたのですが、このように多言語対応となっていて。それそれの言語に対して「こんにちは~」を返してくれます。ここからはわかりやすいように日本語もしくは英語でチャットをしていきます。

    質問をする

    画像
    個人的な質問

     こんな感じで質問をしてみると、割と詳しく返してくれます。このような個人的な質問だけではなく。

    画像
    GANについて

     このように、比較的わかりやすくまとめてくれました。便利ですね。
    ちなみに疑ってみると

    画像

    なんか、自信があるような内容な、保険をかけてきます。

    議論

    さて、質問だけではつまらないのでさっきの博士課程進学について少し議論してみます。(最初の画像、変換ミス 白紙 → 博士)

    画像
    画像
    画像

     うーん、負けました(笑)。こんな感じで、背景と理由を述べたうえで結論を述べていて、本当に経験者と会話しているような感覚でした。

    最新情報について

    画像

     このように、最新の情報を出すのは苦手です。というのも自然言語処理モデルをリアルタイムで学習することは(金銭的にも時間的にも)難しいからです。

    人生相談

    画像
    人生相談

     いや(笑)、はい、なんというか、当たり前ですが、慰めてもらえはしないですね。では、慰めてもらうように聞いてみますか。

    画像

    コードを書かせる

    画像

     マジかよ。これ実行時間やばくなるコードですが… あっています。これは確かにフィボナッチ数列の一般項を求めています。一応期待してないのですが実行時間が短くなるように書いてもらいます。

    画像

    おおー!計算量 Order(n)  で一般項を生成するコードになりました!!

     すごい…

    続いて、サーバー間でechoを使って対話するコードを書いてもらいましょう

    import socket
    
    # サーバー1のアドレスとポート番号
    server1_address = ('localhost', 10000)
    
    # サーバー2のアドレスとポート番号
    server2_address = ('localhost', 10001)
    
    # サーバー1の用意
    server1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server1.bind(server1_address)
    server1.listen(1)
    
    # サーバー2の用意
    server2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server2.bind(server2_address)
    server2.listen(1)
    
    # サーバー1でクライアントとの接続待ち
    conn1, addr1 = server1.accept()
    print('Connected by', addr1)
    
    # サーバー2でクライアントとの接続待ち
    conn2, addr2 = server2.accept()
    print('Connected by', addr2)
    
    # サーバー1とサーバー2が相互にデータを受け渡す
    while True:
        # サーバー1からデータを受信
        data1 = conn1.recv(1024)
        if not data1:
            break
        # サーバー2へデータを送信
        conn2.sendall(data1)
    
        # サーバー2からデータを受信
        data2 = conn2.recv(1024)
        if not data2:
            break
        # サーバー1へデータを送信
        conn1.sendall(data2)
    
    # 接続を切断
    conn1.close()
    conn2.close()

    エラー修正

    このようににエラーを入れると、こんな感じで直し方が提案されます。

    画像

    歌や詩など

    いろいろ遊んでみます。

    画像
    画像
    画像
    画像

    少し込み入った質問を

    画像
    画像
    画像

    応用

    画像生成 AI との組み合わせ

     応用手法として、何かほかのツールと組み合わせて使うのがいいと思います。例えば今回、主は画像生成 AI の NocelAI と組み合わせました。

    画像
    画像
    画像

    https://t.co/bEhuuX9H5o
    ↑これ使って
    僕 : NovelAIって知ってる?
    AI : 知ってる
    僕 : なんかかわいいを生成する例を出して
    AI : ほらよ、Prompt (っ'-')╮=͟͟͞͞ブォン

    それを使って生成した画像#NovelAI #NovelAIDiffusion pic.twitter.com/m1dJIswiSI

    — teftef (@hanyingcl) December 1, 2022

    こんな感じです。

    文章のタイトル作成

    このように指定したキーワードからタイトルを生成させて、これをベースに文章を書くのは面白いですね。

    画像

    使用感

      ChatGPT に質問をしたときに帰ってくる答えがとてもふわっとしていることが多い気がします。例えば、『あなたはどう思いますか?』や『意見を聞かせてください』のような質問を与えると、どっちつかずの意見を返してくることが多いです。これに対して『おお~、AIが言っていることはあっている』と思うのは、占いがあったっていると感じるバーナム効果と似たようなものだと思っています。将来的に ChatGPT 画検索ツールやそれ以上のものに置き換わるかもしれません。何なら会話していた相手が実はAIだったなんてこともあるかもしれません。そこでやはり大事だと思うのは、何が正しい情報なのかを調べた上で、自分の意見を強く持つことが大切であると感じました。
     そして、生成AIも含めてそうですが、例えば、『文章を書きたい』、しかし何かネタがない、書き始めの例が欲しい時。絵が描きたいけど白紙から書くのは難しいので、何かをヒントにしたいというような場合です。つまり何か0→1を作るときの最初の一歩を踏み出す参考程度に使うのが一番いい使い方なのではないかと思います。
     ほかにも様々な応用や用途があると思いますが、それは使用者次第で可能性は無限大になると思います。ChatGPTはプレビュー期間中で無料なので、今のうちに使ってみてはいかがですか?

    最後に

     最後まで読んでいただきありがとうございました。最後に少し宣伝です。主のteftefが運営を行っているdiscordサーバーを載せます。このサーバーではMidjourneyやStble Diffusionのプロンプトを共有したり、そのほか機械学習に関する研究したりしています。ぜひ参加して、機械学習やAIなどについて探ってみてはいかがでしょう。(teftef)

     
     

    teftef

     
     
    趣味でアニメーションと写真レタッチなどをやっています。この記事では幅広いジャンルで備忘録のようなものを書いていくつもりです!

    あなたへのおすすめ