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

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

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

GoogleCloudPlatformJapan

September 21, 2024
Tweet

More Decks by GoogleCloudPlatformJapan

Other Decks in Business

Transcript

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

    BigQuery もあるよ) 頼兼 孝幸 グーグル・クラウド・ジャパン合同会社 Application Modernization Specialist
  2. スピーカー自己紹介 グーグル・クラウド・ジャパン合同会社 アプリケーション モダナイゼーション スペシャリスト 担当製品エリア: • GKE • サーバーレス(Cloud

    Run) • CI/CD 最近は、生成 AI アプリ開発に触れることが増えてきました。 生成 AI のスペシャリストではありません。 頼兼 孝幸
  3. Proprietary + Confidential RAG(検索拡張生成)とは 大規模言語モデル(LLM)の出力の質を向上させるための技術 • 生成された回答の事実的正確性を向上させる • モデルが学習していない知識へのアクセスを可能にする(グラウンディング) •

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

    が発行される • 0 〜 N へトラフィックに応じて 高速にスケーリング • スケジュール、イベント駆動 で処理を実行 • HTTP/2, WebSocket, gRPC への対応 • 高度なトラフィック管理 が統合 サービス メッシュのサポート Preview • トラフィック管理の強化 • 可観測性の向上 • 暗黙的なサービス間認証(実装変更なし) GPU 対応 Preview • 生成 AI アプリにおける LLM の稼働が可能 • 画像、音声認識などのオンライン実行 • プレビュー中は事前申請が必要。 us-central1 のみ
  5. プロダクト概要 - Vertex AI 生成 AI 関連の特長 • プロンプトにテキスト、画像、動画、音声、 ドキュメントなどのデータだけでなく、複数

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

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

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

    Eventarc Vertex AI テキスト エンべディング chunk 毎にテキスト分割 768 次元ベクトル [ -0.010465549305081367, 0.037910543382167816, 0.0072224168106913567, … ]
  9. 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
  10. chunk 毎のベクトル データや、メタデータ登録 Cloud Storage Cloud Run Eventarc Vertex AI

    Firestore ドキュメント { “chunk”: “レストラン名: …”, “embedding”: Vector<768>, “metadata”: … }
  11. 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, )
  12. 取得したデータを背景に、 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, }, )
  13. 入力、出力、関連情報をまとめてデータ保持 Cloud Run Vertex AI BigQuery Pub/Sub { “question”: “この店のメニューの前菜が見たい

    ”, “answer”: “この店のメニューの前菜は ...”, “metadata”: { (DB データ、template、利用モデル、 レイテンシ など) } }
  14. 評価用プロンプトを用意 1. タスク 生成 AI モデルに与えられたタスク(要約、質問応答など)を明確に記述 2. 評価基準 出力結果の評価基準を具体的に定義(正確性、関連性、網羅性など) 3.

    期待される出力 理想的な出力例を提示することで、評価者が判断しやすくなる 4. 評価方法 評価者がどのような観点で評価すべきかを指示( 5 段階評価、Yes/No 評価など)
  15. 評価用プロンプトの例 タスク:与えられた業務オペレーションを要約して回答してください。 ###{プロンプト}### LLM による回答:###{回答}### 評価基準: • 正確性:要約は業務の重要な情報を正確に反映しているか? • 流暢さ:要約は自然な日本語で書かれているか?

    • 関連性:要約は業務の主な作業内容と関連性があるか? • 網羅性:要約は業務の主要なポイントを網羅しているか? 期待される出力:業務内容の主要なポイントを簡潔かつ正確にまとめた文章。 評価方法:各評価基準について、 5 段階評価で採点してください( 1: 非常に悪い、5: 非常に良い)。
  16. LLM による回答を LLM で評価 Cloud Run (jobs) BigQuery Vertex AI

    (Text Prompt) プロンプトに対する回答を評価 (定量的な評価指標を計測するために、 Rapid Evaluation API を使用する方法もある)
  17. 評価をデータやプロンプトに反映 評価 正確性: 4 流暢さ: 5 関連性: 5 網羅性: 4

    コメント 回答は業務内容を概ね正確に、かつ自然な日本語で要約しており、関連性も高いです。 特に、出荷準備から 配送、売上計上、顧客対応、アフターフォローまで、一連の流れを整理して説明している点は評価できます。 ただし、網羅性においては、一部改善の余地があります。 具体的な業務内容: 「ピッキングリストの作成」や「梱包」など、具体的な作業内容をもう少し詳しく記述 することで、より理解しやすくなります。 システム連携: WMS や会計システムへの連携など、システム面での連携について言及すると、業務フローの 理解が深まります。 業務担当者: それぞれの業務を誰が担当するのか、といった情報があると、より具体的なイメージが湧きます。
  18. 分析結果を反映 Cloud Storage Cloud Run Eventarc Vertex AI BigQuery ドキュメント内容の改善や

    必要な情報の追加 正確性、網羅性を上げるため の保持データ項目の追加 プロンプト構成、 テンプレートの改善 Firestore
  19. まとめ • 今回のフローは一例で、他プロダクトや 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 アプリを開発してみませんか?
  20. ServerlessDays Tokyo 2024 Day 2 ワークショップ Google Cloud で始める 生成

    AI を活用したアプリケーション開発入門 日程:9 月 22 日(日) 会場:docomo R&D OPEN LAB ODAIBA 時間: 12:00 - 12:50 Social/受付 12:50 - 13:00 イベントの説明 13:00 - 17:00 ワークショップ 参加登録 受付中! ご登録はこちら
  21. すべての Google Cloud 開発者、技術者、学生のための メンバーシップ プログラム! 知る 多彩なコンテンツで 最新情報が学べる 高める

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

    Cloud やデベロッパー界隈で注目のトピックについて、トークを繰り広げます。 AI / ML クラウド ネイティブ開発 DevOps / SRE データ分析 Game (GEM) ウェビナー ご登録はこちら Community
  23. 10 月 8 日(火)開催 現地会場:Google Cloud 渋谷オフィス(渋谷ストリーム) オンサイト参加は定員を設けております。 お申し込み多数の場合は抽選とさせていただきます。 詳細・ご登録はこちら

    何が学べる? ➔ クラウド移行のステップ、設計のコツ、プラッ トフォーム移行 ➔ アプリケーションや データベースのモダナイゼーション ➔ 生成 AI や、Cloud Workstations による開発 者体験の向上 誰が学ぶ? ➔ 情報システムエンジニア ➔ 情報システムマネージャ ➔ 開発者 この秋、開催 Google Cloud Modern Infra & Apps Summit ’24 今こそクラウドへ!仮想環境からの移行やモダナイズのノウハウとは goo.gle/gc-ias-next