最强SQL代码生成开源大模型发布:DefogAI开源超过gpt-3.5-turbo的SQL生成大模型SQLCoder,免费商用授权~
SQLCoder 是 Defog 团队推出的一款前沿的大语言模型,专门用于将自然语言问题转化为 SQL 查询。这是一个拥有150亿参数的模型, 在自然语言到 SQL 生成任务上,其性能略微超过了 gpt-3.5-turbo,并且显著地超越了所有流行的开源模型。更令人震惊的是,尽管 SQLCoder 的大小只有 text-davinci-003 的十分之一,但其性能却远超后者。

SQLCoder的发布让编程大模型的生态再次丰富:

自然语言生成SQL问题简介
随着大数据和数据库技术的发展,如何更自然、更直观地与数据库进行交互成为了一个热门的研究方向。传统的数据库查询需要用户具备一定的SQL知识,这对于非技术背景的用户来说是一个门槛。
大语言模型已经在代码生成方面展示了强大的能力,不过,当前大多数大语言模型都是针对Python、Java等高级编程语言做一些通用的大模型微调。少部分模型也会针对Python这种大家用的很多的模型做特别调优。但是SQL代码生成目前却不多。使用最好的可能还是GPT-4。而今天DefogAI开源的SQLCoder是一个新的开源选择。
SQLCoder简介和特点
如前所述,SQLCoder是DefogAI团队推出的一款基于StarCoder微调的、针对SQL优化的大模型。DefogAI是2023年刚成立的一家创业企业,其目标是通过大语言模型提供一个平台,让用户可以使用自然语言对数据进行提问。
StarCoder的参数是150亿,尽管只有GPT-3的十分之一大小,但是在SQL生成方面比GPT-3好很多(这样对比可能不太公平~)
StarCoder的主要特点如下:
SQL生成的性能强大,效果很好:在 SQL 生成任务的评估框架上,SQLCoder(64.6%)的性能略微超过了 gpt-3.5-turbo(60.6%)。
训练数据使用的是高质量人工筛选数据:Defog 在两个周期内对10,537个人工策划的问题进行了训练,这些问题基于10种不同的模式。
使用方法简单,与transformer集成良好:用户可以通过 transformers 库使用 SQLCoder,只需从 HuggingFace 仓库下载模型权重即可。此外,还提供了在线演示和 Colab 中的使用方法。
硬件要求要求不高:SQLCoder 已在 A100 40GB GPU 上进行了测试,并支持 bfloat16 权重。用户还可以在拥有20GB或更多内存的消费级 GPU 上加载模型的8位量化版本,例如 RTX 4090、RTX 3090 和 Apple M2 系列芯片。
SQLCoder的训练细节:
训练参数 | 参数设置结果 |
---|---|
数据集 | 10537条高质量人工筛选SQL数据 |
基础模型 | StarCoder |
Epochs | 2 |
推理硬件(bfloat16精度) | A100 40G |
推理硬件(int8量化) | 20G显存 |
SQLCoder的具体测试结果
官方提供了一个SQL生成任务的评测,该评测包含了175个SQL生成任务(不在训练数据中),然后看各个模型生成SQL的准确率(在新的schemas上执行),结果如下:

从这个对比可以看到,StarCoder的准确率超过了gpt-3.5-turbo,仅仅弱于GPT-4,但是比开源的模型都强大。顺便说一句,GPT-4真是恐怖玩意。
按照不同的SQL类别测试如下:
查询类别 | gpt-4 | defog-sqlcoder | gpt-3.5-turbo | defog-easy | 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 |
SQLCoder实际测试结果
官方给了一个演示地址,可以测试实际SQLCoder的能力,只需要给出schema的CREATE语句即可用自然语言提问。
我们给了我们DataLearner大模型的列表建表语句(https://www.datalearner.com/ai-models/pretrained-models ),然后提了一个简单的查询,效果还不错的。

大家也可以自己去测试:https://defog.ai/sqlcoder-demo/
不过,目前速度一般。
SQLCoder相关资源
SQLCoder的GitHub地址、预训练模型下载地址、在线演示地址等参考DataLearner模型信息卡:https://www.datalearner.com/ai-models/pretrained-models/SQLCoder
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
