翻訳者|朱 仙中 レビュー | Chonglou 概要:このブログでは、検索拡張生成と呼ばれるプロンプトエンジニアリング手法について学び、 Langchain、ChromaDB、GPT 3.5の組み合わせに基づいてそれを実装します。 モチベーションGPT-3 などのビッグデータトランスフォーマー ベースのモデルの登場により、自然言語処理 (NLP) の分野は大きな進歩を遂げました。これらの言語モデルは人間のようなテキストを生成することができ、チャットボット、コンテンツ生成、翻訳などさまざまな用途に使用されています。ただし、特殊で顧客固有の情報を含むエンタープライズアプリケーションのシナリオの場合、従来の言語モデルでは要件を満たせない可能性があります。一方、新しいコーパスを使用してこれらのモデルを微調整するには、コストと時間がかかります。この課題に対処するために、検索拡張生成 (RAG) と呼ばれる技術を使用できます。 このブログでは、この検索拡張生成( RAG )手法がどのように機能するかを探り、実際の例を通してその有効性を示します。この例ではGPT-3.5を使用することに注意してください。 Turbo は、追加のコーパスとして製品マニュアルに応答します。 特定の製品に関する問い合わせに応答できるチャットボットの開発を任されていると想像してください。この製品には、エンタープライズ製品専用の独自のユーザー マニュアルがあります。 GPT-3 などの従来の言語モデルは、一般的なデータでトレーニングされることが多く、この特定の製品を理解できない可能性があります。一方、新しいコーパスを使用してモデルを微調整することが解決策であると思われますが、このアプローチにはかなりのコストとリソース要件が伴います。 検索強化生成 (RAG) の概要検索拡張生成 (RAG) は、特定のドメインで文脈的に適切な応答を生成する問題に対して、より効率的なアプローチを提供します。 RAG は、新しいコーパスを使用して言語モデル全体を微調整する代わりに、検索の力を活用して、オンデマンドで関連情報にアクセスします。 RAG は、検索メカニズムと言語モデルを組み合わせることで、外部コンテキストを組み込むことで応答を強化します。この外部コンテキストはベクトル埋め込みとして提供できます。 以下に、この記事でアプリケーションを作成するために従う必要がある手順のプロセスを示します。
この例では、追加のコーパスとして Focusrite Clarett ユーザー マニュアルを使用することに注意してください。 Focusrite Clarett は、オーディオの録音と再生のためのシンプルな USB オーディオ インターフェイスです。ユーザー マニュアルは、リンク https://fael-downloads-prod.focusrite.com/customer/prod/downloads/Clarett%208Pre%20USB%20User%20Guide%20V2%20English%20-%20EN.pdfからダウンロードできます。 実践演習仮想環境の設定システムで発生する可能性のあるバージョン/ライブラリ/依存関係の競合を回避するために、実装をカプセル化する仮想環境を設定しましょう。ここで、次のコマンドを実行して、新しいPython 仮想環境を作成します。 OpenAIキーを作成する次に、 GPT にアクセスするための OpenAI キーが必要になります。 OpenAI キーを作成しましょう。 https://platform.openai.com/apps のリンクで OpenAI にサインアップすると、OpenAIKey を無料で作成できます。 登録が完了したら、ログインしてスクリーンショットのように API オプションを選択します (時間の制約により、私が撮影したスクリーンショットから開いたときに画面のデザインが変わる可能性があります) 。 次に、アカウント設定に移動して「API キーの表示」を選択します。 次に、 「新しい秘密鍵を作成」を選択すると、以下のようなポップアップウィンドウが表示されます。名前を入力するとキーが生成されます。 このアクションにより一意のキーが生成されるので、それをクリップボードにコピーして安全な場所に保存する必要があります。 次に、上のフローチャートに示されているすべての手順を実装する Python コードを記述してみましょう。 依存ライブラリをインストールするまず、必要なさまざまな依存関係をインストールしましょう。以下のライブラリを使用します。
これらの依存関係が正常にインストールされたら、最後の手順で作成した OpenAI キーを保存する環境変数を作成します。 次にプログラミングを始めましょう。 ユーザーマニュアルのPDFからベクトル埋め込みを作成し、ChromaDBに保存します。次のコードでは、使用するすべての依存ライブラリと関数をインポートします。 次のコードでは、PDF が読み取られ、ドキュメントがトークン化されてトークンに分割されます。 次のコードでは、色度データベースを保存するためのローカル ディレクトリである色度コレクションを作成します。次に、ベクトル埋め込みを作成し、それを ChromaDB データベースに保存します。 このコードを実行すると、ベクター埋め込みを保存するフォルダーが作成されます。 ここで、ベクトル埋め込みをChromaDB に保存します。次に、 LangChain のConversationalRetrievalChain API を使用して、チャット履歴コンポーネントを起動します。 GPT 3.5 Turboで起動したOpenAIオブジェクトと作成したVectorDBを渡します。メッセージの保存に使用されるConversationBufferMemoryを渡します。 セッション取得チェーンを初期化したので、チャットや質問に使用できます。次のコードでは、ユーザーが「done」と入力するまで、ユーザー入力(質問)を受け入れます。次に、質問を LLM に渡して回答を取得し、印刷してもらいました。 出力のスクリーンショットを以下に示します。 まとめこの記事からわかるように、検索拡張生成は、GPT-3 のような言語モデルの強みと情報検索の力を組み合わせた優れた手法です。検索拡張生成では、入力をコンテキスト固有の情報で強化することにより、言語モデルがより正確でコンテキストに適した応答を生成できるようになります。微調整が現実的でない可能性があるエンタープライズアプリケーションのシナリオでは、検索拡張生成により、ユーザーとのカスタマイズされた情報に基づいた対話のための効率的でコスト効率の高いソリューションが提供されます。 翻訳者紹介Zhu Xianzhong 氏は、51CTO のコミュニティ エディターであり、51CTO の専門ブロガー兼講師であり、濰坊の大学のコンピューター教師であり、フリーランス プログラミング コミュニティのベテランです。 原題:プロンプトエンジニアリング: 検索拡張生成(RAG) 、著者: AB Vijay Kumar |
<<: Nvidia は、ハイエンド GPU チップ上の AI モデルのパフォーマンスを向上させる TensorRT-LLM オープンソース ソフトウェアをリリースしました。
2022年北京冬季オリンピックが新たなニュースをもたらしました。冬季オリンピックでの「ブラックテク...
人口減少と人件費の高騰が進む中、ロボットは産業構造改革の中核となっている。ロボットが産業のアップグレ...
[[184749]] 1. 人工知能の波が再び高まっている画期的な出来事:AlphaGoがイ・セド...
組み込み人工知能とは、組み込み環境で人工知能を実行することです。アルゴリズムモデルは以前と同じですが...
[[249559]]近年のAI分野を調査していく中で、近年、世界中の研究者の視野の中に敵対的攻撃とい...
コード設計では、このようなシナリオによく直面します。2 つの要素が与えられた場合、それらが同じセット...
過去数年間、教師なし学習と自己教師あり学習 (SSL) は大きな進歩を遂げてきました。SSL を通じ...
人間レベルのパフォーマンス、人間レベルの精度…顔認識、物体検出、問題解決など、AI システムを開発す...
[[387622]]ビジネスの世界が人々の想像よりも速く変化することは周知の事実です。この問題に対処...
一気に15言語で22の1位を獲得!いや、もっとすごいのは、彼は40以上の言語を読んで理解できるという...
携帯電話からウェアラブルデバイス、翻訳製品まで、人工知能は人々の日常生活に広く浸透しています。 5G...
[[190364]]この記事は、写真付きの 4 つの例を含む 6 時間かけて執筆されました。目的は、...