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

ナレッジベースはどのようにSQLを生成するのか / Knowledge Bases suppo...

hayao_k
December 09, 2024

ナレッジベースはどのようにSQLを生成するのか / Knowledge Bases supports structed data retrieval

宇宙最速のBedrock Recap LT会(AWS re:Invent 2024)でお話した資料です
https://jawsug.connpass.com/event/337666/

hayao_k

December 09, 2024
Tweet

More Decks by hayao_k

Other Decks in Technology

Transcript

  1. About Me • Cloud Engineer @ Saison Technology • AWS

    Ambassador • AWS Community Builder • 2019 - 2024 Japan AWS Top Engineer • 13x AWS Certified 2 @hayaok3 @hayao_k
  2. 4 どんな機能? • 自然言語から SQL を生成し、データベースからデータを取得する機能 • クエリエンジンとして利用できるのは現段階では Amazon Redshift

    のみ • Glue Data Catalog との統合により SageMaker Lakehouse 経由でのデータアクセスもサポート • 料金は 1,000 クエリあたり $2 かかるが、専用のベクターストアは不要 Users Amazon Bedrock SQL 生成 & 実行 応答 Amazon Redshift “11月の総売上高は?” SELECT customer_id, SUM(order_total) AS total_revenue FROM customer_orders WHERE order_date BETWEEN '2024-11-01' AND '2024-11-31’ GROUP BY customer_id ORDER BY total_revenue DESC; “11月の総売上高は XXX です”
  3. 6 何が嬉しいの? 社内情報を検索 したいビジネスユーザー ECサイト 利用者 “L サイズの在庫はありますか?” “商品の配送ステータスはどうなっていますか?” “部署ごとの有給休暇の平均取得日数を教えて”

    “AWS の資格保有者数を部門別に教えて” ・ 自然言語の問合せをもとにデータからインサイトを得られる ・ SQL や BI の知識の障壁を取り払うことができる ・ リアルタイム性が高いデータはドキュメントの セマンティック検索で情報取得することは難しい ・ この種のデータは構造化されたデータとして DB に保存されている
  4. • LLM は 構文的 に正しい SQL を生成することは得意 • 実際のデータベース環境は千差万別 •

    データベースやテーブルのスキーマ情報 • 値がコード化されて登録されている (Japan → JP) • 社内独自用語など癖の強いワードが使われている etc… • 環境のメタデータが無いと実行可能な SQL は生成できない 7 LLM による SQL 生成の課題 SELECT SUM(sales) AS total_sales FROM customers WHERE country = 'Japan'; SELECT SUM(sales) AS total_sales FROM tbl_cust_sales WHERE country = 'JP'; LLM が生成する SQL 実際に必要な SQL
  5. • 社員が自由にデータ活用できる環境として Data Driven Platform (DDP) を提供 • DDP に自然言語で問い合わせることにより

    SQL や BI の知識の障壁を取り払う ChatDDP (JAWS-UG東京 2023 〜Bedrock Night〜より) 8 Azure OpenAI Service 顧客管理 購買管理 経費管理 案件管理 会計 社員マスタ データ連携 Data Driven Platform ( Snowflake ) Users ChatDDP ( LangChain & Streamlit ) 部署ごとの有給休暇の 平均取得日数を教えて Vector DB ( Faiss ) テーブル定義およびメタデータを ベクトル化して格納 SQL の生成 回答の生成 SQL の実行 自社データ
  6. • データベースのメタデータを取得 • スキーマを変更するたびに、変更の同期が必要 • SQL クエリの実行履歴を取得 • 追加のコンテキスト情報をユーザーが設定可能 •

    テーブルまたは列名の説明 • SQL 生成に含める/除外するテーブル名または列名の指定 • キュレーションされたクエリ • サンプルの質問とそれに対する SQL の例を事前定義できる 9 ナレッジベースの精度向上アプローチ
  7. 10 SQL 生成の精度向上のコツは他にも Generating value from enterprise data: Best practices

    for Text2SQL and generative AI https://aws.amazon.com/jp/blogs/aws/new-amazon-bedrock-capabilities-enhance-data-processing-and-retrieval/
  8. References 12 • New Amazon Bedrock capabilities enhance data processing

    and retrieval • https://aws.amazon.com/blogs/aws/new-amazon-bedrock-capabilities-enhance-data- processing-and-retrieval/ • Build a knowledge base by connecting to a structured data store • https://docs.aws.amazon.com/bedrock/latest/userguide/knowledge-base-build-structured.html • Unlocking power of structured data with Amazon Bedrock Knowledge Bases (AIM396) • https://www.youtube.com/watch?v=SdKfdkec7SQ • GenerateQuery API • https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent- runtime_GenerateQuery.html