🚀 Defog SQLCoder
Defog的SQLCoder是一款先进的大语言模型(LLM),可将自然语言问题转换为SQL查询语句。它为用户提供了便捷、高效的SQL生成解决方案,极大提升了数据处理和分析的效率。
交互式演示 | 🤗 HF仓库 | ♾️ Colab | 🐦 Twitter
🚀 快速开始
模型简介
SQLCoder是一个拥有150亿参数的模型。在我们的 sql-eval 框架下的自然语言到SQL生成任务中,它的表现优于 gpt-3.5-turbo
,并显著超越所有流行的开源模型。在针对给定模式进行微调后,它甚至能超越 gpt-4
。SQLCoder是在基础的StarCoder模型上进行微调得到的。
训练情况
Defog在超过20,000个人工精心策划的问题上进行了训练。这些问题基于10种不同的模式。训练数据中的所有模式均未包含在我们的评估框架中。你可以阅读更多关于我们的 训练方法 和 评估框架 的内容。
使用方式
你可以通过 transformers
库,从Hugging Face仓库下载我们的模型权重来使用SQLCoder。我们提供了在 示例数据库模式 上进行 推理 的示例代码。
python inference.py -q "Question about the sample database goes here"
你也可以在我们的网站 这里 使用演示,或者在Colab 这里 运行SQLCoder。
硬件要求
SQLCoder已在配备 bfloat16
权重的A100 40GB GPU上进行了测试。你也可以在内存为20GB或更多的消费级GPU(如RTX 4090、RTX 3090)以及内存为20GB或更多的Apple M2 Pro、M2 Max或M2 Ultra芯片上加载8位和4位量化版本的模型。
✨ 主要特性
- 性能卓越:在自然语言到SQL生成任务中,超越
gpt-3.5-turbo
等模型,微调后可超越 gpt-4
。
- 训练数据优质:基于超过20,000个人工精心策划的问题进行训练,且训练数据模式与评估框架不同。
- 使用便捷:可通过
transformers
库从Hugging Face仓库下载权重使用,还提供示例代码和在线演示。
- 硬件适配性好:支持在不同硬件上运行,包括消费级GPU和Apple芯片。
📚 详细文档
不同数据集上的结果
在训练中未见过的新数据集上的表现如下:
模型 |
正确率 |
gpt4-2023-10-04 |
82.0 |
defog-sqlcoder2 |
77.5 |
gpt4-2023-08-28 |
74.0 |
defog-sqlcoder-7b |
71.0 |
gpt-3.5-2023-10-04 |
66.0 |
claude-2 |
64.5 |
gpt-3.5-2023-08-28 |
61.0 |
claude_instant_1 |
61.0 |
text-davinci-003 |
52.5 |
按问题类别划分的结果
我们将每个生成的问题分为5个类别。该表展示了每个模型在不同类别问题上的正确回答百分比:
查询类别 |
gpt-4 |
sqlcoder2-15b |
sqlcoder-7b |
gpt-3.5 |
claude-2 |
claude-instant |
gpt-3 |
日期 |
72 |
80 |
64 |
68 |
52 |
48 |
32 |
分组 |
91.4 |
82.9 |
82.9 |
77.1 |
71.4 |
71.4 |
71.4 |
排序 |
82.9 |
77.1 |
74.3 |
68.6 |
74.3 |
74.3 |
68.6 |
比例 |
80 |
74.3 |
54.3 |
37.1 |
57.1 |
45.7 |
25.7 |
连接 |
82.9 |
74.3 |
74.3 |
71.4 |
65.7 |
62.9 |
57.1 |
条件 |
80 |
77.1 |
74.3 |
74.3 |
62.9 |
60 |
54.3 |
📄 许可证
此仓库中的代码(虽然数量不多)遵循Apache-2许可协议。模型权重遵循 CC BY-SA 4.0
许可协议,并附加了额外的负责任使用限制。简而言之,你可以出于任何目的(包括商业用途)使用和修改该模型。但是,如果你修改了权重(例如,通过微调),则必须在相同的许可条款下开源你修改后的权重。
⏰ 待办事项
- [x] 开源v1模型权重
- [x] 使用更多、更高数据方差的数据训练模型
- [ ] 通过奖励建模和基于人类反馈的强化学习(RLHF)进一步调整模型
- [ ] 从头开始预训练一个专门用于SQL分析的模型