ChatGPT Documentationを解説!AIチャットボットの新時代




Sponsored Link

ChatGPTの概要

 ChatGPTは、OpenAIが開発したGPT(Generative Pre-trained Transformer)モデルを利用したチャットボットです。GPTモデルは自然言語とコードを理解するように訓練されており、入力(プロンプト)に対してテキスト出力を提供します。GPTモデルを「プログラム」する方法は、基本的には指示を与えたり、タスクを成功させるための例を提供することでプロンプトを設計することです。

 

 GPTモデルを利用することで、以下のようなアプリケーションを構築することが可能です:

– ドキュメントの作成

– コンピュータコードの作成

– 知識ベースに関する質問の回答

– テキストの分析

– 会話エージェントの作成

– ソフトウェアに自然言語インターフェースを提供

– 様々な科目のチューター

– 言語の翻訳

– ゲームキャラクターのシミュレーション

– その他多数

 

 GPTモデルをOpenAI API経由で使用するには、入力とAPIキーを含むリクエストを送信し、モデルの出力を含むレスポンスを受け取ります。最新のモデルであるgpt-4とgpt-3.5-turboは、チャット補完APIエンドポイントを通じてアクセスされます。現在、補完APIエンドポイントを通じて利用可能なのは、古いレガシーモデルのみです。

 

Chat Completions API

 Chatモデルは、メッセージのリストを入力として受け取り、モデル生成のメッセージを出力として返します。チャット形式はマルチターンの会話を容易にするように設計されていますが、会話がないシングルターンのタスクにも同様に有用です。

API呼び出しの例は以下の通りです:

————————————————–

“`python
import openai
openai.ChatCompletion.create(
model=”gpt-3.5-t

すみません、メッセージが途中で切れてしまいました。以下に、続きを提供します。

“`python
model=”gpt-3.5-turbo”,
messages=[
{“role”: “system”, “content”: “You are a helpful assistant.”},
{“role”: “user”, “content”: “Who won the world series in 2020?”},
{“role”: “assistant”, “content”: “The Los Angeles Dodgers won the World Series in 2020.”},
{“role”: “user”, “content”: “Where was it played?”}
] )
“`

————————————————–

 主な入力は`messages`パラメータです。`messages`はメッセージオブジェクトの配列でなければならず、各オブジェクトは`role`(”system”、”user”、または”assistant”)と`content`を持つ必要があります。会話は1メッセージだけでも、または何度も行き来するものでも構いません。

通常、会話は最初にシステムメッセージが来て、その後はユーザーとアシスタントのメッセージが交互に続きます。

 システムメッセージはアシスタントの振る舞いを設定するのに役立ちます。例えば、アシスタントの性格を変更したり、会話全体を通じてどのように振る舞うべきかについて具体的な指示を提供することができます。ただし、システムメッセージはオプションであり、システムメッセージがない場合のモデルの振る舞いは、一般的なメッセージ(例:”You are a helpful assistant.”)を使用するのと似ている可能性があります。

 ユーザーメッセージはアシスタントが応答するリクエストやコメントを提供します。アシスタントメッセージは以前のアシスタントの応答を保存しますが、開発者が望む振る舞いの例を提供するために書かれることもあります。

 会話履歴を含めることは、ユーザーの指示が以前のメッセージを参照する場合に重要です。上記の例では、ユーザーの最後の質問「Where was it played?」は、2020年のワールドシリーズについての以前のメッセージの文脈でのみ意味をなします。モデルは過去のリクエストを記憶していないため、すべての関連情報は各リクエストの会話履歴の一部として提供する必要があります。会話がモデルのトークン制限内に収まらない場合、何らかの方法で短縮する必要があります。

 ChatGPTでテキストが反復的に返される効果を模倣するには、`stream`パラメータを`true`に設定します。

 

モデルの選択

 開発者は一般的に、gpt-4またはgpt-3.5-turboのいずれかを使用することを推奨します。これらのどちらを使用するべきかは、モデルを使用するタスクの複雑さによります。gpt-4は広範な評価で一般的により良いパフォーマンスを発揮します。特に、gpt-4は複雑な指示を慎重に追う能力があります。

一方、gpt-3.5-turboは複雑なマルチパートの指示の一部だけを追う可能性が高いです。gpt-4はgpt-3.5-turboよりも情報を作り出す(「幻覚」)可能性が低いです。また、gpt-4は最大8,192トークンの大きなコンテキストウィンドウを持っていますが、gpt-3.5-turboは4,096トークンです。ただし、gpt-3.5-turboはレイテンシが低く、トークンあたりのコストがはるかに低いです。

 

トークンの管理

 言語モデルは、トークンと呼ばれるテキストの塊を読み書きします。英語では、トークンは1文字から1単語(例:aまたはapple)までの長さで、一部の言語ではトークンは1文字よりも短いか、または1単語よりも長いことがあります。

API呼び出しのトークンの合計数は以下の影響を及ぼします:

– API呼び出しのコスト:トークンあたりで課金されます

– API呼び出しにかかる時間:より多くのトークンを書くのに時間がかかります

– API呼び出しが全体として機能するかどうか:全体のトークンはモデルの最大制限(gpt-3.5-turboの場合は4096トークン)以下でなければなりません

 

よくある質問(FAQ)

– モデルの出力が一貫しないのはなぜですか?

– APIはデフォルトで非決定的です。つまり、プロンプトが同じであっても、呼び出す毎回少し異なる補完が得られる可能性があります。`temperature`を0に設定すると、出力はほとんど決定的になりますが、少量の変動性が残ります。

 

– `temperature`パラメータはどのように設定すべきですか?

– `temperature`の値が低いほど、出力は一貫性がありますが、値が高いほど、出力は多様で創造的になります。特定のアプリケーションでの一貫性と創造性の間のトレードオフに基づいて、`temperature`の値を選択します。

 

– 最新のモデルに対するファインチューニングは利用可能ですか?

– いいえ。現在、ファインチューニングは基本的なGPT-3モデル(davinci、curie、babbage、ada)のみに対して利用可能です。ファインチューニングモデルの使用方法についての詳細は、ファインチューニングガイドを参照してください。

 

– APIに渡されるデータは保存されますか?

– 2023年3月1日現在、APIデータは30日間保持されますが、APIを通じて送信されたデータはもはやモデルの改善には使用されません。データ使用ポリシーで詳細を確認できます。

 

– モデレーションレイヤを追加したい場合はどうすればいいですか?

– Chat APIの出力にモデレーションレイヤを追加したい場合、OpenAIの使用ポリシーに違反するコンテンツの表示を防ぐために、モデレーションガイドを参照してください。

 

– ChatGPTとAPIのどちらを使用すべきですか?

– ChatGPTはOpenAI APIのモデルに対するチャットインターフェースと、統合ブラウジング、コード実行、プラグインなどの様々な組み込み機能を提供します。一方、OpenAIのAPIを使用すると、開発者にはより柔軟性が提供されます。

 

あなたにお薦めの商品やサービス

1.先読み!IT×ビジネス講座 ChatGPT 対話型AIが生み出す未来

2.Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

3.ゼロから作るDeep Learning ❷ ―自然言語処理編