Skip to main content

OpenAI APIを使用したPythonでのGPT-4のセットアップ

OpenAI APIを使って、マシン上でPythonでGPT-4を稼働させる。
Created on May 22|Last edited on June 6
本レポートをお読みの方は、GPT-4について耳にしたことがある、またはおそらくChatGPT Proを少し触ったことがあるが、これからもっと真剣に取り組み、マシン上で稼働させようとしているかもしれません。少し操作して、新しいことを学びたい、あるいは、念頭にある特定のタスク用に微調整したいのかもしれません。
いずれにしても、このチュートリアルは、迅速かつ簡単にセットアップして稼働を開始できるように構成されています。
注:いくつかのタスク固有のチュートリアルでこれをフォローアップしますが、これは開始にあたっての導入部です。
それでは始めましょう。以下は扱う内容です:

目次



動画で学習したい場合は、こちらにアクセスしてください。
開始したばかりで、Pythonを実行するようにマシンをまだセットアップしていない場合のために、わずか数分で稼働させるための簡単なチュートリアルをこちらに用意しました。
💡
セットアップ後、OpenAI APIが必要になります。では始めましょう:

OpenAI APIの入手

Before you can begin using GPT-4, you'll need an API key to access it.
To get one, simply head over to OpenAI's product page, and click "Get Started".
GPT-4の使用を開始する前に、アクセスするためにAPIキーが必要です。
キーを取得するには、OpenAIの製品ページにアクセスして、「Get Started(開始)」をクリックします。
OpenAIの使用を開始する
サインアップ方法を選び(私はGoogleを選びました)、検証プロセスを完了します。このステップ用のテキストを受信できるスマートフォンへのアクセスが必要です。
完了したら、APIキーの作成に進みます。これは、OpenAIがスクリプトをユーザーアカウントに接続するためのものです。これは、OpenAIが誰が何を行っているかを把握し、ユーザーの使用に応じてユーザーに請求する必要があるかどうか、およびユーザーへの請求額を決定するために重要です。

OpenAIの価格

サインアップすると5ドルのクレジットを受け取ります。実験しているだけなら、これで驚くほどたくさんのことができます。
この記事の執筆時点で(2023年12月9日)、それを超える価格は以下の通りです:


OpenAIキーの作成

キーを作成するには、左下のプロファイルにマウスカーソルを合わせて、「API Keys(APIキー)」を選択します。

...それからキーを作成します。

いったんLightboxを閉じるとキーは表示されず、作り直す必要があります。このため、このプロジェクトで��、キーをメモ帳にコピーして後で使います。
セキュリティの心配がある場合は、キーは保存しないでください(デスクトップ上のメモ帳は安全ではありません)。キーを使ったら、保存しないでメモ帳を閉じてください。
💡

GPT-4の使用を開始する

Jupyterノートブックの優れた部分の1つはColabなどの機能で、コメントやコンテキストをマークダウンフィールドに追加できます:

(ColabやJupyterを使用したことがない場合は、こちらに効果的なクイックスタートガイドが用意されています。また、キーマークダウンの補習はこちらをご覧ください。)
コンテンツとコンテキストについては、コードの機能の説明として、私がここで書いていることを投稿する予定です。すでに作業が進んでいる場合は、これを除外するか、独自のバージョンを追加してください。

ステップ1:OpenAI GPT-4 APIキー

最初に、GPT-4 APIキーを定義する必要があります。
これを行うためのコードは以下の通りです:
%env OPENAI_API_KEY=KEY
「KEY」をユーザーのOpenAI APIで置き換える必要があります。
セルを実行すると、アウトプットとしてキーを再度取得します。これによって、キーが環境変数として入力されたことが確認されます。


ステップ2:OpenAIとW&Bのインストール

GPT-4を動作させるために必要なものはOpenAIだけですが、以下に、W&Bテーブルを使って複数のアウトプットを簡単かつ迅速にレビューする方法を示します。
このタイミングでWeights & Biasesにサインアップ, するのが良いでしょう。これにより、さらに進んでからワークフローを数分中断する必要がなくなります。
ここで行っているタスクは扱いやすく楽しい内容になっていますが、より詳細なタスクに取り掛かったり、独自のアプリケーションを開発したりしている場合は、プロンプトとアウトプットを素早く簡単に追跡できないという事態を回避する必要があります。
既成の事実:OpenAIは、Weights & Biasesの初の購入客でした!
💡
これを行うためのコードは以下の通りです:
!pip install --upgrade openai wandb
それからセルを実行します。

When you run the Jupyter cell you'll notice that the space between the [ ] gets filled with an asterix ([*]). This means the cell is running, and you need to wait for the * to turn into a number before continuing.
Jupyterセルを実行すると、[ ] 間のスペースにアスタリスク([*])が入ることに気づくでしょう。つまり、セルが実行中で、「*」が数字に変わるのを待ってから続行する必要があります。
💡
インストールは完了しましたが、使用するにはインポートを行う必要があります
Pythonが初めての場合、基本的に、ライブラリをインストールしたらコードを取得します。インポートしたら、そのライブラリを利用できるようにします。
素晴らしい説明を読んだことがあります。インストールは画像をサーバーにアップロードするようなものであり、インポートは、画像が利用可能になったら、ページに画像を埋め込むようなものです。

