翻訳者|朱 仙中 レビュー | 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 オープンソース ソフトウェアをリリースしました。
チャット プラグイン システムは、ChatGPT の機能を拡張し、独自のビジネス データを組み込み、...
9月末、OpenAIはChatGPTのマルチモーダル機能の禁止を解除すると発表しました。マルチモーダ...
2022年7月12日、九張雲済DataCanvas社は、もう一つの画期的なオープンソース技術成果であ...
囲碁は伝統的な高知能ゲームです。旗取りのプレイヤーは、正方形の格子模様のチェス盤と白黒の丸いチェスの...
スマートホーム テクノロジーは、家電製品、ホーム セキュリティ、照明、エンターテイメントを強化します...
レイチェル・レイコック約 2 か月前、私は Thoughtworks の CTO になりました。それ...
[[228895]] AI は囲碁のゲームを変え、今度はポスターのデザインを変えています。アリババ...
最近では、GPT や LLaMA などの大規模言語モデル (LLM) が世界中で人気になっています。...
[[269361]] [51CTO.com クイック翻訳] 人工知能は、これまでで最も驚くべきイノベ...
ChatGPTの登場以来、大規模言語モデル(LLM)は飛躍的な発展を遂げ、自然言語に基づく人間とコン...
誰もが騙される可能性がある現代では、別の人を騙して機械が騙されるかどうか試してみませんか?人工知能の...
メタバースの概念がますます普及するにつれて、さまざまな業界がこの豊かな土地を探索し始めました。多くの...
クラスの不均衡: 希少疾患の機械学習データセット(陽性が約 8%)があるとします。この場合、トレーニ...
衣服のデザインから将来のファッショントレンドの発見、パーソナルスタイリストになること、そして消費者の...