翻訳者|朱 仙中 レビュー | 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 オープンソース ソフトウェアをリリースしました。
春の耕作シーズンとなり、全国各地で春耕作が行われています。農業農村部の最新データによると、国内の春穀...
最近の人工知能に関する議論には、OpenAI の大規模言語モデル (LLM) の GPT ファミリー...
AIに取って代わられにくい、人間の「鉄の飯碗」を探し続けていきましょう。医療業界では、AI と自動...
ビジュアル AI 分野の開発者にとって、適切なアルゴリズムを選択することはプロジェクトの戦いの半分を...
デモをダウンロード - 2.77 MB (元のアドレス)手書き文字認識.zipソースコードをダウンロ...
6月21日、WOT2019グローバルテクノロジーサミットとグローバル人工知能テクノロジーサミットが北...
アマゾンのドローン配送部門プライムエアで安全、飛行運用、規制業務を担当していたショーン・キャシディ氏...
アルゴリズムの中心的な問題はソートと検索です。これら 2 つの分野は最も広く使用され、最も徹底的に研...
ほとんどのディープラーニング モデルは Linux システムでトレーニングされていますが、Windo...