『Google Vertex AI Search&Conversationを使用してRAGチャットボットを構築する』
『Google Vertex AIを活用したRAGチャットボット構築』
Googleは最近、彼らの管理されたRAG(取得強化生成器)サービス、Vertex AI Search & ConversationをGA(一般提供)にリリースしました。このサービスは、以前Google Enterprise Searchとして知られており、既に繁栄しているLLM(大規模言語モデル)チャットボット市場にさらなる競争をもたらします。
本記事では、LLMパワードチャットボットの構築に関するRAGフレームワークについてのいくつかの知識を持っていることを前提とします。以下の図は、LangchainからのRAGの良い紹介を提供します。
この記事では、Google Vertex AI Search & Conversationを使用してLLMチャットボットを設定することに主眼を置いています(この記事の残りでは、Vertex AI Searchを使用します)。
ソリューションダイアグラム
Datastore
- 「機械学習をマスターするための5つの無料の本」
- 「インタリーブされた視覚と言語の生成における新たな道を切り拓く:MiniGPT-5とジェネラティブVokenの力を解き放つ」
- 「言語モデルの微調整を革命化する:NEFTuneのノイズ付き埋め込みで達成する前例のない向上」
Vertex AI Searchは現在、html、pdf、およびcsv形式のソースデータをサポートしています。
Vertex AI Searchは現在、html、pdf、およびcsv形式のソースデータをサポートしています。ソースデータはGoogleの検索インデックスから収集されます(Google検索で使用される同じインデックスです)。これは、ウェブサイト情報を抽出するための別個のスクレイピングメカニズムが必要な他のプロバイダと比べて主な利点です。
非構造化データ(現在はpdfとhtmlのみサポートされています)の場合、ファイルはまずCloud Storageバケットにアップロードする必要があります。このストレージバケットは、利用可能などの任意のリージョンに配置できます。
⚠️ Vertex AI Searchのデータストアは、Cloud Storageとは異なります。これは、他のプロバイダでしばしば「ベクトルデータベース」として参照されるものと似ています。
Vertex AI Searchの各アプリには現在独自のデータストアがあります。単一のアプリの下に複数のデータストアを持つことも可能です。
デモンストレーションの目的で、オンラインで利用可能な学生ハンドブックのサンプルPDFを使用します(https://www.bcci.edu.au/images/pdf/student-handbook.pdf)。注意:私たちはこの組織とは関連していません(オンラインで見つけることができるサンプルPDFです)
ステップ1 – PDFファイルの準備:
Pythonを使用してシングルのPDFハンドブックを複数のページに分割します。これにはわずか数秒かかります。
from PyPDF2 import PdfWriter, PdfReaderinputpdf = PdfReader(open("student-handbook.pdf", "rb"))for i in range(len(inputpdf.pages)): output = PdfWriter() output.add_page(inputpdf.pages[i]) with open("./split_pdfs_student_handbook/document-page%s.pdf" % i, "wb") as outputStream: output.write(outputStream)
ステップ2 — GCSバケットへのアップロード:
PDFファイルをGoogle Cloud Storageにアップロードする必要があります。Googleコンソールを使用するか、お好きな言語でGCP SDKを使用することができます。
単一のPDF文書のみが必要な場合は、このデモでは「clickops」を使用します。
PDFファイルをCloud Storageバケットにドロップしましょう。
ステップ3 — アプリとデータストアのセットアップ:
GCPコンソールで、「Search and Conversation」を検索し、「アプリの作成」をクリックします。チャットアプリのタイプを選択します。会社とエージェントの名前を設定してアプリを構成します。注意:エージェントはグローバルリージョンでのみ利用可能です。
次に、データストアを作成します。 「Cloud Storage」を選択し、ステップ2で作成したバケットを選択します。
次に、データストアを作成するように求められます。これは、意味的検索とLLMのための埋め込みを格納するためのベクトルデータストアです。
「Cloud Storage」を選択します。次に、前のステップで作成したCloud Storageを選択します。
次に、「続行」をクリックします。その後、埋め込みが開始されます。このプロセスは、データの量に応じて数分から1時間かかる場合があります。また、GCPには非同期クライアントが利用可能なSDKライブラリがあり、プロセス全体を迅速化することができます。それ以外の場合は、常にGCPコンソールを使用することができます。デフォルトでは同期APIコールが使用されます。
進行状況はアクティビティタブで確認できます。
インポートが完了したら、左側の「プレビュー」に移動します。これにより、Dialogflow CXコンソールに移動します。
ステップ4 — Dialogflow:
Dialogflowコンソールで、「スタートページ」をクリックします。右側にデータストアの設定が開きます。同時に複数のデータストア(ウェブサイト、PDFなど)を選択することができます。この場合、ステップ3で作成した学生ハンドブックにしておきます。
データストア設定の下で、「Generator」を見つけてください。
以下のプロンプトを追加してください:
あなたはThe Best Collegeで働く仮想アシスタントです。学生ハンドブックに基づいて一般的なアドバイスを提供します。常に礼儀正しく建設的な言葉で応答してください。前回の会話:$conversation \nこれがユーザーの質問です:$last-user-utterance \n次に知っておく必要のある文脈情報があります:$request.knowledge.answers \nこちらがあなたの回答です:
$conversation、$last-user-utterance、$request.knowledge.answersはDialogflowのパラメーターです。
‘Input Parameter’に$last-user-utteranceと入力してください。これにより、ユーザーの質問がジェネレーターに渡されます。’Output Parameter’には$request.generative.student-assistant-responseと入力してください。必ずトップの「保存」ボタンを押してください!
Agentが言う部分には、$request.generative.student-assistant-responseと入力するのを忘れないでください。これにより、ジェネレーターからの出力がエージェントのチャットで受け取られることが保証されます。
ステップ5 – テストと統合:
このボットをテストするには、右上隅の「Test Agent」シミュレータをクリックするか、左側の「Manage Tab」を使用して統合を選択することができます。個人的には、「Dialogflow Messenger」を使用して「Test Agent」よりも好みます。なぜなら、最終的な応答形式が表示されるからです。
Dialogflow Messengerをクリックしたら、「非認証APIの有効化」を選択してください。これはテスト用です。実際のケースでは、認証の要件に応じてこれを有効にするかどうかを選択できます。
さあ、質問を入力してください。RAGが生成した回答は、学生ハンドブックPDFに基づいています。また、下部に参照リンクが付いています。クリックすると、該当する情報が含まれているPDFのページに移動します。
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
- 「Amazon Textract、Amazon Bedrock、およびLangChainによるインテリジェントドキュメント処理」
- T-Mobile US株式会社は、Amazon TranscribeとAmazon Translateを通じて人工知能を利用し、顧客の希望する言語でボイスメールを提供しています
- 「DiagrammerGPT」に会いましょう:LLMの知識を活用して、全体的なダイアグラム計画の立案と洗練を行う、画期的な2段階テキストからダイアグラムを生成するAIフレームワーク
- LoRa、QLoRA、およびQA-LoRa:低ランク行列分解を通じた大規模言語モデルの効率的な適応性
- このAIニュースレターがあれば、あなたは全てが揃った!#70
- クラウドストライクは、Fal.Con 2023におけるAI駆動のセキュリティに関するビジョンを概説します
- 「リトリーバルの充実は長文の質問応答にどのように影響を与えるのか? このAIの研究は、リトリーバルの充実が言語モデルの長文での知識豊かなテキスト生成にどのような影響をもたらすかについて新しい示唆を提供します」