OpenAI APIを使用したPythonでのGPT-4のセットアップ
OpenAI APIを使って、マシン上でPythonでGPT-4を稼働させる。
Created on May 22|Last edited on June 6
Comment
本レポートをお読みの方は、GPT-4について耳にしたことがある、またはおそらくChatGPT Proを少し触ったことがあるが、これからもっと真剣に取り組み、マシン上で稼働させようとしているかもしれません。少し操作して、新しいことを学びたい、あるいは、念頭にある特定のタスク用に微調整したいのかもしれません。
いずれにしても、このチュートリアルは、迅速かつ簡単にセットアップして稼働を開始できるように構成されています。
注:いくつかのタスク固有のチュートリアルでこれをフォローアップしますが、これは開始にあたっての導入部です。
それでは始めましょう。以下は扱う内容です:
目次
OpenAI APIの入手OpenAIの価格OpenAIキーの作成GPT-4の使用を開始するステップ1:OpenAI GPT-4 APIキーステップ2:OpenAIとW&Bのインストールステップ3:ライブラリをインポートし、OpenAI APIキーを渡すステップ4:GPT-4でコンテンツを生成するステップ5:Weights & Biasesに保存するGPT In Pythonチュートリアル動画関連文書
💡
セットアップ後、OpenAI APIが必要になります。では始めましょう:
OpenAI APIの入手
Before you can begin using GPT-4, you'll need an API key to access it.
GPT-4の使用を開始する前に、アクセスするためにAPIキーが必要です。

OpenAIの使用を開始する
サインアップ方法を選び(私はGoogleを選びました)、検証プロセスを完了します。このステップ用のテキストを受信できるスマートフォンへのアクセスが必要です。
完了したら、APIキーの作成に進みます。これは、OpenAIがスクリプトをユーザーアカウントに接続するためのものです。これは、OpenAIが誰が何を行っているかを把握し、ユーザーの使用に応じてユーザーに請求する必要があるかどうか、およびユーザーへの請求額を決定するために重要です。
OpenAIの価格
サインアップすると5ドルのクレジットを受け取ります。実験しているだけなら、これで驚くほどたくさんのことができます。
この記事の執筆時点で(2023年12月9日)、それを超える価格は以下の通りです:

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

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

いったんLightboxを閉じるとキーは表示されず、作り直す必要があります。このため、このプロジェクトで��、キーをメモ帳にコピーして後で使います。
セキュリティの心配がある場合は、キーは保存しないでください(デスクトップ上のメモ帳は安全ではありません)。キーを使ったら、保存しないでメモ帳を閉じてください。
💡
GPT-4の使用を開始する
Jupyterノートブックの優れた部分の1つはColabなどの機能で、コメントやコンテキストをマークダウンフィールドに追加できます:

コンテンツとコンテキストについては、コードの機能の説明として、私がここで書いていることを投稿する予定です。すでに作業が進んでいる場合は、これを除外するか、独自のバージョンを追加してください。
ステップ1:OpenAI GPT-4 APIキー
最初に、GPT-4 APIキーを定義する必要があります。
これを行うためのコードは以下の通りです:
%env OPENAI_API_KEY=KEY
「KEY」をユーザーのOpenAI APIで置き換える必要があります。
セルを実行すると、アウトプットとしてキーを再度取得します。これによって、キーが環境変数として入力されたことが確認されます。

ステップ2: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 osimport wandbfrom openai import OpenAIclient = 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_promptprint(gpt_prompt)
以下のコードが続きます
message=[{"role": "assistant", "content": gpt_assistant_prompt}, {"role": "user", "content": gpt_user_prompt}]temperature=0.2max_tokens=256frequency_penalty=0.0response = client.chat.completions.create(model="gpt-4",messages = message,temperature=temperature,max_tokens=max_tokens,frequency_penalty=frequency_penalty)print(response.choices[0].message)
実行すると、これらは以下のようになります:

私が使っているものは以下の通りです:
- 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.contenttokens_used = response.usage.total_tokensprediction_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を使いますが、微調整はあまり必要ありません!
💡
関連文書
Attribute-Value Extraction With GPT-3 and Weights & Biases
In this article, we learn how to fine-tune OpenAI's GPT-3 for attribute-value extraction from products, looking at the challenges and how to overcome them.
Automating Change Log Tweets with Few-Shot Learning and GPT-3
A text summarization recipe using OpenAI GPT-3's few-shot learning and Weights & Biases
Add a comment