私たちのイテレーションデプロイメントの理念に基づいて、私たちは ChatGPT のプラグインを段階的に導入しています。これにより、現実世界での使用、影響、安全性、調整に関する調査を行うことができます。私たちの使命を達成するためには、これらの作業を適切に行う必要があります。
ChatGPT をリリースして以来、ユーザーからはプラグインの使用を求める声がありました(多くの開発者も同様のアイデアを試しています)。プラグインの使用により、多くのユースケースが可能になります。私たちは少数のユーザーから始め、より多くの情報を得た後、プラグインのアクセスを段階的に拡大していく予定です(プラグイン開発者、ChatGPT ユーザー、およびアルファ期後にプラグインを製品に統合したい API ユーザー向け)。私たちは、人間と AI の相互作用の未来を形作るコミュニティを築くことを喜んでいます。
プラグイン開発者の候補者リストから招待された方は、私たちのドキュメントを使用して ChatGPT プラグインを構築し、モデルに表示されるプロンプトに有効なプラグインをリストアップし、各プラグインの使用方法をモデルに指示するドキュメントを作成することができます。最初のプラグインは、Expedia、FiscalNote、Instacart、KAYAK、Klarna、Milo、OpenTable、Shopify、Slack、Speak、Wolfram、Zapier によって作成されました。
私たち自身も 2 つのプラグイン、ウェブブラウザとコードインタプリタを持っています。また、知識ベース検索プラグインのコードもオープンソース化しました。情報を持つ開発者は、自分でホストすることで ChatGPT の機能を強化することができます。
今日から、ホワイトリストのユーザーや開発者にプラグインのアルファ権限を提供し始めます。最初は少数の開発者と ChatGPT Plus ユーザーを優先しますが、時間の経過とともにアクセスを拡大していく予定です。
概要
現在の言語モデルは、さまざまなタスクには有用ですが、まだ限定的です。学習できる情報は、トレーニングデータに含まれる情報に限られます。これらの情報は時代遅れであり、さまざまなアプリケーションには適用できません。さらに、言語モデルはテキストを生成することしかできません。このテキストには有用な指示が含まれているかもしれませんが、これらの指示に従うには別のプロセスが必要です。
プラグインは、言語モデルの「目と耳」となることができます。これにより、モデルはトレーニングデータに含まれない最新の、個人的な、具体的な情報を取得することができます。ユーザーの明示的な要求に応えるため、プラグインはモデルが安全で制限されたアクションを実行することができるようにすることで、システム全体の実用性を向上させることができます。
私たちは、AI インターフェースを持つアプリケーションを統一するためのオープンな標準の登場を期待しています。私たちはこのような標準を早期に試しており、一緒に開発に興味のある開発者からのフィードバックを求めています。
今日から、ChatGPT ユーザーに早期のパートナーの既存のプラグインを段階的に提供し始めます。また、開発者が独自のプラグインを ChatGPT に作成することも許可します。
今後数ヶ月間、デプロイメントから学び、セキュリティシステムを改善するためにこのプロトコルをイテレーションする予定です。また、OpenAI モデルを使用する開発者が独自のアプリケーションにプラグインを統合できるようにする予定です。
セキュリティと広範な影響
言語モデルを外部ツールに接続することには、新たな機会とリスクがあります。
プラグインは、大規模な言語モデルに関連するさまざまな課題を解決する可能性を提供します。これには、「幻覚」の解決、最新のイベントの追跡、および(許可された場合)専有情報源へのアクセスが含まれます。外部データへの明示的なアクセスを統合することにより、オンライン上の最新情報、コードベースの計算、またはカスタムプラグインの検索によって、言語モデルは証拠に基づいた参照を使用して反応を強化することができます。
これらの参照は、モデルの有用性を向上させるだけでなく、ユーザーがモデルの出力の信頼性を評価し、正確性を反復的にチェックすることで、過度の依存に関連するリスクを軽減する可能性があります。最後に、プラグインの価値は、既存の制約を解決するだけでなく、製品カタログの閲覧、フライトの予約、食品の注文など、さまざまな新しいユースケースをサポートするのに役立つかもしれません。
一方、リスクは、プラグインが有害な行動や予期しない行動を通じてセキュリティの課題を増加させ、詐欺、誤解、または他人への虐待を行う悪意のある行為者の能力を高める可能性があります。プラグインの範囲を広げることで、モデルが新しい領域で誤った行動や一貫性のない行動を取るリスクが増加する可能性があります。これらの要素は、最初の日から私たちのプラグインプラットフォームの開発を指導しており、いくつかの保護措置を実施しています。
私たちは、内部および外部の協力者とのレッドチームのテスト演習を実施し、関連する問題をいくつか特定しました。たとえば、私たちのレッドチームのメンバーは、プラグインの方法について発見しました - 保護措置なしでリリースされた場合、複雑なプロンプトインジェクションを実行し、詐欺やスパムメールを送信し、セキュリティ制限を回避し、プラグインに送信された情報を悪用することができます。これらの発見を使用して、リスクのあるプラグインの動作を制限し、プラグインがどのように、いつ動作するかについての透明性を向上させるためのセキュリティ緩和策を設計しています。また、これらの発見を使用して、プラグインへのアクセスを段階的に展開することを決定しました。
この領域のセキュリティリスクや緩和策に興味がある場合は、私たちの研究者アクセスプログラムに参加することをお勧めします。また、プラグインに関連するセキュリティおよび機能評価を提出するよう、開発者や研究者にもお願いしています。これは、最近オープンソース化された Evals フレームワークの一部として行われます。
プラグインは広範な社会的影響をもたらす可能性があります。たとえば、私たちは最近、ツールを使用する言語モデルが経済への影響が大きい可能性があることを示すワーキングペーパーを公開しました。より一般的には、他の研究者の発見と一致して、現在の AI 技術の波が雇用の変革、移転、創造の速度に大きな影響を与えると予想しています。私たちは、外部の研究者やお客様と協力して、これらの影響を研究したいと考えています。
ブラウジング(アルファ版)
実験的なモデルで、インターネットを閲覧する方法を知っています。
過去の作業(私たち自身の WebGPT、GopherCite、BlenderBot2、LaMDA2 など)に触発されて、言語モデルがインターネットから情報を読み取ることを許可することは、それらが議論できる内容の量を大幅に拡大し、トレーニングコーパスを超えて最新の情報にアクセスできるようにします。
以下は、ChatGPT ユーザーのブラウジング体験の例です。以前は、これらの質問を提出すると、モデルは丁寧にトレーニングデータに十分な情報が含まれていないことを指摘していました。この例では、ChatGPT が最新のオスカー賞に関する情報を検索し、その後、私たちが今ではおなじみの ChatGPT の詩のパフォーマンスを行っています。これは、ブラウジングが追加のエクスペリエンスとして機能する方法の一例です。
終端ユーザーに明らかな利益を提供するだけでなく、言語およびチャットモデルが徹底的かつ解釈可能な研究を行うことを可能にすることにより、スケーラブルなアライメントに非常に興味があります。
セキュリティの考慮事項
私たちは、Web ブラウジングプラグインを作成しました。これにより、言語モデルが Web ブラウザにアクセスできるようになります。このプラグインのテキストベースの Web ブラウザは、GET リクエストの送信に制限されており、一部のセキュリティリスクを減らすことができます(しかし、完全に排除するわけではありません)。これにより、情報の検索には便利ですが、フォームの送信などの「トランザクション」操作は含まれません。これらの操作には、より多くのセキュリティおよび保護の問題が関係しています。
ブラウジングは、Bing 検索 API を使用して Web 上のコンテンツを検索します。したがって、私たちは Microsoft の大量の作業を引き継いでいます:(1)情報源の信頼性と真実性、(2)問題のあるコンテンツの検索を防ぐ「安全モード」。このプラグインは独立したサービスで実行されるため、ChatGPT のブラウジングアクティビティは基盤の他の部分とは分離されています。
コンテンツクリエーターの尊重とウェブの規範を遵守するために、私たちのブラウザプラグインのユーザーエージェントは ChatGPT-User としてタグ付けされ、ウェブサイトの robots.txt ファイルを尊重するように設定されています。これにより、時折「クリックに失敗しました」というメッセージが表示されることがありますが、これはプラグインがウェブサイトの指示に従ってクロールを回避するためです。このユーザーエージェントは、ChatGPT ユーザーの代理として直接アクションを起こすために使用され、ウェブを自動的にクロールするためには使用されません。また、私たちは IP エクスポート範囲も公開しています。さらに、トラフィックを過剰に送信しないように、レート制限の措置も取っています。
robots.txt ファイルを使用して ChatGPT がウェブサイトをクロールしないようにすることもできます。その場合、ChatGPT はエラーメッセージを表示します。
コードインタプリタ(アルファ版)
Python を使用してアップロードやダウンロードを処理する実験的な ChatGPT モデル。
私たちのモデルには、Python インタプリタがあります。これは、サンドボックスとファイアウォールの実行環境で動作し、一時的なディスクスペースも提供しています。私たちのインタプリタプラグインで実行されるコードは、セッション内で評価され、チャット対話中に有効です(時間制限が設定されています)。その後の呼び出しは、前のセッションに基づいて構築することができます。現在、バックエンド API を呼び出すために設計されているプラグインですが、クライアント API を呼び出すプラグインも検討しています。
私たちのモデルがプログラミングスキルを活用してコンピュータの基本的な機能をより自然なインターフェースで提供できることを期待しています。熱心な初心者プログラマーが指先の速さで作業できるようにすることで、新しいワークフローを簡単かつ効率的にすることができ、プログラミングの利点を新たな対象者に開放します。
初期のユーザーリサーチから、コードインタプリタの統合が特に有用なユースケースを特定しました:
数量および質的な数学の問題の解決
データ分析と可視化
異なる形式間のファイル変換
ユーザーには、コードインタプリタの統合を試してもらい、他の有用なタスクを見つけるようにお願いしています。
セキュリティの考慮事項
モデルをプログラミング言語のインタプリタに接続することに関する主な考慮事項は、人工知能が生成したコードが現実世界で予期しない副作用を引き起こさないように適切なサンドボックス実行を行うことです。コードは安全な環境で実行され、外部インターネットからのアクセスを防ぐために厳格なネットワーク制御が使用されています。さらに、各セッションにはリソース制限が設定されています。インターネットアクセスの無効化により、コードサンドボックスの機能が制限されますが、これは適切な初期のバランスだと考えています。サードパーティのプラグインは、安全を最優先に考えた方法で設計されており、モデルを外部世界と接続します。
検索
オープンソースの検索プラグインにより、ChatGPT は個人または組織の情報源にアクセスできるようになります(許可された場合)。これにより、ユーザーは質問をしたり、自然言語でニーズを表現したりして、データソースから最も関連性の高いドキュメントの断片(ファイル、ノート、メール、またはパブリックドキュメントなど)を取得できます。
オープンソースで自己ホスト型のソリューションとして、開発者は独自のプラグインバージョンをデプロイし、ChatGPT に登録することができます。このプラグインは OpenAI の埋め込みを利用し、開発者はベクトルデータベース(Milvus、Pinecone、Qdrant、Redis、Weaviate、または Zilliz)を選択してドキュメントをインデックス化および検索することができます。情報源は Web フックを使用してデータベースと同期することができます。
まずは、検索プラグインライブラリにアクセスしてみてください。
セキュリティの考慮事項
検索プラグインは、ChatGPT がベクトルデータベースのコンテンツを検索し、最適な結果を ChatGPT のセッションに追加することを可能にします。これにより、外部への影響はなくなりますが、主なリスクはデータの許可とプライバシーです。開発者は、許可された使用でき、ChatGPT のセッションで共有できるコンテンツのみを検索プラグインに追加する必要があります。
サードパーティのプラグイン(アルファ版)
プラグインを使用するタイミングと方法を知っている実験的なモデル。
ChatGPT のサードパーティプラグイン
サードパーティのプラグインは、機械が読み取り可能なプラグイン機能と、それらを呼び出す方法の説明、およびユーザー向けのドキュメントを記述するリストファイルで説明されます。
プラグインを作成する手順は次のとおりです。
モデルが呼び出すエンドポイントを持つ API を構築します(これは新しい API、既存の API、または LLM のために特別に設計された既存の API パッケージのいずれかである可能性があります)。
API の OpenAPI 仕様を作成し、OpenAPI 仕様にリンクし、プラグイン固有のメタデータを含むリストファイルを作成します。
chat.openai.com で会話を開始する際、ユーザーは有効にするサードパーティのプラグインを選択することができます。有効になっているプラグインに関するドキュメントは、モデルに表示される会話の文脈の一部として表示され、モデルがユーザーの意図を実現するために適切なプラグイン API を呼び出すことができるようになります。現在、プラグインはバックエンド API を呼び出すために設計されていますが、クライアント API を呼び出すプラグインも検討しています。
将来展望
私たちはプラグインの開発に取り組んでおり、より多くの人々に提供することを目指しています。学ぶべきことがたくさんあり、皆さんの助けを借りて、有用で安全なものを構築したいと考えています。
注:記事には複数のビデオデモが含まれています。オリジナルの記事を参照してください。