TiDB User Day 2024のアーカイブ動画を公開中!詳細を見る
Text2SQLv2-banner

※このブログは2024年3月14日に公開された英語ブログ「AI-Powered Data Exploration: Unpacking the Latest Innovations in TiDB Cloud」の拙訳です。

2023年初頭、TiDB CloudはOpenAIの機能を活用し、自然言語を通じてデータベースの探索と対話を支援する新しいツール、Chat2Queryを発表しました。1年にわたる継続的な改良の結果、Chat2Queryはさらに便利になりました。

このブログでは、Chat2Queryの3つの主な改良点について深く掘り下げていきます:

  • 自然言語検索をより正確に解釈するためのText2SQLの改良
  • 膨大なデータを扱うビジネス向けに、大規模なデータセットを処理する機能を拡張
  • 既存システムとのシームレスな統合のためのOpenAPIの可用性

注意:TiDB Cloud Dedicatedユーザーの方は、Chat2Query機能を利用するために、TiDBバージョン6.5以上にアップグレードし、許可リストアクセスを取得していることを確認してください。

Text2SQLの精度向上

Text2SQLはChat2Queryの最も基本的な機能であり、データ探索の障壁を低減します。過去1年間で、私たちはプロンプトエンジニアリングとRAG (Retrieval-Augmented Generation) 技術を活用し、Text2SQLの精度を大幅に向上させました。

私たちは、BIRD benchmarkを使用したテストを実施しました。このベンチマークは、膨大なデータベース内容がテキストからSQLへのパーシングに与える影響を調査する先駆的なクロスドメインデータセットです。このテストで、私たちは上位4位にランクインしました。さらに、テキストからSQLへのタスクや複雑なクロスドメイン意味解析を広範に網羅することで知られる包括的で難易度の高いデータセットSpider benchmarkに対してもテストを行い、86.30という素晴らしいスコアを達成しました。これは、Text2SQL機能の向上を目指す私たちの取り組みにおいて重要な成果となりました。

図1. Bird Benchmarkランキング
Elevated Text2SQL - Spider Score
図2. Spider Benchmarkのスコア

Chat2Query 1.0と2.0を比較することで、以下のシナリオをどのように処理するのか説明します:

  • 利用可能なデータで有効なクエリ
  • 無効なクエリ

Chat2Query2.0による有効なクエリの正確なSQL生成

利用可能なデータで実行できるSQLクエリの場合、Chat2Query 2.0は優れた精度を発揮します。例えば、「2015年に利用可能だったバイクの台数は?」という問い合わせを考えてみましょう。これに対処するには、ユーザークエリを適切なデータベーステーブルとカラムに正しく関連付ける、巧みなスキーマリンクが必要です。Chat2Query 2.0は、関連するテーブルとカラムを正確に識別し、正確なSQLクエリを生成します:

SELECT SUM(`bikes_available`) AS `total_bikes_available` 
FROM `status` 
WHERE YEAR(`time`) = 2015;

対してChat2Query 1.0はスキーマの紐付けに苦戦しており、しばしば正しい答えを提供できず間違ったSQLクエリを生成します:

SELECT COUNT(*) AS `bike_count`
FROM `status` s
JOIN `trip` t ON s.`station_id` = t.`start_station_id`
WHERE t.`start_date` LIKE '2015%'

インテリジェンスで無効なクエリを処理する

Chat2Query 2.0は、無効なクエリ (データベースのデータに関係のないクエリ) を巧みに処理することができます。例えば、「天気はどうですか?」という質問が表示された場合、Chat2Query 2.0はユーザーに別の指示を出すように促し、ランダムで無関係な応答を防ぎます。対照的に、Chat2Query 1.0はランダムな回答を生成するため、ユーザを混乱させたり、誤解させたりする可能性があります。

図3. Chat2Query 2.0: ユーザーにさまざまな指示を促します
図4: Chat2Query 1.0: ランダムに答えます

大規模データセットに最適化

大規模なデータセットの特徴は、1つのテーブルのカラム数が膨大であるか、データベースのテーブル数が圧倒的に多いことです。Chat2Query 1.0では、OpenAIの言語モデル (gpt-3.5-turbo-16k) のコンテキストウィンドウの制限により、一般的に大規模なデータセットは大きな課題となります。大きなデータセットを処理しようとすると、すべての情報をコンテキストとしてLLMに送ろうとして、この制限を超えてしまい、Text2SQLでエラーが発生する可能性があります。実際には、データベースが30以上のテーブルを含み、テーブルあたりの平均カラム数が20を超えるとエラーが発生します。

これに対抗するため、我々はChat2Query 2.0に類似検索の埋め込みやMapReduce処理のような実装をすることで、実際のビジネスアプリケーションでしばしば必要とされる大規模なデータセットを効率的に扱えるようにしました。

大規模データセットにおけるバージョン比較

大規模なデータベース (例えば、75のテーブルと688のカラムを持つもの) を処理することになると、Chat2Query 2.0はSQLの生成に成功し、堅牢性であることがわかりますが、Chat2Query 1.0は基礎となる言語モデルのコンテキスト・ウィンドウの制限を超えるために失敗することがあります。

図5. Chat2Query 2.0: 正常に生成されたSQL
図6. Chat2Query 1.0: SQLの生成に失敗

OpenAPI経由でアクセス可能

ユーザー体験を向上させるために、Text2SQLの機能をシステムに統合したいというユーザーが増えています。しかし、機密性の高いビジネスデータを外部システムに公開する際、プライバシーやセキュリティ上の懸念もあります。これに対処するために、我々はOpenAPIを介してChat2Queryの全機能にアクセスできるようにしました。これにより、データセキュリティを損なうことなく、ユーザーシステムへのシームレスな統合が可能になります。

OpenAPIを使用してChat2Queryをアプリケーションに統合するための手順については、Chat2Query APIを使い始めるを参照してください。

まとめ

改良されたChat2Queryは、高い精度でテキストをSQLに変換し、大規模なデータセットの処理にも対応しています。この特性により、データ探索のための多機能なツールとして活用できます。さらに、OpenAPIを通じたアクセシビリティにより、既存のシステムへのスムーズな統合が可能で、多様なアプリケーションに対応する強力で使いやすいソリューションを提供します。

将来を見据えると、Chat2Queryはさらなる革新を遂げ、その機能とユーザー体験を向上させることが期待されています。今後期待できる内容は以下の通りです。

  • チャットモードでの対話:Chat2Queryは、より会話的なアプローチでChat2Queryと対話できるようになります。これにより、ユーザーはSQLクエリを生成するためにチャットのような対話を行うことができます。
  • ドメイン知識の組み込み:この機能は、Chat2Queryに適応学習機能を提供します。Chat2Queryは、使用するにつれて理解度が上がるため、特定のドメインの要件に合わせた正確な応答を提供できるようになります。

今すぐTiDB CloudにサインアップしてChat2Queryを無料でお試しください。また、TiInsightでデータ分析用のデモをお試しいただき、Chat2Queryの動作をご確認いただけます。


Have questions? Let us know how we can help.

Contact Us

TiDB Cloud Dedicated

TiDB Cloudのエンタープライズ版。
専用VPC上に構築された専有DBaaSでAWSとGoogle Cloudで利用可能。

TiDB Cloud Serverless

TiDB Cloudのライト版。
TiDBの機能をフルマネージド環境で使用でき無料かつお客様の裁量で利用開始。