私の記事を読むと、あなた方は私がどれだけ美容とファッションについての知識を持っているかがわかるでしょう私は美容とファッションの分野において豊富な知識を持ち、それについて生き生きとした記事を書くことができます
「美容とファッションの専門家が贈る鮮やかで活気ある記事あなたも私の知識の豊かさを実感してください!」
2023年11月6日、OpenAIはGPTsのリリースを発表しました。このノーコードプラットフォームでは、プロフェッショナル(または趣味のある)開発者として、ツールやプロンプトを使用してカスタマイズされたGPTsやチャットボットを構築することができ、OpenAIのGPTとのインタラクションを効果的に変えることができます。以前のインタラクションでは、LangChain (新しいウィンドウで表示)またはLlamaIndex (新しいウィンドウで表示)を使用してGPTから応答を取得するために動的なプロンプティングを必要としました。今では、OpenAIのGPTsは外部のAPIやツールを呼び出して動的なプロンプティングを処理します。
これはまた、私たち(MyScale)がサーバーサイドのコンテキストを使用してプロンプトを構築していたRAGシステムの構築方法も変えます。これらのコンテキストをGPTsモデルに注入するようになりました。
MyScaleは、コンテキストをGPTsに注入する方法を簡素化します。たとえば、OpenAIの方法はWeb UIを介してファイルをGPTプラットフォームにアップロードすることです。対照的に、MyScaleではSQL WHERE句を使用して構造化データのフィルタリングと意味検索を組み合わせることができ、より低コストでより大きな知識ベースを処理および保存し、複数のGPTsで1つの知識ベースを共有することもできます。
今すぐGPTストアでMyScaleGPTを試してみるか、MyScaleのオープンな知識ベースをあなたのアプリにHugging Face上でホスティングされた当社のAPIと統合してみてください。
- ソフトウェアエンジニアリングの未来 生成AIによる変革
- 自動チケットトライアジによる顧客サポート効率の向上
- このAI論文は、オープンソースライブラリの既存の機能を最大限に活用するために開発された新しい人工知能アプローチ、ML-BENCHを提案しています
BYOK:独自の知識を持ち込む
GPTは過去の1年間で大幅に進化し、共有知識領域においてもたくさんの知識を持つようになりました。ただし、ドメイン固有の知識や最新のイベントなどについてはまだ知らないか不確かな点もあります。したがって、以前の記事で説明したように、外部の知識ベース(MyScaleに保存されている)をGPTに統合することは必須であり、その真実性と役立性を高めます。
私たちは、MyScaleでRAGを構築する際にLLMを私たちのチェーン(またはスタック)に持ち込みました。今回は、MyScaleのデータベースをGPTsプラットフォームに持ち込む必要があります。ただし、現在はGPTsとMyScaleの間で直接接続を確立することはできません。そのため、クエリインターフェースを調整し、それをREST APIとして公開しました。
以前に紹介したオープンAI関数の呼び出しの成功により、GPTはSQLのフィルタ文字列を使用してベクトル検索クエリを書くことができる類似のインターフェースを設計することができました。パラメータはOpenAPIとして以下のように書かれています:
異なるテーブルへのクエリエントリの提供
時には異なるテーブルを問い合わせる必要がある場合があります。これは別々のAPIエントリを使用して実装することができます。各APIエントリには独自のスキーマとドキュメントの下にプロンプトがあります。GPTは適用可能なAPIドキュメントを読み、対応するテーブルへの正しいクエリを書き込みます。
特に、以前に紹介した自己クエリリトリーバーやベクトルSQLなどのメソッドは、表の構造を説明するために動的または半動的なプロンプティングが必要です。代わりに、GPTsはLangChainの会話エージェントのように異なるツールを使用してテーブルをクエリするように機能します。
例えば、APIエントリは以下のようにOpenAPI 3.0で書くことができます:
GPTのActions
をナレッジベースの検索のために設定した後、単にInstructions
を埋め、GPTにナレッジベースをクエリし、ユーザーの質問に対する回答方法を伝えます:
注意: 質問に最善の回答をしてください。関連する情報を調べるために利用可能なツールを自由に使用してください。クエリをする際は、検索関数を呼び出す際にすべての詳細をクエリに含めてください。配列の文字列を持つMyScaleのナレッジベースを使用してクエリする場合は、has(column, value to match)
を使用してください。公開日をクエリする場合は、parseDateTime32BestEffort()
を使用して、文字列形式のタイムスタンプ値を日時オブジェクトに変換しますが、この関数を使用して日時型の列を変換することは絶対にありません。使用したドキュメントへの参照リンクを常に追加する必要があります。
OpenAPIとしてデータベースをホスティングする
GPTはOpenAI 3.0の基準に従ってAPIを適応します。データベースのようないくつかのアプリケーションにはOpenAPIのインターフェースがありません。そのため、GPTをMyScaleと統合するために中間層を使用する必要があります。
私たちはデータベースをOpenAI互換のインターフェースでHugging Face(新しいウィンドウが開きます)上にホストしました。私たちはflask-restx(新しいウィンドウが開きます)を使用して、実装を簡素化し、自動化し、コードを小さく、クリーンに、読みやすくするために取り組みました:app.py(新しいウィンドウが開きます)、funcs.py(新しいウィンドウが開きます)。
この良い点は、プロンプトと関数が結びついていることです。そのため、プロンプト、機能、拡張性の組み合わせについて考えすぎる必要はありません。人間が読める形式で記述し、それだけで良いです。GPTはダンプされたOpenAI JSONファイルからこのドキュメンテーションを読みます。
注意: flask-restx
は、APIをSwagger 2.0形式で生成します。最初にSwagger Editor(新しいウィンドウが開きます)でOpenAPI 3.0形式に変換する必要があります。参考にHugging Face上のJSON APIを使用することもできます。
APIからコンテキストを持って動作するGPT
適切な指示により、GPTは異なるデータ型を注意深く処理するための特殊な関数を使用します。これらのデータ型の例には、配列の列に対するhas(column, value)
やタイムスタンプの列に対するparseDateTime32BestEffort(value)
などのClickHouse SQL関数があります。
正しいクエリをAPIに送信した後、それはクエリに基づいてWHERE
句文字列でフィルタを使用してベクトル検索クエリを構築します。返された値は、データベースからの追加の情報として文字列にフォーマットされます。次のコードサンプルでは、この実装は非常にシンプルです。
GPTは間違いなくOpenAIの開発者インターフェースの重要な改善です。エンジニアはチャットボットを構築するためにあまりコードを書かなくて済み、ツールはプロンプトで自己完結になることができます。私たちはGPTのためのエコシステムを作り出すことが美しいと考えています。一方で、これはオープンソースコミュニティに既存のLLMsとツールを組み合わせる方法を再考するよう促すことにもなります。
私たちはMyScaleのようなベクトルデータベースをLLMsと統合するための新しいアプローチを探しており、この新しい挑戦に飛び込むことに非常に興奮しています。外部データベースに格納された外部の知識ベースを持ち込むことは、LLMの真実性と役立つ性を向上させると強く信じています。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- このAI論文は、効率的な水素燃焼予測のための画期的な機械学習モデルを紹介しています:「ネガティブデザイン」および反応化学におけるメタダイナミクスを活用しています
- 機械学習をマスターするための無料の5つのコース
- Google AIは、オーディオ、ビデオ、テキストの異なるモードにわたる学習のためのマルチモダルオートリグレッシブモデルであるMirasol3Bを発表しました
- 「最初の機械学習モデルの作成と提供」
- このフィンランド拠点のAIスタートアップがポロを発表:革命的なオープンソース言語モデルは、ヨーロッパの多言語AI能力を向上させます
- 「リアルAI社が、ヨーロッパのオープンソースの大規模言語モデルの構築プロジェクトに勝利」
- 「AWS reInvent 2023での生成的AIとMLのガイド」