Upgrade to Pro — share decks privately, control downloads, hide ads and more …

実践!サーバーレス RAG 構築:Firestore ベクトル検索と VertexAI LLM 活用

実践!サーバーレス RAG 構築:Firestore ベクトル検索と VertexAI LLM 活用

GoogleCloudPlatformJapan

September 20, 2024
Tweet

More Decks by GoogleCloudPlatformJapan

Other Decks in Business

Transcript

  1. 実践!サーバーレス RAG 構築 :Firestore ベクトル検索と VertexAI LLM 活用 頼兼 孝幸

    グーグル・クラウド・ジャパン合同会社 Application Modernization Specialist
  2. Proprietary + Confidential RAG(検索拡張生成)とは 大規模言語モデル(LLM)の出力の質を向上させるための技術 • 生成された回答の事実的正確性を向上させる • モデルが学習していない知識へのアクセスを可能にする(グラウンディング) •

    モデルが使用する知識を変更する • モデルが情報源を引用できるようにする つまり、信頼できる専門性も理解した、最新かつ正確なデータを基に生成 AI が回答を 生成するために RAG が必要となる
  3. プロダクト概要 - Cloud Run 特長 • コンテナをデプロイするだけで 外部 から到達可能な URL

    が発行される • 0 〜 N へトラフィックに応じて 高速にスケーリング • イベント駆動 で処理を実行 • HTTP/2, WebSocket, gRPC への対応 • 高度なトラフィック管理 が統合 サービス メッシュのサポート Preview • トラフィック管理の強化 • 可観測性の向上 • 暗黙的なサービス間認証(実装変更なし) Cloud Run Jobs • HTTP リクエストに依らない実行 • 分散タスクの実行で、より長時間の実行が可能 • 明示的な並列処理や、リトライ回数を定義
  4. プロダクト概要 - Vertex AI 生成 AI 関連の特長 • プロンプトにテキスト、画像、動画、音声、 ドキュメントなどのデータだけでなく、複数

    のデータ(マルチモーダル )を含めること が可能 • テキストの多次元ベクトルデータ を 作成し、ベクトル検索を可能に • モデルのチューニングも可能 Model Garden • Google 製(Gemini、Imagen、Codey)、サードパー ティ製(Anthropic の Claude Model Family)、オープン モデル(Gemma、Llama 3.1)など、 幅広いモデルを選択して API アクセス可能 Agent Builder • 開発者が自然言語またはコードを使用して、 AI エージェントとアプリを構築できるローコード プラットフォーム
  5. プロダクト概要 - Firestore 特長 • スケーラブルでメンテナンス不要 のサー バーレス ドキュメント DB

    • スキーマレスで柔軟なデータモデル • 従量課金(オペレーション、ストレージ、 ネットワーク帯域幅) • クライアントとリアルタイム同期 可能 • Firebase と統合 • 無料枠が存在 ベクトル検索のサポート • K 最近傍(KNN)ベクトル検索が可能 • 開発の柔軟性とコスト効率を高めることが可 複数の DB 対応(Datastore モードと混合も可) • 1 プロジェクト内でリージョン、また、 Firestore モードの 種別を分けた複数データベースが作成可能
  6. イベントをトリガーに POST リクエスト Cloud Storage Cloud Run Eventarc Request body

    { “bucket”: “GCS バケット名”, “name”: “オブジェクト PATH”, “contentType”: “application/pdf”, "updated": "2024-09-11T08:31:03.618Z" ... }
  7. PDF データを取得して chunk 分割後、 テキスト エンベディングを作成 Cloud Storage Cloud Run

    Eventarc Vertex AI テキスト エンべディング chunk 毎にテキスト分割 768 次元ベクトル [ -0.010465549305081367, 0.037910543382167816, 0.0072224168106913567, … ]
  8. Field に対してベクトル インデックス作成 Cloud Storage Cloud Run Eventarc Vertex AI

    Firestore gcloud firestore indexes composite create \ --collection-group=collection-group \ --query-scope=COLLECTION \ --field-config field-path=vector-field,vector-config='vector-configuration' \ --database=database-id
  9. chunk 毎のベクトル データや、メタデータ登録 Cloud Storage Cloud Run Eventarc Vertex AI

    Firestore ドキュメント { “chunk”: “レストラン名: …”, “embedding”: Vector<768>, “metadata”: … }
  10. Firestore でベクトル検索 Cloud Run Firestore Python の例 from google.cloud import

    firestore from google.cloud.firestore_v1.base_vector_query import DistanceMeasure from google.cloud.firestore_v1.vector import Vector db = firestore.Client(project=project_id) collection = db.collection(COLLECTION_NAME) collection.find_nearest( vector_field=EMB_FIELD_NAME, query_vector=Vector(query_embedding), distance_measure=DistanceMeasure.EUCLIDEAN, limit=5, )
  11. 取得したデータを背景に、 LLM に生成リクエスト Cloud Run Vertex AI Python の例 history

    = [] for snapshot in vector_query.get(): text_chunk = snapshot.get("chunk") history.append(Content(role="model", parts=[Part.from_text(text_chunk)])) history.append(Content(role="user", parts=[Part.from_text(query.query)])) responses = generation_model.generate_content( contents=history, generation_config={ "max_output_tokens": 8192, "temperature": 1, "top_p": 0.95, }, )
  12. 入力、出力、関連情報をまとめてデータ保持 Cloud Run Vertex AI BigQuery Pub/Sub { “question”: “この店のメニューの前菜が見たい

    ”, “answer”: “この店のメニューの前菜は ...”, “metadata”: { (DB データ、template、利用モデル、 レイテンシ など) } }
  13. まとめ • 今回のフローは一例で、他プロダクトや API を利用する方法も当然あります • VM や VPC ネットワークの作成不要で

    RAG を実践できるのが優位なポイント ◦ Cloud Storage (Object storage) ◦ Cloud Run (Web App / API / Data transform) ◦ Firestore (DB / Vector search) ◦ Vertex AI (GenAI text generation / embeddings) ◦ BigQuery (Analytics) • Google Cloud のサーバーレス環境で、生成 AI アプリを開発してみませんか?
  14. すべての Google Cloud 開発者、技術者、学生のための メンバーシップ プログラム! 知る 多彩なコンテンツで 最新情報が学べる 高める

    学習プログラムで スキルアップできる つながる キャリアや年齢を超えた 仲間と交流できる cloud.google.com/innovators ご登録はこちら メンバー特典 メンバー登録受付中! コミュニティ オンライン学習プラットフォーム「 Google Cloud Skills Boost 」を活用でき るよう、毎月 35 クレジットが無料で付与されます。
  15. Innovators Live Japan デベロッパー・エンジニア向けのセッションを ライブ配信でお届け! https://goo.gle/GCI-LIVE-JP Google Cloud のメンバーやユーザーが、 Google

    Cloud やデベロッパー界隈で注目のトピックについて、トークを繰り広げます。 AI / ML クラウド ネイティブ開発 DevOps / SRE データ分析 Game (GEM) ウェビナー ご登録はこちら Community