Defog 的 SQLCoder 是一系列最先进的 LLM,用于将自然语言问题转换为 SQL 查询。
互动演示| 🤗 HF 回购| ♾️ Colab | 🐦 推特
SQLCoder 是一系列大型语言模型,其性能优于gpt-4
我们的sql-evalgpt-4-turbo
框架上的自然语言到 SQL 生成任务,并且显着优于所有流行的开源模型。
如果在配备 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 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,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 分析的模型