OpenAIの文章生成モデル(GPT-3 text-davinci-003) を使ってみる

Open AIは人工知能を研究する団体です。画像生成モデルのDALL-Eや、文章生成モデルのGPT-3などが有名です。先月、GPT-3の最新モデルが公開されたとのことですので、試してみました。

最近流行りのChatGPTもtext-davinciをベースとしたモデルの様です。モデルを直接使うことで、各種パラメータを設定することができ、Chat以外の様々なタスクにも最適化できます。

ChatGPTは現時点(2023年1月時点)で無料で使えますが、以下に説明するPlaygroundは、APIの利用と同様に有料となります。

ただし、最初に$18分のFree trial usageがついてきますので、クレジットカードを登録することなく、一通りの動作確認は可能となっています。

ChatGPTで使われているモデルのAPIが公開されました。
この記事の内容にも変更点がありますので、こちらもご覧ください。
OpenAI ChatGPTのモデル(gpt-3.5-turbo)を使ってみる

言語モデル

GPT−3には大きく4種類のモデルがあります。ada, babbage, curie, davinciです。これらのモデル間では、処理速度と品質のトレードオフがあります。最速のモデルがadaで、最も高品質のモデルがdavinciです。davinciの最新版が、”text-davinci-003”となっています。

GPT-3

Our GPT-3 models can understand and generate natural language. We offer four main models with different levels of power suitable for different tasks. Davinci is the most capable model, and Ada is the fastest.

LATEST MODELDESCRIPTIONMAX REQUESTTRAINING DATA
text-davinci-003Most capable GPT-3 model. Can do any task the other models can do, often with higher quality, longer output and better instruction-following. Also supports inserting completions within text.4,000 tokensUp to Jun 2021
text-curie-001Very capable, but faster and lower cost than Davinci.2,048 tokensUp to Oct 2019
text-babbage-001Capable of straightforward tasks, very fast, and lower cost.2,048 tokensUp to Oct 2019
text-ada-001Capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost.2,048 tokensUp to Oct 2019
https://beta.openai.com/docs/models/gpt-3

コストも4種類のモデルで大きく異なっており、目的に応じてモデルを選択する必要がありそうです。

コスト

https://openai.com/api/pricing

Davinciによる文章生成

今回は、最新のモデルである ”text-davinci-003"がどのような文章を生成するのか見ていきます。APIが公開されているので、プログラムからも非常に簡単に使えますが、色々試してみたいので、OpenAIの公式サイトで用意されているPlaygroundを使います。

プログラムからAPIを呼び出す方法については、こちらの記事を参考にしてください。

OpenAI 文章生成モデルGPT−3のAPIを使ってみる

OpenAIのGPT-3の性能が話題となっています。Playgroundを使った利用に関しては、以下の記事を参照してください。 今回は、GPTの最新モデル(text-davinci-003)を使って、Ch…

Googleアカウントなどを使ってSign upした後に、Playgroundページに移動すると、以下の画面が表示されます。

Playground画面

Playgroundを開いたら、右のサイドメニューのModelで"text-davinci-003"を選択しておきます。

基本的な使い方として、"prompts"として、質問や解答例を入力したのち Submitボタンを押すと"completion"を返してくれます。