ステップ3:ライブラリをインポートし、OpenAI APIキーを渡す

次のステップでは、ライブラリをインポートし、APIキーをOpenAIに渡します。これによってGPT-4にアクセスできるようになります。
このブロックで、すでにインストールしたOpenAIとW&Bライブラリをインポートします。
import os
import wandb
from openai import OpenAI
client = OpenAI()

ステップ4:GPT-4でコンテンツを生成する

細かく見ていると、私がチャットコンプリーションを使っていることに気づくでしょう。これは、この情報を迅速に稼働させるための最善の方法でした。このAPIは多くのシナリオIMOで最善の結果を生み出します。
💡
多少苦痛だったかもしれませんが、これからテキストの生成に取り掛かります!
シンプルなユースケースで開始します。ここでは、プロンプトをスクリプトに直接入力します。
このステップを2つの部分に分割します。これは、スクリプトをより楽しいものにし、シェアする場合に使いやすくするためです。2つのセルの内最初のセル内で、応答するアシスタントの名前を定義し、次にプロンプトを設定します。その後、アウトプットを生成します。
ChatGPTを使い慣れていて、アシスタントを定期的に定義しない場合、これは便利な手法です。「あなたは熟練したホワイトハットSEOです...」のような文章でプロンプトを開始すると、モデルがアウトプットをフレーミングしやすくなります。
💡
gpt_assistant_prompt = "You are a " + input ("Who should I be, as I answer your prompt?")
gpt_user_prompt = input ("What prompt do you want me to do?")
gpt_prompt = gpt_assistant_prompt, gpt_user_prompt
print(gpt_prompt)
以下のコードが続きます
message=[{"role": "assistant", "content": gpt_assistant_prompt}, {"role": "user", "content": gpt_user_prompt}]
temperature=0.2
max_tokens=256
frequency_penalty=0.0

response = client.chat.completions.create(
model="gpt-4",
messages = message,
temperature=temperature,
max_tokens=max_tokens,
frequency_penalty=frequency_penalty
)
print(response.choices[0].message)
実行すると、これらは以下のようになります:

私が、リクエストとともに追加パラメーターを渡したことにお気付きでしょう。この数字は変えることができます。このプログラム全体は、OpenAIのサイトでご覧いただけます。
私が使っているものは以下の通りです:
  • model - 使用したいモデル。
  • message - 送信されるメッセージ(大抵はプロンプト)。
  • temperature - 0~1の数字。数字が大きいほど、よりランダムになります。数字が大きいほど、よりクリエイティブになる場合がありますが、結果として結果が予測しづらくなります。
  • frequency_penalty - -2~2の数字。ここでは、応答内のそのポイントに対する頻度に基づいて、数字が大きいほど新しいトークンにペナルティーが科されます。数字が大きいほど、反復の可能性が低くなります。

ステップ5:Weights & Biasesに保存する

最後のステップでは、アウトプットをWeights & Biasesに保存します。
私には先入観があるものの、MLの初心者である私でさえも、データを自動的に記録し、runのレビューと比較を簡単にできる価値に気づいています。
より精通しているオーディエンスなら、この段階で私が実験トラッキングから得た結果があまり有益でないことを面白がっているかもしれませんが、少なくとも私は適切なツールを使っていると思います。Barbarianのようなスプレッドシートに記録することができます。
データを保存するには、以下のコードを追加します:
wandb.init()
response_text = response.choices[0].message.content
tokens_used = response.usage.total_tokens

prediction_table = wandb.Table(columns=["Prompt", "Response", "Tokens", "Max Tokens", "Frequency Penalty", "Temperature"])
prediction_table.add_data(gpt_prompt, response_text, tokens_used, max_tokens, frequency_penalty, temperature)
wandb.log({'predictions': prediction_table})
wandb.finish()
Weights & Biasesテーブルが作成され、これにはプロンプト、応答およびトークン値が含まれています。
それからrunを記録して、終了としてマークを付けます。
Weights & Biasesレポート(皆さんが今見ている)の優れた点の1つは、作成したばかりのテーブルを埋め込むことができ、その他のrunを作成しながら、テーブルが更新され続けることです。静止画像の代わりに、アウトプットを確認できます:


もちろん各runの詳細を探索できますが、1つのセットとしてrunを簡単にレビューしたり、プロンプト、トークン、温度に対して行った変更がどのようにアウトプット、フィルター、エクスポートなどを変化させたかを確認したりすることができます。
またこれは、適切に追跡しながらGPT-4を使い始める際の非常に基本的な例です。基本的に、以下のようないくつかの重要なタスクをまとめて探索するための準備をする必要があります:
  • 大量のプロンプトを管理し、プロンプト生成を自動化する
  • GPT-4を使用したセンチメント分析
  • GPT-4を使用した曲の歌詞の生成
  • GPT-4を使用したChatGPTの エミュレート
幸運をお祈りします。:)

GPT In Pythonチュートリアル動画

動画を観て学ぶ方がお好きですか? Ivan Goncharovが、ユーモアを加えながらプロセスをガイドします!
この例ではGPT-3を使いますが、微調整はあまり必要ありません!
💡




関連文書