AIパーソナル・ラーニング
と実践的なガイダンス
ビーンバッグ・マースコード1

OpenSearch-SQL: 自然言語をSQLクエリに変換するオープンソースツール

はじめに

OpenSearch-SQLはオープンソースプロジェクトであり、ユーザーの自然言語記述をSQLクエリ文に変換する強力なText-to-SQLツールである。このプロジェクトはOpenSearch-AIチームによって開発され、Apache 2.0ライセンスに基づいてフリーでオープンです。2024年8月、検証セットで69.3%、テストセットで72.28%の精度で、BIRDベンチマークで1位を獲得しました。OpenSearch-SQLは追加トレーニングなしで実行でき、GPTやDeepSeekなどのモデルをサポートしています。

OpenSearch-SQL: 自然言語をSQLクエリに変換するオープンソースツール-1


 

機能一覧

  • 自然言語による質問をSQLクエリに変換する。 SELECT ビル名 FROM ビル ORDER BY 高さ DESC LIMIT 1.
  • クエリ生成精度を向上させるための自己学習をサポートするCoT(Chain of Thought)強化手法。
  • SQLライクな中間言語を提供し、複雑なSQL生成を最適化する。
  • モデル生成時のエラー(錯覚問題)を減らすための入出力アライメントを含む。
  • 前処理、抽出、生成、最適化、アライメントの5つのモジュールをサポートし、クエリプロセス全体をカバーする。
  • オープンソースで無料なので、ユーザーは必要に応じてコードを変更したり、自分のプロジェクトに組み込んだりすることができる。

 

ヘルプの使用

OpenSearch-SQLはコマンドラインツールで、動作させるにはインストールと設定が必要です。以下は、ゼロから始めるための詳細な手順です。

設置プロセス

  1. Python環境の準備
    Python 3.8以上がコンピュータにインストールされていることを確認してください。これは python --バージョン 確認してください。なければ、Pythonの公式サイト(https://www.python.org/)からダウンロードしてインストールしてください。
  2. プロジェクトファイルのダウンロード
    ブラウザーを開き、https://github.com/OpenSearch-AI/OpenSearch-SQL。右上の "Code "ボタンをクリックし、"Download ZIP "を選択する。"をクリックし、"Download ZIP "を選択してソースコードをダウンロードするか、Gitコマンドを使ってクローンしてください:
git clone https://github.com/OpenSearch-AI/OpenSearch-SQL.git

ローカルにダウンロードして解凍する。 C:♪OpenSearch-SQL もしかしたら /ホーム/ユーザー/OpenSearch-SQL.

  1. 依存関係のインストール
    プロジェクト・フォルダーに移動し、ターミナルを開いて以下のコマンドを実行し、必要なライブラリをインストールする:
pip install -r requirements.txt

これにより、データを処理したりモデルを呼び出したりするためのライブラリなど、プロジェクトの実行に必要なPythonパッケージがインストールされる。

データ前処理

OpenSearch-SQLでは、クエリの精度を向上させるために、数ショットの例を必要とします。データは提供されている公式スクリプトを使って生成することができます。

  1. データの準備
    このプロジェクトでは、サンプルファイル bird_dev.json所在地 Bird/bird_dev.jsonDAIL-SQLの方法論に基づいています。これはDAIL-SQLの方法論に基づいて生成され、数発のクエリー例を含んでいます。もしあなた自身のデータを持っているならば、このファイルを置き換えることができます。
  2. 前処理スクリプトの実行
    プロジェクトのルート・ディレクトリで実行する:
sh run/run_preprocess.sh

このスクリプトは、数ショットのデータ、テーブル構造、その他の情報を処理する。処理が終わると、ターミナルに各ディレクトリの出力が表示される。Windowsユーザーなら、Git BashやWSLで実行したり、スクリプトのコマンドを手動で実行したりできます。

メインプログラムの実行

  1. トリガ手順
    プロジェクトのルート・ディレクトリで実行する:
sh run/run_main.sh

これは src/runner/database_manager.py ファイルでクエリー処理を開始する。プログラム・パスはスクリプトで設定する。

  1. 出力チェック
    メイン・アプリケーションが実行されると、設定に従ってSQLクエリー結果が生成されます。出力ファイルのパスは src/runner/database_manager.py な _set_paths 関数で定義されており、必要に応じて調整できる。

注目の機能操作

  • 自然言語からSQLへ
    "売上が最も高い都市はどこですか?" などの質問を入力します。プログラムがそれを生成する:
SELECT city FROM sales ORDER BY amount DESC LIMIT 1

詳しい情報は questions.json ファイルに独自の質問を追加して実行し、結果を確認する。

  • CoTの強化
    このプロジェクトはQuery-CoT-SQL形式で例を提供しています。例えば
  • ユーザー入力:"平均年齢は?"
  • CoTプロセス:まず年齢の列を見つけ、次に平均を計算する。
  • 出力:SELECT AVG(age) FROM users.
  • アライメント機能
    結果が正しく生成されない場合、プログラムは自動的に修正します。例えば、「すべての学生の成績を一覧表示する」と入力しても、データベースが複数のテーブルを持つ場合、JOIN操作が正しいことを確認します:
SELECT s.name, sc.score FROM students s JOIN scores sc ON s.id = sc.student_id

ほら

  • BIRDデータセットをテストする必要がある場合は、直接 Bird/fewshot/questions.json ドキュメンテーション
  • このプログラムは複数のモデルをサポートしており、デフォルトの設定には API キーが必要な場合があります。GPTまたはDeepSeekを使用する場合は、コードでキーを設定する必要があります。

これらのステップを踏むことで、自然言語をSQLクエリに簡単に変換し、さまざまなデータ分析タスクを処理することができる。

 

アプリケーションシナリオ

  1. データ分析
    データアナリストはこれを使用して、質問をSQLに変換し、販売データやユーザー行動を素早くカウントすることができる。
  2. 教育とトレーニング
    学生は、質問を入力し、生成されたクエリ文を比較することで、SQLを学ぶために使用することができます。
  3. 自動化されたレポート
    企業はこれを使用して、レポートSQLを自動的に生成し、手作業による記述時間を短縮することができます。

 

品質保証

  1. OpenSearch-SQLはインターネットに接続する必要がありますか?
    ローカルモデルを使用する場合、ネットワークは必要ありません。ただし、GPTなどのオンラインモデルを使用する場合は、ネットワークとAPIキーが必要です。
  2. どのようなデータベースに対応していますか?
    テーブル構造とデータが提供される限り、SQLをサポートするあらゆるデータベースを対象とする。
  3. BIRD リストの1位というのはどういう意味ですか?
    テストセットでの2024年8月のスコアは72.28%で、Text-to-SQLタスクで最高の精度を持ち、複雑なクエリを処理できることを示している。
無断転載を禁じます:チーフAIシェアリングサークル " OpenSearch-SQL: 自然言語をSQLクエリに変換するオープンソースツール

チーフAIシェアリングサークル

チーフAIシェアリングサークルは、AI学習に焦点を当て、包括的なAI学習コンテンツ、AIツール、実践指導を提供しています。私たちの目標は、高品質のコンテンツと実践的な経験の共有を通じて、ユーザーがAI技術を習得し、AIの無限の可能性を一緒に探求することです。AI初心者でも上級者でも、知識を得てスキルを向上させ、イノベーションを実現するための理想的な場所です。

お問い合わせ
ja日本語