構造化照会言語 (SQL) は、データベースとメタデータの理解を必要とする複雑な言語です。今日、 generative AI SQL の知識がない人でも使用できるようになります。この生成 AI タスクは text-to-SQL と呼ばれ、自然言語処理 (NLP) から SQL クエリを生成し、テキストを意味的に正しい SQL に変換します。この投稿のソリューションは、自然言語を使用してデータへのパスを短縮することで、エンタープライズ分析の運用を次のレベルに引き上げることを目的としています。
大規模言語モデル (LLM) の出現により、NLP ベースの SQL 生成は大きな変革を遂げました。 LLM は優れたパフォーマンスを示し、自然言語記述から正確な SQL クエリを生成できるようになりました。しかし、課題はまだ残っています。まず、人間の言語は本質的に曖昧で文脈に依存しますが、SQL は正確で数学的で構造化されています。このギャップにより、ユーザーのニーズが生成される SQL に不正確に変換される可能性があります。次に、データは単一のターゲットに保存されないことが多いため、データベースごとに text-to-SQL 機能を構築する必要がある場合があります。ユーザーが NLP ベースの SQL を生成できるようにするには、データベースごとに機能を再作成する必要がある場合があります。 3 番目に、データ レイクやウェアハウスなどの集中分析ソリューションの採用が増えているにもかかわらず、目的のソースの SQL を作成するために必要なテーブル名やその他のメタデータが異なるため、複雑さが増しています。したがって、包括的で高品質のメタデータを収集することも依然として課題です。 text-to-SQL のベスト プラクティスと設計パターンの詳細については、次を参照してください。 エンタープライズ データからの価値の生成: Text2SQL と生成 AI のベスト プラクティス.
私たちのソリューションは、次の方法を使用してこれらの課題に対処することを目的としています。 アマゾンの岩盤 および AWS 分析サービス。 を使用しております 人間的クロード v2.1 Amazon Bedrock に LLM として登録されています。この課題に対処するために、当社のソリューションではまずデータ ソースのメタデータを AWSGlueデータカタログ 生成された SQL クエリの精度を向上させます。ワークフローには、SQL の問題が特定された場合に備えて、最終的な評価と修正のループも含まれています。 アマゾンアテナ、SQL エンジンとしてダウンストリームで使用されます。 Athena を使用すると、さまざまな機能を使用できます。 サポートされているエンドポイントとコネクタ 大規模なデータ ソース セットをカバーします。
ソリューションを構築する手順を確認した後、さまざまな SQL 複雑さレベルでのいくつかのテスト シナリオの結果を示します。最後に、さまざまなデータ ソースを SQL クエリに簡単に組み込む方法について説明します。
ソリューションの概要
私たちのアーキテクチャには、データベース メタデータを備えた検索拡張生成 (RAG)、複数ステップの自己修正ループ、SQL エンジンとしての Athena という 3 つの重要なコンポーネントがあります。
RAG メソッドを使用してテーブルの説明とスキーマの説明 (列) を AWS Glue メタストアから取得し、リクエストが適切なテーブルとデータセットに関連していることを確認します。私たちのソリューションでは、デモンストレーションの目的で、AWS Glue データ カタログを使用して RAG フレームワークを実行するための個別のステップを構築しました。ただし、次のこともできます 知識ベース Amazon Bedrock を使用して RAG ソリューションを迅速に構築します。
マルチステップ コンポーネントにより、LLM は生成された SQL クエリを正確に修正できるようになります。ここでは、生成された SQL が構文エラーのために送信されます。 Athena エラー メッセージを使用して LLM のプロンプトを強化し、生成された SQL をより正確かつ効果的に修正します。
Athena から時折送信されるエラー メッセージは、フィードバックのようなものであると考えることができます。エラー修正ステップのコストへの影響は、提供される価値に比べれば無視できます。これらの修正手順を教師あり強化学習の例として含めて、LLM を微調整することもできます。ただし、わかりやすくするために、この投稿ではこのフローについては説明しませんでした。
不正確さのリスクが常に存在することに注意してください。これは生成 AI ソリューションには当然伴うものです。 Athena エラー メッセージがこのリスクを軽減するのに非常に効果的である場合でも、人によるフィードバックや微調整用のクエリ例などのコントロールやビューを追加して、そのようなリスクをさらに最小限に抑えることができます。
Athena を使用すると、SQL クエリを修正できるだけでなく、スポークが複数のデータ ソースとなるハブとして機能するため、全体的な問題も簡素化されます。アクセス管理、SQL 構文などはすべて Athena 経由で処理されます。
次の図は、ソリューションのアーキテクチャを示しています。
プロセス フローには次の手順が含まれます。
- AWS Glue データカタログを作成する AWS Glue クローラーを使用する (または別の方法)。
- 使い方 Amazon Bedrock の Titan-Text-Embeddings モデル、メタデータを埋め込みに変換し、 Amazon OpenSearch サーバーレス ベクトルストア、RAG フレームワークのナレッジ ベースとして機能します。
この段階で、プロセスは自然言語でクエリを受け取る準備ができています。ステップ 7 ~ 9 は、該当する場合、修正ループを表します。
- ユーザーは自然言語でクエリを入力します。任意の Web アプリケーションを使用してチャット UI を提供できます。したがって、この投稿では UI の詳細については説明しませんでした。
- このソリューションは、RAG フレームワークを次の方法で適用します。 類似性検索これにより、ベクター データベースのメタデータから追加のコンテキストが追加されます。このテーブルは、正しいテーブル、データベース、属性を検索するために使用されます。
- クエリはコンテキストとマージされ、に送信されます。 人間的クロード v2.1 Amazon ベッドロックで。
- モデルは生成された SQL クエリを取得し、Athena に接続して構文を検証します。
- Athena が構文が正しくないことを示すエラー メッセージを表示した場合、モデルは Athena の応答からのエラー テキストを使用します。
- 新しいプロンプトには、Athena の応答が追加されます。
- モデルは修正された SQL を作成し、プロセスを続行します。この繰り返しは複数回実行できます。
- 最後に、Athena を使用して SQL を実行し、出力を生成します。ここで、出力がユーザーに表示されます。アーキテクチャを簡素化するために、このステップは示しませんでした。
前提条件
この投稿では、次の前提条件を完了する必要があります。
- 一つ持っている AWSアカウント.
- インストールを開始する AWSコマンドラインインターフェイス (AWS CLI)。
- セットアップ Python 用 SDK (Boto3).
- AWS Glue データカタログを作成する AWS Glue クローラーを使用する (または別の方法)。
- 使い方 Amazon Bedrock の Titan-Text-Embeddings モデル、メタデータを埋め込みに変換し、OpenSearch サーバーレスに保存します。 ベクトルストア.
ソリューションを実装する
次のものを使用できます Jupyter Notebookこれには、ソリューションを構築するための、このセクションで提供されるすべてのコード スニペットが含まれています。使用することをお勧めします Amazon SageMakerスタジオ Python 3 (データ サイエンス) カーネルを備えた ml.t3.medium インスタンスでこのノートブックを開きます。手順については、を参照してください。 機械学習モデルをトレーニングする。ソリューションをセットアップするには、次の手順を実行します。
- OpenSearch Service で RAG フレームワークのナレッジ ベースを作成します。
- プロンプトを作成します (
final_question
) ユーザー入力を自然言語で結合することにより (user_query
)、ベクター ストアからの関連メタデータ (vector_search_match
) および当社の指示 (details
): - LLM (Claude v2) 用に Amazon Bedrock を呼び出し、SQL クエリを生成するように求めます。次のコードでは、自己修正手順を説明するために複数の試行を行っています。x
- 生成された SQL クエリで問題が発生した場合 (
{sqlgenerated}
) Athena の応答から ({syntaxcheckmsg}
)、新しいプロンプト (prompt
) が応答に基づいて生成され、モデルは新しい SQL の生成を再試行します。 - SQL が生成された後、Athena クライアントが起動されて実行され、出力が生成されます。
ソリューションをテストする
このセクションでは、さまざまなサンプル シナリオでソリューションを実行し、さまざまな複雑さの SQL クエリをテストします。
text-to-SQL をテストするには、2 つのメソッドを使用します。 データセットは IMDB から入手できます。 IMDb データのサブセットは、個人および非営利目的で使用できます。データセットをダウンロードして保存できます。 Amazon シンプル ストレージ サービス (アマゾンS3)。次の Spark SQL スニペットを使用して、AWS Glue でテーブルを作成できます。この例では、 title_ratings
および title
:
データを Amazon S3 に保存し、メタデータを AWS Glue に保存する
このシナリオでは、データセットは S3 バケットに保存されます。 Athena には、クエリ可能なデータ ソースとして Amazon S3 を使用できる S3 コネクタがあります。.
最初のクエリでは、「私はこれを初めて知ります。」という入力を提供します。 imdb スキーマ内のすべてのテーブルと列を表示するのを手伝ってもらえますか?」
生成されたクエリは次のとおりです。
次のスクリーンショットとコードは出力を示しています。
9.5 番目のクエリでは、「米国地域でレーティングが XNUMX を超えるタイトルと詳細をすべて表示してください」と質問します。
以下は生成されたクエリです。
応答は次のとおりです。
7.5 番目のクエリでは、「素晴らしい反応!」と入力します。では、レーティングが XNUMX を超え、米国地域ではないオリジナル タイプのタイトルをすべて見せてください。」
次のクエリが生成されます。
次の結果が得られます。
自己修正された SQL を生成する
このシナリオは、構文上の問題がある SQL クエリをシミュレートします。ここで、生成された SQL は、Athena からの応答に基づいて自己修正されます。次の応答で、アテナは次のように答えました。 COLUMN_NOT_FOUND
エラーがあり、それについて言及しました table_description
解決できません:
他のデータ ソースでソリューションを使用する
他のデータ ソースでソリューションを使用するには、Athena がジョブを処理します。これを行うために、Athena は次を使用します。 データソースコネクタ で使用できる フェデレーションクエリ。コネクタは、Athena クエリ エンジンの拡張機能と考えることができます。事前に構築された Athena データ ソース コネクタは、次のようなデータ ソース用に存在します。 Amazon CloudWatchログ, Amazon DynamoDB, Amazon DocumentDB(MongoDB互換性あり), Amazon リレーショナル データベース サービス (Amazon RDS)、Apache 2.0 ライセンスに基づく MySQL や PostgreSQL などの JDBC 準拠のリレーショナル データ ソース。任意のデータ ソースへの接続をセットアップしたら、前述のコード ベースを使用してソリューションを拡張できます。詳細については、以下を参照してください。 Amazon Athena の新しいフェデレーテッド クエリを使用して任意のデータ ソースをクエリします.
クリーンアップ
リソースをクリーンアップするには、次のことから始めます。 S3バケットをクリーンアップする データが存在する場所。アプリケーションが Amazon Bedrock を呼び出さない限り、コストは発生しません。インフラストラクチャ管理のベスト プラクティスのために、このデモで作成されたリソースを削除することをお勧めします。
まとめ
この投稿では、NLP を使用して、Athena で有効になっているさまざまなリソースを使用して複雑な SQL クエリを生成できるソリューションを紹介しました。また、下流プロセスからのエラー メッセージに基づく複数ステップの評価ループを通じて、生成された SQL クエリの精度も向上しました。さらに、AWS Glue データカタログのメタデータを使用して、RAG フレームワークを介したクエリで尋ねられるテーブル名を検討しました。次に、クエリの複雑さのレベルが異なるさまざまな現実的なシナリオでソリューションをテストしました。最後に、このソリューションを Athena でサポートされているさまざまなデータ ソースに適用する方法について説明しました。
Amazon Bedrock はこのソリューションの中心です。 Amazon Bedrock は、多くの生成 AI アプリケーションの構築に役立ちます。 Amazon Bedrock の使用を開始するには、次のクイックスタートに従うことをお勧めします。 GitHubレポ そして、生成 AI アプリケーションの構築に慣れてください。試してみることもできます 知識ベース このような RAG ソリューションを迅速に構築するには、Amazon Bedrock を使用します。
著者について
サンジーブパンダ Amazon のデータおよび ML エンジニアです。 AI/ML、データ サイエンス、ビッグ データの背景を持つ Sanjeeb は、複雑な技術的課題を解決し、Amazon でビジネスを管理する世界的なサードパーティ販売業者の戦略的目標を達成する革新的なデータおよび ML ソリューションを設計および開発しています。 Amazon でのデータおよび ML エンジニアとしての仕事以外では、Sanjeeb Panda は熱心なグルメと音楽愛好家です。
ブラク・ゴズルクル マサチューセッツ州ボストンに拠点を置く、プリンシパル AI/ML スペシャリスト ソリューション アーキテクトです。彼は、戦略的顧客が AWS テクノロジー、特にジェネレーティブ AI ソリューションを導入してビジネス目標を達成できるよう支援しています。 Burak は、METU で航空宇宙工学の博士号を取得し、システム エンジニアリングの修士号を取得し、マサチューセッツ州ケンブリッジの MIT でシステム ダイナミクスの博士研究員を取得しています。 Burak は今でも MIT の研究員です。 Burak はヨガと瞑想に情熱を注いでいます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/build-a-robust-text-to-sql-solution-generating-complex-queries-self-correcting-and-querying-diverse-data-sources/
- :持っている
- :は
- :not
- :どこ
- $UP
- 1
- 10
- 100
- 11
- 12
- 13
- 14
- 16
- 20
- 2024
- 22
- 23
- 29
- 30
- 32
- 39
- 50
- 500
- 521
- 7
- 8
- 9
- a
- 私たちについて
- 上記の.
- アクセス
- 精度
- 正確な
- 達成する
- 加えます
- さらに
- 住所
- 追加
- 採用
- 養子縁組
- 航空宇宙
- 提携
- 後
- 再び
- AI
- AI / ML
- 目指して
- 整列
- すべて
- ことができます
- また
- 代替案
- 常に
- am
- Amazon
- アマゾンRDS
- Amazon Webサービス
- an
- 分析論
- および
- 回答
- 人間原理
- どれか
- アパッチ
- 適用可能な
- 申し込み
- 適用
- 申し込む
- 建築の
- 建築
- です
- AS
- 頼む
- At
- アトランタ
- 試み
- 試み
- 属性
- 増強された
- 許可
- 利用できます
- AWS
- AWSグルー
- 背景
- ベース
- ベース
- BE
- なぜなら
- 以下
- BEST
- ベストプラクティス
- ビッグ
- ビッグデータ
- ブロック
- ボストン
- 持って来る
- ビルド
- 建物
- 内蔵
- ビジネス
- ビジネス
- 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。
- by
- 呼ばれます
- ケンブリッジ
- 缶
- 機能
- できる
- これ
- 場合
- カタログ
- センター
- 集中型の
- 挑戦する
- 課題
- チャット
- チェック済み
- 点検
- クリ
- クライアント
- コード
- コードベース
- 収集
- コラム
- コラム
- 結合
- 来ます
- 到来
- 比べ
- 比較
- 互換性
- コンプリート
- 複雑な
- 複雑さ
- コンポーネント
- コンポーネント
- 包括的な
- 接続
- コネクト
- 検討
- コンテキスト
- 続ける
- controls
- 変換
- 変換
- 正しい
- 訂正さ
- 補正
- 費用
- カウント
- カバー
- 作ります
- 作成した
- 作成します。
- 重大な
- Customers
- データ
- データサイエンス
- データベース
- データベースを追加しました
- データセット
- 日付
- 日付時刻
- 配信
- デモ
- 設計
- デザインパターン
- 希望
- にもかかわらず
- 細部
- 開発する
- ダイアグラム
- DID
- 異なります
- 話し合います
- 議論する
- 異なる
- do
- ドキュメント
- ドキュメント
- ダウンロード
- 間に
- ダイナミクス
- 効果的な
- ほかに
- 出現
- enable
- 使用可能
- エンジン
- エンジニア
- エンジニアリング
- 豊かにする
- 確保
- 入力します
- Enterprise
- 入ります
- 熱狂者
- エラー
- エラー
- 評価
- さらに
- あらゆる
- 例
- 例
- 例外的
- 実行
- 存在する
- 既存の
- 説明する
- 伸ばす
- 余分な
- Failed:
- false
- 特徴
- フィードバック
- ファイナル
- 最後に
- 発見
- 名
- フロー
- フォロー中
- 次
- フレームワーク
- から
- さらに
- ギャップ
- 与えた
- 生成する
- 生成された
- 生成
- 生成
- 世代
- 生々しい
- 生成AI
- 取得する
- を取得
- グローバル
- 目標
- だ
- ハンドル
- 持ってる
- 持って
- he
- 助けます
- ことができます
- こちら
- 高品質
- 非常に
- 彼の
- 認定条件
- How To
- しかしながら
- HTML
- HTTP
- HTTPS
- ハブ
- 人間
- i
- 特定され
- if
- 説明します
- 説明する
- 意義
- 重要
- in
- 不正確
- include
- 含ま
- 組み込む
- 組み込む
- 誤った
- 増える
- 増加した
- index
- 個人
- info
- 情報
- インフラ
- 固有の
- 本質的に
- 初期
- 内側の
- 革新的な
- 説明書
- に
- 呼び出された
- 呼び出す
- 問題
- 問題
- IT
- 繰り返し
- ジョブ
- join
- JPG
- 知識
- 湖
- 言語
- 大
- より大きい
- LEARN
- 学習
- レベル
- レベル
- ライセンス
- ような
- LIMIT
- LINE
- LLM
- 位置して
- 愛
- 機械
- 機械学習
- make
- 作る
- 管理
- 管理する
- 多くの
- 数学的
- 五月..
- me
- 瞑想
- ミディアム
- 言及した
- 言及
- メッセージ
- メッセージ
- 方法
- かもしれない
- 最小限に抑えます
- マサチューセッツ工科大学(MIT)
- 軽減する
- ML
- モデル
- MongoDBの
- 他には?
- MS
- の試合に
- 多数
- 音楽を聴く際のスピーカーとして
- mysqlの
- 名
- 名
- ナチュラル
- 自然言語処理
- 必要
- ニーズ
- 新作
- 次の
- NLP
- 非営利
- ノート
- 今
- 数
- 目的
- of
- 頻繁に
- on
- の
- 開いた
- 業務執行統括
- or
- 注文
- オリジナル
- その他
- 私たちの
- 出力
- 外側
- 全体
- 渡された
- 情熱的な
- path
- パターン
- のワークプ
- パフォーマンス
- 実行
- 個人的な
- 博士号
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- お願いします
- ポスト
- Postgresql
- プラクティス
- 先行
- 正確な
- 前提条件
- 現在
- PLM platform.
- 校長
- 問題
- プロセス
- ラボレーション
- 処理
- プロンプト
- 提供します
- 提供
- は、大阪で
- 目的
- Python
- クエリ
- クエリー
- 質問
- クイック
- すぐに
- 引用
- ぼろ
- 評価
- 評価
- 読む
- 準備
- 現実的な
- 受け取ります
- 受け
- 推奨する
- 参照する
- 地域
- 関連する
- 関連した
- 残る
- 残っている
- 表す
- 要求
- の提出が必要です
- 要件
- 必要
- 研究
- 常駐
- 解決する
- 解決
- リソース
- 尊重
- 応答
- 結果
- 結果
- 検索
- return
- 右
- 上昇
- リスク
- リスク
- 堅牢な
- 行
- ラン
- セージメーカー
- 酒
- 同じ
- 見ました
- シナリオ
- シナリオ
- 科学
- 検索
- 二番
- セクション
- select
- 自己
- 販売
- 送信
- サーバレス
- 仕える
- サービス
- サービス
- セッションに
- すべき
- 表示する
- 表示
- 示す
- 側
- 重要
- 簡単な拡張で
- 単純
- 簡素化する
- スニペット
- 溶液
- ソリューション
- 解決する
- 一部
- ソース
- ソース
- スパーク
- 専門家
- 特に
- ステージ
- start
- 開始
- 都道府県
- ステートメント
- Status:
- 手順
- ステップ
- まだ
- ストレージ利用料
- 店舗
- 保存され
- 簡単な
- 戦略的
- 文字列
- 構造化された
- そのような
- サポート
- 確か
- 構文
- SYS
- システム
- テーブル
- 取る
- ターゲット
- 仕事
- 技術的
- テクノロジー
- test
- テスト
- 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다.
- より
- それ
- ハブ
- アプリ環境に合わせて
- それら
- その後
- そこ。
- したがって、
- ボーマン
- 三番
- この
- それらの
- 三
- 介して
- <font style="vertical-align: inherit;">回数</font>
- 役職
- タイトル
- 〜へ
- 今日
- 変換
- 試します
- 2
- type
- ui
- 下
- 受けた
- 理解する
- ない限り、
- アップデイト
- 更新しました
- us
- つかいます
- 中古
- ユーザー
- users
- 使用されます
- 検証
- 値
- 多様
- さまざまな
- 変化する
- 、
- ビュー
- ウェーク
- 歩く
- 仕方..
- we
- ウェブ
- ウェブアプリケーション
- Webサービス
- 一方
- which
- while
- その
- 意志
- 以内
- 無し
- 仕事
- ワークフロー
- 書きます
- 書き込み
- X
- ヨガ
- You
- あなたの
- あなた自身
- ゼファーネット