ChatGPTにChatGPTのことを教えてもらう
0. 概要
ここ数日間界隈の話題をさらっているChatGPTについて、そもそもこれが何であるのか、あるいはAPI利用方法をChatGPT自信に教えてもらうという内容です。2022/12/04現在、自作アプリケーションに組み込む場合に、ChatGPTを直接的に叩くようなAPIは用意されていない一方で、代わりにGPT-3等のモデルを使えるOpenAI提供のAPIがあるようで、その使用例も書きます。本稿の記述及びChatGPTの応答に嘘が含まれる可能性が多分にある為、誤りをご指摘いただけると幸いです。
1. ChatGPTをざっくり理解する
まずはジャブ。ChatGPTとは、OpenAIが開発した自然言語生成モデルであり、それを扱うインターフェース的なものではないそうです。
2. ChatGPTをAPIで利用することが可能か?
いきなり矛盾した感がありますが、ChatGPTというモデルは知らないそうで、代わりに様々な言語にAPIが提供されている、GPT-3というOpenAIが提供するモデルを用いることでChatGPTの(ブラウザでやってくれてる?)タスクと同様のことが実行できるそうです。
ちなみに、ちょっと気になったんでPyPIを見てみたところ、chatgptという非公式パッケージがあり、 pip install
できたためコードを見ましたが、バージョン0.2212.1
では、text-davinci-002-render
というモデルをデフォルトで指定してhttps://chat.openai.com/backend-api/conversation
にPOSTリクエストを送信するというものでした。このエンドポイントについてうまくChatGPTに聞き出すことができず、軽く調べたところドキュメントも無さそうで(これから追加されるかも?)、ここからChatGPTをAPI呼び出しできるのかもしれません。
また、ここやここを読んだ感じ、ChatGPTとGPT-3は別物であるように読めました。
3. GPT-3を触ってみる
pip install openai
によってopenaiパッケージをインストールし、例えば以下のようなコードを書けばGPT-3を使えるようです。ChatGPTの情報を参考にしてますが、モデルの指定に違和感があったのでOpanAIドキュメントを見て高精度モデルに変更してます。要件に応じてループ処理を追加したりGUIを作ったりパラメータを変更したりすることにより、チャット機能を作成できるはずなので、是非試してみてください!
import os
import openai
openai.api_key = os.environ['OPENAI_KEY']
# 対話モデルを設定する
engine = "text-davinci-003"
# 対話を行う
response = openai.Completion.create(
engine=engine,
prompt="【ここに質問】",
temperature=0.5,
max_tokens=1024,
top_p=1,
frequency_penalty=0,
presence_penalty=0
)
# 対話結果を取得する
for choice in response.choices:
print(choice["text"])
この辺りをChatGPTに教えてもらった会話は以下です。ChatGPTの指示通りでは自分の環境では動かないものもありました(3,4番目のキャプチャのengine
の値)。
4. GPT-3とChatGPTに同じ質問をしてみる
GPT-3を使用する上記のプログラムと、ChatGPTに同じ質問をしてみて回答を記載します。先に感想を書くと、どちらが優れているといったことは、このくらいの質問では自分にはよく分からないと思いました。なお、マルコフ連鎖的に会話を続けて文脈を植え付けると違った回答をするはずなので、試してみてください!
i) GPT-3
ii) ChatGPT
4-1. ChatGPTとは何ですか(1.で最初に聞いたやつ)
4-1-i. GPT-3
ChatGPTは、自然言語処理(NLP)技術を使用したチャットボット用のオープンソースライブラリです。OpenAI GPT-3(Generative Pre-trained Transformer 3)を使用し、自然な会話を可能にします。ChatGPTは、会話を簡単に開始できるように設計されており、複雑な会話を行うための能力も備えています。
(ChatGPTは部分的にGPT-3も使っているということでしょうかね?ミスリードな気がしますがイコールとも読める?)
4-1-ii. ChatGPT
(これまでの会話を覚えているため、ちょっと斜めの回答かもですね。)
4-2. ゾンビが存在する世界で死はどう定義されるか
変な哲学的質問を投げてみます。
4-2-i. GPT-3
ゾンビが存在する世界では、死の定義は非常に曖昧なものとなります。一般的には、死は、生命を失った時点を指しますが、ゾンビの場合は、それが死とは限らない可能性があります。ゾンビは、死から復活し、まだ生きていると見なされることもあります。したがって、ゾンビが存在する世界では、死の定義として、生命を失った時点を指すだけでなく、生き返ることができない状態を指すこともあります。
4-2-ii. ChatGPT
-1. まとめと感想
お読みいただきありがとうございました。
本稿ではまずChatGPTの概要を掴み、次に自作プログラム上から現状直接的なAPI利用は難しそうであるものの、代わりに同じような処理を実現する手段があるため、これを試しました。
ChatGPTは、日本語でこれだけ豊富な情報を提供してくれるのはありがたいですね!情報収集とかアイデア出しとかには、このようなツールが非常に有用と思いました。ただ、(自分がおかしくなければ)変梃な出力も多く、まだまだ人の頭を使った方が良い部分も大きそうだなーとも感じました。
また、本稿で自然言語処理モデルの知識を得てその使い方を知ったみたいに、AIには教育的な価値も大きそうだなと思いました。
【2022/12/5追記】 少し理解が進んだ状態で読み返すと、ミスリードなタイトルとなっていたため、修正します。
Discussion