翻訳者 |李睿 レビュー | Chonglou OpenAI が立ち上げた GPT は現在、世界で最も重要な人工知能ツールとなっており、トレーニング データに基づいてクエリを処理する能力に優れています。ただし、次のような未知のトピックに関する質問には回答できません。
ユーザーが頻繁に変更されるリアルタイム データを処理している場合、このタスクはさらに複雑になります。さらに、ユーザーは GPT に大量のコンテンツを投稿することはできず、またデータを長期間保持することもできません。この場合、回答プロセスのコンテキストを提供するために、カスタムの Large Language Model (LLM) アプリケーションを効率的に構築する必要があります。 この記事では、Python のオープンソース LLM App ライブラリを使用して、このようなアプリケーションを開発する手順について説明します。ソース コードは GitHub にあります (以下の「販売用 ChatGPT Python API の構築」セクションにリンクされています)。 学習目標この記事では、以下の内容について学ぶことができます。
ChatGPT にカスタム ナレッジ ベースが必要な理由は何ですか?ChatGPT の機能を強化する方法について議論する前に、まず人工的なアプローチを検討し、それらが直面する課題を特定します。通常、ChatGPT はインスタントエンジニアリングを通じて拡張されます。ユーザーがさまざまなオンライン マーケットプレイスでリアルタイムの割引/お得情報/クーポンを見つけたいとします。 たとえば、ChatGPT に「今週の Adidas メンズ シューズの割引を見つけるのを手伝ってくれませんか?」と質問する場合、カスタム知識がなければ、ChatGPT UI インターフェースから取得できる標準的な回答は次のようになります。 明らかに、ChatGPT は割引を見つけるための通常のアドバイスを提供していますが、割引の場所や種類などの詳細に関する具体的な情報が欠けています。このモデルを支援するために、信頼できるデータ ソースからの割引情報を補足します。実際の質問を投稿する前に、最初のドキュメント コンテンツを追加して ChatGPT に参加する必要があります。このサンプル データは、Amazon 製品トランザクション データセットから収集され、1 つの JSON 項目のみを使用してプロンプトに挿入されます。 上の図に示すように、ユーザーは期待どおりの出力を得られますが、ChatGPT はコンテキストを認識するようになったため、これは簡単に実現できます。ただし、このアプローチの問題は、モデルのシナリオが限られていることです (GPT-4 の最大テキスト長は 8,192 トークンです)。この戦略は、入力データのサイズが非常に大きい場合、すぐに問題になります。ユーザーは販売されている何千ものアイテムを見つけたいかもしれませんが、そのような大量のデータを入力メッセージとして提供することは現実的ではありません。さらに、データが収集されたら、データの品質と関連性を確保するために、データをクリーニング、フォーマット、および前処理する必要がある場合もあります。 ユーザーが OpenAI チャット完了エンドポイントを使用したり、ChatGPT 用のカスタム プラグインを構築したりすると、次の追加の問題が発生します。
埋め込み、プロンプトエンジニアリング、ChatGPT を使用した質問応答インターネット上で発見された有望なアプローチの 1 つは、大規模言語モデル (LLM) を活用して埋め込みを作成し、これらの埋め込みを使用して検索やクエリ システムなどのアプリケーションを構築することです。つまり、チャット完了エンドポイントを使用して ChatGPT をクエリする代わりに、次のクエリを実行します。 次の割引データ: {input_data} が与えられた場合、このクエリ: {user_query} に回答します。 コンセプトはシンプルです。このアプローチでは、質問を直接投稿する代わりに、まず OpenAI API を介して各入力ドキュメント (テキスト、画像、CSV、PDF、またはその他の種類のデータ) のベクトル埋め込みを作成し、次に生成された埋め込みにインデックスを付けて高速検索できるようにし、ベクトル データベースに保存し、ユーザーの質問を使用してベクトル データベースから関連ドキュメントを検索して取得します。これらのドキュメントは、プロンプトとして質問とともに ChatGPT に提示されます。この追加されたシナリオにより、ChatGPT は内部データセットでトレーニングされたかのように応答できます。 一方、Pathway LLM アプリを使用する場合は、ベクター データベースも必要ありません。これにより、リアルタイムのインメモリ データ インデックス作成が可能になり、ベクター ドキュメント データベースをクエリせずに互換性のあるストレージから直接データを読み取り、準備作業、インフラストラクチャ、複雑さなどのコストを追加せずに済みます。ソースとベクトルを同期させるのは面倒です。さらに、下線付きの入力データが時間の経過とともに変化し、再インデックス化する必要がある場合は、さらに困難になります。 LLM アプリを使用した ChatGPT カスタム データこれらの簡単な手順では、LLM アプリを使用してデータ用の ChatGPT アプリケーションを構築するためのデータ パイプライン アプローチについて説明します。
セールス向け ChatGPT Python API の構築LLM アプリの動作プロセスを明確に理解した後、以下の手順に従って割引検索アプリの構築方法を理解できます。プロジェクトのソースコードは GitHub にあります。このアプリケーションをすぐに使い始めたい場合は、このセクションをスキップしてリポジトリを直接クローンし、README.md ファイルの指示に従ってコード例を実行してください。 プロジェクト目標の例エンタープライズ検索に関する記事に触発されたこのサンプル アプリケーションは、Python で HTTP REST API エンドポイントを公開し、さまざまなソース (CSV、Jsonlines、API、メッセージ ブローカー、データベース) から最新の取引を取得して現在のセールに関するユーザーのクエリに回答し、OpenAI API 埋め込みとチャット完了エンドポイントを活用して AI アシスタントの応答を生成します。 ステップ 1: データ収集 (カスタム データの取り込み)簡単にするために、任意の JSON 行をデータ ソースとして使用できます。このアプリケーションは、discounts.jsonl などの JSON Lines ファイルを受け取り、ユーザー クエリを処理するときにこのデータを使用します。データ ソースでは、行ごとに 1 つのドキュメント オブジェクトが必要です。まず入力データを Jsonline に変換してください。以下は、単一の raw を含む Jsonline ファイルの例です。 最も素晴らしいのは、このアプリがデータ フォルダーの変更を常に認識していることです。別の JSON Lines ファイルを追加すると、LLM アプリが魔法のように動作し、AI モデルの応答を自動的に更新します。 ステップ2: データの読み込みとマッピングPathway の JSON Lines 入力コネクタを使用すると、ローカルの JSONlines ファイルが読み取られ、データ エントリがスキーマにマッピングされ、パスウェイ テーブルが作成されます。完全なソースコードは app.py で確認できます。 各データ行を構造化ドキュメント スキーマにマップします。完全なソースコードは App.py で確認できます。 ステップ3: データの埋め込み各ドキュメントは OpenAI API で埋め込まれ、埋め込みが取得されます。完全なソースコードは app.py で確認できます。 ステップ4: データのインデックス作成次に、結果の埋め込みに即時インデックスを構築します。 ステップ5: ユーザークエリの処理とインデックス作成REST エンドポイントを作成して、API リクエスト ペイロードからユーザー クエリを取得し、そのユーザー クエリを OpenAI API に埋め込みます。 ステップ6: 類似性検索とヒントエンジニアリング類似性検索は、インデックスを使用してクエリ埋め込みに最も関連性の高い一致を識別することによって実行されます。次に、ユーザーのクエリと取得された関連データ結果をマージしたプロンプトが作成され、メッセージが ChatGPT 完了エンドポイントに送信され、正確で詳細な応答が生成されます。 プロンプトを作成し、prompt.py で ChatGPT に内部知識を追加するときにも、同じシナリオ学習アプローチが採用されました。 ステップ7: レスポンスを返す最後のステップは、API 応答をユーザーに返すことです。 ステップ8: すべてをまとめる上記の手順をすべてまとめると、カスタム割引データ用の LLM 対応 Python API が作成され、app.py Python スクリプトに実装されていることがわかります。 ステップ9(オプション):インタラクティブUIを追加するアプリをよりインタラクティブでユーザーフレンドリーにするには、Streamlit を使用してフロントエンド アプリを構築できます。 アプリケーションを実行するREADME.mdファイルの「プロジェクトの実行方法」セクションの指示に従って、割引に関する質問を開始できます。API は、追加した割引データ ソースに基づいて応答します。 UI (データ ソースの適用) を使用してこの知識を GPT にフィードした後、どのように応答するかを確認します。 このアプリケーションは、Rainforest API と割引 .csv ファイル ドキュメント (これらのソースからのデータを即座にマージ) を取り込み、リアルタイムでインデックスを作成し、クエリの処理時にこのデータを使用します。 さらなる改善ChatGPT に割引の分野におけるドメイン固有の知識を追加することで、LLM アプリケーションのいくつかの機能が発見されました。他にもできることはたくさんあります:
原題: Python でリアルタイムデータに ChatGPT API を使用する方法、著者: Bobur Umurzokov |
>>: マスク氏の AI ツール Grok は ChatGPT のシェルですか?
[51CTO.com からのオリジナル記事]質問:皆さんはスマート シティについて知っていますか? ...
ジョージタウン大学の科学者が率いる国際研究チームは、COVID-19パンデミックの原因ウイルスである...
サービスは人間が行う仕事だということを否定する人はいないでしょう。しかし、テクノロジーはサービスを強...
この記事は、LLM に関する著者の見解を詳しく説明しています。主なポイントは次のとおりです。 Cha...
[[259716]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...
序文人間が世界を認識する際の約 80% は視覚によって行われます。そのため、コンピューターが人間の視...
最近、ディープラーニングが大々的に宣伝されており、人々はニューラル ネットワークをあらゆる場所で使用...
最近、工業情報化省は2020年の我が国のロボット産業の運営状況を発表しました。データによると、202...
はじめに:過去数年間を振り返ると、AIに関するネガティブな事件が頻繁に発生しており、政府は一連の政策...