🚀 文本轉 SQL 翻譯模型 - Millennials 介紹
本模型專為文本轉 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 |
💡 應用場景
1. 企業自動化數據庫管理
場景:中小型企業(SMEs)通常缺乏專門的 IT 團隊來處理數據庫查詢,這使得快速檢索特定數據進行分析和決策變得具有挑戰性。
用例:可以將文本轉 SQL 模型集成到公司的內部系統中,使沒有專業 SQL 知識的員工能夠檢索數據。他們可以輸入自然語言請求,例如“獲取上一季度所有超過 10000 美元的交易列表”,系統將在該模型的支持下將此請求轉換為相應的 SQL 查詢以檢索數據。
2. 自動化數據分析流程
場景:數據分析師和業務專業人員在生成洞察時,由於 SQL 查詢制定的複雜性,尤其是在需要即時或重複的數據檢索和分析時,經常會遇到瓶頸。
用例:該文本轉 SQL 模型在這種場景中充當變革性的中介。通過將模型集成到他們的數據分析系統中,組織可以讓專業人員以自然語言輸入數據請求。例如,分析師可以輸入“顯示過去五年在線銷售增長的趨勢”,系統將立即將此請求轉換為 SQL 查詢,檢索數據,並將其集成到可視化工具中以立即生成洞察。此功能不僅加速了分析過程,還使不同組織部門的人員都能利用即時數據分析的力量,即使是非技術人員也無需深入瞭解 SQL 即可使用。
3. 增強內容管理系統(CMS)界面
場景:內容管理系統(CMS)對於非技術內容管理人員來說,在進行復雜的數據檢索或數據庫管理時通常不太直觀。
用例:CMS 提供商可以利用該模型來增強其系統的後端界面。內容管理人員可以使用自然語言請求特定數據,例如“查找 2023 年 5 月瀏覽量超過 500 的所有博客文章”,模型將生成適當的 SQL 語句來檢索信息。此功能使數據庫管理更加便捷、高效且用戶友好。
4. 優化客戶支持
場景:客戶支持中心在解決工單或諮詢時,通常需要從數據庫中檢索客戶或產品信息,這需要基本的 SQL 知識。
用例:可以將該模型集成到支持票務系統中,使支持人員能夠以自然語言輸入請求,例如“顯示本月來自紐約客戶的所有未結工單”,並立即獲得解決問題所需的數據,從而提高客戶服務效率和響應時間。
5. 數據新聞和研究
場景:記者和研究人員經常依賴複雜的數據庫來收集工作所需的洞察和數據點,但可能缺乏 SQL 技術知識。
用例:通過將該文本轉 SQL 模型集成到研究軟件或新聞工具中,專業人員可以使用自然語言查詢數據庫。例如,記者可以輸入“檢索 2022 年德克薩斯州的平均家庭收入”,模型將幫助立即訪問此數據,從而實現更高效的研究和數據驅動的故事講述。
🤝 貢獻
我們歡迎大家貢獻代碼以幫助改進模型或解決問題。請隨時提交拉取請求或提出問題,以討論更改或改進建議。
🙏 致謝
我們要感謝開源社區以及為該模型奠定基礎的研究人員。
📄 許可證
本項目採用 Apache - 2.0 許可證。