Skip to content

SoTA LLM 用于将自然语言问题转换为 SQL 查询

License

Notifications You must be signed in to change notification settings

yuanzhongqiao/sqlcoder

 
 

Repository files navigation

SQLCoder 除雾

Defog 的 SQLCoder 是一系列最先进的 LLM,用于将自然语言问题转换为 SQL 查询。

互动演示| 🤗 HF 回购| ♾️ Colab | 🐦 推特

长话短说

SQLCoder 是一系列大型语言模型,其性能优于gpt-4我们的sql-evalgpt-4-turbo框架上的自然语言到 SQL 生成任务,并且显着优于所有流行的开源模型。

针对训练中未见的新颖模式正确生成 SQL 查询的百分比 (n = 200),具有 4 个梁 (2)

安装 SQLCoder

如果在配备 NVIDIA GPU 且 VRAM 超过 16GB 的设备上运行(最佳性能) pip install "sqlcoder[transformers]"

如果在 Apple Silicon 上运行(由于量化和缺乏波束搜索,性能较差) CMAKE_ARGS="-DLLAMA_METAL=on" pip install "sqlcoder[llama-cpp]"

如果在没有 GPU 访问权限的非苹果芯片计算机上运行,​​请在 Linux/Intel Mac 上运行 CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install "sqlcoder[llama-cpp]"

并在 Windows 上运行它

$env:CMAKE_ARGS = "-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS"
pip install "sqlcoder[llama-cpp]"

SQLCoder 尚未在其他平台上进行测试。非常欢迎在其他平台上进行测试的贡献!

运行 SQLCoder

在您的终端中,运行 sqlcoder launch

这样,您将能够直接连接到数据库,以便您可以添加元数据并进行可视化查询。

执照

此存储库中的代码(内容很少)已获得 Apache-2 许可。模型重量有CC BY-SA 4.0许可证。总而言之,您可以出于任何目的使用和修改模型 - 包括商业用途。但是,如果您修改权重(例如,通过微调),则必须在相同的许可条款下开源修改后的权重。

训练

Defog 接受了超过 20,000 个人工问题的培训。这些问题基于 10 种不同的模式。训练数据中的任何模式均未包含在我们的评估框架中。

您可以阅读有关我们的培训方法评估框架的更多信息。

按问题类别划分的结果

我们将每个生成的问题分为 6 个类别之一。该表显示每个模型正确回答问题的百分比(按类别细分)。

日期 通过...分组 订单依据 比率 加入 在哪里
sqlcoder-70b 96 91.4 97.1 85.7 97.1 91.4
sqlcoder-7b-2 96 91.4 94.3 91.4 94.3 77.1
sqlcoder-34b 80 94.3 85.7 77.1 85.7 80
GPT-4 72 94.3 97.1 80 91.4 80
GPT-4-涡轮 76 91.4 91.4 62.8 88.6 77.1
自然 SQL-7b 56 88.6 85.7 60 88.6 80
sqlcoder-7b 64 82.9 74.3 54.3 74.3 74.3
GPT-3.5 72 77.1 82.8 34.3 65.7 71.4
克劳德-2 52 71.4 74.3 57.1 65.7 62.9

使用 SQLCoder

您可以通过库使用 SQLCoder,transformers从 Hugging Face 存储库下载我们的模型权重。我们添加了用于推断示例数据库模式的示例代码。

python inference.py -q "Question about the sample database goes here"

# Sample question: # Do we get more revenue from customers in New York compared to customers in San Francisco? Give me the total revenue for each city, and the difference between the two.

您还可以在我们的网站上使用演示

硬件要求

SQLCoder-34B 已在带有权重的 4xA10 GPU 上进行了测试float16。您还可以在具有 20GB 或更多内存的消费类 GPU 上加载模型的 8 位和 4 位量化版本 - 例如 RTX 4090、RTX 3090 以及具有 20GB 或更多内存的 Apple M2 Pro、M2 Max 或 M2 Ultra 芯片的记忆。

去做

  • 开源 v1 模型权重
  • 使用更多数据和更高的数据方差训练模型
  • 使用奖励建模和 RLHF 进一步调整模型
  • 从头开始预训练专门用于 SQL 分析的模型

明星历史

明星历史图

About

SoTA LLM 用于将自然语言问题转换为 SQL 查询

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 82.5%
  • HTML 10.3%
  • Python 7.2%