🚀 Defog SQLCoder
Defog的SQLCoder是一款先進的大語言模型(LLM),可將自然語言問題轉換為SQL查詢。它能夠有效解決自然語言到SQL查詢的轉換難題,為用戶提供高效準確的SQL生成服務。
交互式演示 | ♾️ Colab | 🐦 Twitter
🚀 快速開始
本倉庫現已大幅過時。你應該使用 sqlcoder - 7b - 2 倉庫。它的性能明顯更優,且消耗的GPU資源更少。
✨ 主要特性
- SQLCoder是一個擁有150億參數的模型,在我們的 sql - eval 框架上,對於自然語言到SQL生成任務,其性能略優於
gpt - 3.5 - turbo
,並顯著優於所有流行的開源模型。它還顯著優於比其規模大10倍以上的text - davinci - 003
。
- SQLCoder是在基礎StarCoder模型上進行微調得到的。
📊 訓練未見新數據集上的結果
模型 |
正確率 |
gpt - 4 |
74.3 |
defog - sqlcoder |
64.6 |
gpt - 3.5 - turbo |
60.6 |
defog - easysql |
57.1 |
text - davinci - 003 |
54.3 |
wizardcoder |
52.0 |
starcoder |
45.1 |
📄 許可證
模型權重遵循CC BY - SA 4.0
許可證,並附有OpenRAIL - M負責任使用條款。簡而言之,你可以出於任何目的使用和修改該模型,包括商業用途。但是,如果你修改了權重(例如,通過微調),則必須在相同的CC BY - SA 4.0
許可證條款下開源你修改後的權重。
🔧 技術細節
訓練數據
Defog在10537個人工策劃的問題上進行了2個週期的訓練。這些問題基於10種不同的模式。訓練數據中的所有模式均未包含在我們的評估框架中。
訓練階段
訓練分兩個階段進行。第一階段針對分類為“簡單”或“中等”難度的問題,第二階段針對分類為“困難”或“極難”難度的問題。在簡單 + 中等數據上的訓練結果存儲在名為defog - easy
的模型中。我們發現,在困難 + 極難數據上的額外訓練使性能提高了7個百分點。
不同問題類別的結果
我們將每個生成的問題分為5個類別之一。該表按類別展示了每個模型正確回答問題的百分比。
查詢類別 |
gpt - 4 |
defog - sqlcoder |
gpt - 3.5 - turbo |
defog - easysql |
text - davinci - 003 |
wizard - coder |
star - coder |
group_by |
82.9 |
77.1 |
71.4 |
62.9 |
62.9 |
68.6 |
54.3 |
order_by |
71.4 |
65.7 |
60.0 |
68.6 |
60.0 |
54.3 |
57.1 |
ratio |
62.9 |
57.1 |
48.6 |
40.0 |
37.1 |
22.9 |
17.1 |
table_join |
74.3 |
57.1 |
60.0 |
54.3 |
51.4 |
54.3 |
51.4 |
where |
80.0 |
65.7 |
62.9 |
60.0 |
60.0 |
60.0 |
45.7 |
💻 使用示例
你可以通過transformers
庫,從HuggingFace倉庫下載我們的模型權重來使用SQLCoder。我們在此處添加了推理示例代碼。你也可以在我們的網站此處使用演示,或在Colab[此處](https://colab.research.google.com/drive/13BIKsqHnPOBcQ - ba2p77L5saiepTIwu0#scrollTo=ZpbVgVHMkJvC)運行SQLCoder。
⚙️ 硬件要求
SQLCoder已在配備bfloat16
權重的A100 40GB GPU上進行了測試。你也可以在內存為20GB或更多的消費級GPU上加載該模型的8位量化版本,如RTX 4090、RTX 3090,以及內存為20GB或更多的Apple M2 Pro、M2 Max或M2 Ultra芯片。
📋 待辦事項
- [x] 開源v1模型權重
- [ ] 在更多數據上訓練模型,提高數據多樣性
- [ ] 通過獎勵建模和基於人類反饋的強化學習(RLHF)進一步調整模型
- [ ] 從頭開始預訓練一個專門用於SQL分析的模型