ドキュメントは、こちら(https://beta.openai.com/docs/introduction)にありますが、とりあえず試してみたい時には、画面上部の”Load a preset.."からタスクを選択すると、事前にセットされたpromptsが表示されます。

以下、Q&AとChatの例を見ていきます。

Q&A

Load a preset.. から、”Q&A"を選択すると、英文でいくつかのQ&Aが示されています。

Q: Who was president of the United States in 1955?
A: Dwight D. Eisenhower was president of the United States in 1955.

Q: Which party did he belong to?
A: He belonged to the Republican Party.

Q: What is the square root of banana?
A: Unknown

Q: How does a telescope work?
A: Telescopes use lenses or mirrors to focus light and make objects appear closer.

Q: Where were the 1992 Olympics held?
A: The 1992 Olympics were held in Barcelona, Spain.

Q: How many squigs are in a bonk?
A: Unknown

Q:

https://beta.openai.com/playground/p/default-qa

続いて,英文の質問と同様の質問を日本語でしてみます。

Q:日本において人間の平均寿命は?
A:日本において人間の平均寿命は83.7歳です。

Q: 2020年の日本の総理大臣は?
A:2020年の日本の総理大臣は安倍晋三です。

Q: 彼はどの党に所属していましたか?
A: 彼は自民党に所属していました。

Q: 2020年のオリンピックはどこで開催されましたか?
A: 2020年のオリンピックは東京で開催されました。

https://beta.openai.com/playground/p/default-qa

日本語で質問すると、日本語で答えてくれました。ちなみに、2020年の日本の平均寿命は84.61歳です。それらしい回答をしていますが、正しい回答を返しているとは限りません。また、トレーニングデータは英語に偏りがあるため、日本語の質問を英訳してから質問をした方がより正しい回答をする確率が高くなるようです。

Chat

次に、AIと会話をするために、Load a preset .. で "Chat"を選択してみます。

The following is a conversation with an AI assistant. The assistant is helpful, creative, clever, and very friendly.

Human: Hello, who are you?
AI: I am an AI created by OpenAI. How can I help you today?

Human:

このように表示されますので、Human:につづけて日本語で会話をしてみます。あえてネガティブな話題を振ってみました。

”Human :”に続く文章を入力し、Submitすると、”AI:”に続く文章を生成してくれます。

Human:今日は仕事で失敗して、クライアントに怒られたよ。
AI: おそれいります!今日はどのような失敗をしましたか?あなたの気持ちもお聞かせください。お役に立てることができれば嬉しいです。

Human: 提出した資料の数字が間違っていたんだよ。
AI: そうですか。あなたが心配していることは何ですか?どんな手段を用いて、クライアントに改めて資料を提出できるか考えられますか?

Human: 今週末までに再提出をするつもりです。
AI: 素晴らしいですね!やる気が伝わってきます!正確な情報を含む資料を再提出するために、今日一番重要なことは何ですか?

Human: 間違った数字を含めて、全体を見直すことかな。
AI: 素晴らしい考えです!今日から正しい数字を含めた資料の確認を始めるのが良いと思います。また、細かなところまできちんとチェックをして、再提出するのは大切ですよ!

AIにコーチングされているような、不思議な感覚です。

以前のGPT-3ではネット上の暴力的な表現も学んでしまう事が問題になっていましたが、非常に丁寧な回答になっています。

これはpromptsに"The assistant is helpful, creative, clever, and very friendly.”と、あるからでしょうか。どの程度この文言が影響しているのかは、分かりかねています。

今流行りのChatGPTでは、instructGPTをベースにすることにより、不適切な応答問題の軽減につなげているとのことです。Chatだけをするアプリであれば、こちらのモデルを使いたいところですが、現時点でChatGPTのAPIは公開されていないようです。近日中には公開となっていますので、非常に楽しみです。(2023年1月時点)

(追記)

Load a preset .. を使わずに、Emotion分析を試してみました。こちらの記事もご覧ください。

OpenAI GPT-3(text-davinci-003)でEmotion分析してみる

GPT-3の最新モデルを使ったChatGPTが話題のようです。Chat GPTについては賛否両論あるようですが、まずは元となるモデルで、何が、どんなレベルでできるのかを理解する必…

まとめ

以前から自然な文章を作成することで知られていたGPT-3ですが、日本語の会話においても(内容はともかく)自然な文章を生成してくれることが確認できました。またpromptsの書き方次第で、Q&A、Chat以外にも様々なタスクに対応可能であるところが大きな特徴かと思います。例えば、汎用的なAIアシスタントの場合には一つのアプリケーション内で、ChatやQ&A、分類、感情分析など複数のタスクが必要になってくるため、GPT-3を使うことで開発コストは下がってくるように思います。