🚀 テキストからSQLへの翻訳モデル - Millennialsの紹介 🎉
このリポジトリは、テキストからSQLへの翻訳モデルに関するものです。当モデルは、テキストをSQLクエリに変換するタスクに特化して微調整されており、自然言語の指示をSQLクエリに変換するシステムを革新することを目指しています。Mistral 7Bをベースに、10万件のSQLクエリ生成指示を含むデータセットで細心の注意を払って微調整されており、高い品質と精度を保証しています。
✨ 主な機能
- 自然言語のテキストをSQLクエリに変換することに特化しています。
- 10万件の多様なSQLクエリ生成指示で微調整されています。
- SQLクエリを即座に生成するために、簡単に統合して使用することができます。
🚀 クイックスタート
モデルの微調整が完了したら、自然言語の指示から簡単にSQLクエリを生成することができます。これを行うには、generate.pyスクリプトを使用します。このスクリプトは、Hugging Faceモデルハブからモデルを直接取得し、迅速な推論を行うことができます。
以下は、その使用方法の簡単なガイドです。
このスクリプトは、Hugging Faceモデルハブの事前学習済みモデルを使用して推論を実行し、生成されたSQLクエリを出力します。
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("budecosystem/sql-millennials-7b")
model = AutoModelForCausalLM.from_pretrained("budecosystem/sql-millennials-7b")
prompt = "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.
USER: Create SQL query for the given table schema and question ASSISTANT:"
inputs = tokenizer(prompt, return_tensors="pt")
sample = model.generate(**inputs, max_length=128)
print(tokenizer.decode(sample[0]))
このスクリプトは、Hugging Faceモデルハブの事前学習済みモデルを使用して推論を実行し、生成されたSQLクエリを出力します。
🔧 技術詳細
このモデルは、4台のA100 80GB GPUを使用して約30時間学習されました。
ハイパーパラメータ |
値 |
per_device_train_batch_size |
4 |
gradient_accumulation_steps |
1 |
epoch |
3 |
steps |
19206 |
learning_rate |
2e-5 |
lr schedular type |
cosine |
warmup steps |
2000 |
optimizer |
adamw |
fp16 |
True |
GPU |
4 A100 80GB |
📚 詳細ドキュメント
なぜMillennialsなのか?
1. 企業向けの自動化データベース管理
シナリオ:中小企業(SME)は、データベースクエリを処理するための専用のITチームを持たないことが多く、分析や意思決定のために特定のデータを迅速に取得することが困難です。
ユースケース:あなたのテキストからSQLへのモデルを企業の内部システムに統合することで、SQLの技術的な知識がないスタッフでもデータを取得できます。彼らは「前四半期に1万ドルを超えるすべての取引のリストを取得してください」などの自然言語のリクエストを入力することができ、モデルを搭載したシステムがこれを対応するSQLクエリに変換してデータを取得します。
2. データ分析プロセスの自動化
シナリオ:データアナリストやビジネス専門家は、SQLクエリの作成が複雑であるため、洞察を得る際にボトルネックに直面することが多いです。特に即時または繰り返しのデータ取得と分析が必要な場合には、この問題が顕著です。
ユースケース:あなたのテキストからSQLへのモデルは、このシナリオにおいて変革的な仲介役として機能します。このモデルをデータ分析システムに統合することで、組織は専門家に自然言語でデータリクエストを入力させることができます。たとえば、アナリストは「過去5年間のオンライン販売の成長トレンドを表示してください」と入力することができ、システムはこのリクエストを即座にSQLクエリに変換し、データを取得し、さらにデータを可視化ツールに統合して即時に洞察を得ることができます。この機能は、分析プロセスを加速するだけでなく、データ駆動型の洞察を組織内のさまざまな部門に普及させ、SQLの深い知識がない非技術的なスタッフでもリアルタイムのデータ分析の力を活用することができます。
3. CMSインターフェイスの強化
シナリオ:コンテンツ管理システム(CMS)は、複雑なデータ取得やデータベース管理に関して、非技術的なコンテンツ管理者にとって直感的ではないことが多いです。
ユースケース:CMSプロバイダは、あなたのモデルを利用してシステムのバックエンドインターフェイスを強化することができます。コンテンツ管理者は、「2023年5月に500回以上の閲覧があったすべてのブログ記事を検索してください」などの自然言語で特定のデータを要求することができ、モデルは適切なSQLを生成して情報を取得します。この機能により、データベース管理がよりアクセスしやすく、効率的で、ユーザーフレンドリーになります。
4. カスタマーサポートの最適化
シナリオ:カスタマーサポートセンターは、チケットや問い合わせを解決する際に、データベースに格納されているクライアントまたは製品の情報を取得する必要がありますが、これには基本的なSQLの知識が必要です。
ユースケース:あなたのモデルをサポートチケットシステムに統合することで、サポート担当者は「今月にニューヨークの顧客から提出されたすべての未解決のチケットを表示してください」などの自然言語でリクエストを入力することができ、必要なデータを即座に受け取って解決プロセスを迅速化することができます。これにより、顧客サービスの効率と応答時間が改善されます。
5. データジャーナリズムと研究
シナリオ:ジャーナリストや研究者は、彼らの仕事に必要な洞察やデータポイントを収集するために、複雑なデータベースに依存することが多いですが、SQLの技術的な知識が不足していることがあります。
ユースケース:あなたのテキストからSQLへのモデルを研究ソフトウェアやジャーナリズムツールに統合することで、専門家は自然言語でデータベースをクエリすることができます。たとえば、ジャーナリストは「2022年のテキサス州の平均世帯収入を取得してください」と入力することができ、あなたのモデルはこのデータへの即時アクセスを容易にし、より効率的な研究とデータ駆動型のストーリーテリングを可能にします。
🤝 コントリビューション
モデルの改善や問題の解決にご協力いただけることを歓迎します。プルリクエストを送信したり、変更や改善について議論するためにイシューを開いたりすることは、自由に行ってください。
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
🙏 謝辞
このモデルの基礎となったオープンソースコミュニティと研究者の皆様に感謝申し上げます。