模型简介
模型特点
模型能力
使用案例
🚀 Sqlcoder - GGUF
Sqlcoder - GGUF 项目提供了 Sqlcoder 模型的 GGUF 格式文件,便于在不同环境下进行推理。GGUF 格式是 llama.cpp 团队推出的新格式,支持多种客户端和库,能满足不同用户的使用需求。
🚀 快速开始
本项目包含 Defog.ai 的 Sqlcoder 的 GGUF 格式模型文件。以下是使用该模型的一些基本信息和操作步骤。
✨ 主要特性
- 多种量化格式:提供了 2、3、4、5、6 和 8 位的 GGUF 模型,适用于 CPU+GPU 推理,用户可根据需求选择不同量化程度的模型。
- 广泛兼容性:量化后的 GGUFv2 文件与 8 月 27 日之后的 llama.cpp 兼容,同时也支持许多第三方 UI 和库。
- 多方式下载:支持通过多种客户端/库自动下载,也可在命令行使用
huggingface-hub
库进行高速下载。 - 多场景使用:可在
llama.cpp
、text-generation-webui
等工具中运行,还能与 LangChain 集成使用。
📦 安装指南
下载 GGUF 文件
自动下载
以下客户端/库会自动为你下载模型,并提供可用模型列表供选择:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在 text-generation-webui
中下载
在“Download Model”下,输入模型仓库地址 TheBloke/sqlcoder-GGUF
,并在下方输入要下载的具体文件名,如 sqlcoder.Q4_K_M.gguf
,然后点击“Download”。
命令行下载
推荐使用 huggingface-hub
Python 库:
pip3 install huggingface-hub
然后使用以下命令将单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/sqlcoder-GGUF sqlcoder.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
若要一次性下载多个文件,可使用以下模式:
huggingface-cli download TheBloke/sqlcoder-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
若要在高速连接(1Gbit/s 或更高)下加速下载,可安装 hf_transfer
:
pip3 install hf_transfer
并将环境变量 HF_HUB_ENABLE_HF_TRANSFER
设置为 1
:
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/sqlcoder-GGUF sqlcoder.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows 命令行用户可在下载命令前运行 set HF_HUB_ENABLE_HF_TRANSFER=1
来设置环境变量。
💻 使用示例
基础用法
llama.cpp
命令示例
确保你使用的是 d0cee0d 或更高版本的 llama.cpp
:
./main -ngl 32 -m sqlcoder.Q4_K_M.gguf --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "{prompt}"
-ngl 32
:将其更改为要卸载到 GPU 的层数。若没有 GPU 加速,可移除该参数。-c 2048
:将其更改为所需的序列长度。对于扩展序列模型(如 8K、16K、32K),必要的 RoPE 缩放参数会从 GGUF 文件中读取,并由 llama.cpp 自动设置。
若要进行聊天式对话,可将 -p <PROMPT>
参数替换为 -i -ins
。
其他参数的使用方法请参考 the llama.cpp documentation。
在 text-generation-webui
中运行
详细说明请参考 text-generation-webui/docs/llama.cpp.md。
与 LangChain 集成使用
以下是使用 llama-cpp-python 和 ctransformers 与 LangChain 集成的指南:
📚 详细文档
关于 GGUF
GGUF 是 llama.cpp 团队于 2023 年 8 月 21 日推出的新格式,它取代了不再受 llama.cpp 支持的 GGML 格式。
以下是已知支持 GGUF 的客户端和库列表:
- llama.cpp:GGUF 的源项目,提供 CLI 和服务器选项。
- text-generation-webui:最广泛使用的 Web UI,具有许多功能和强大的扩展,支持 GPU 加速。
- KoboldCpp:功能齐全的 Web UI,支持所有平台和 GPU 架构的 GPU 加速,尤其适合讲故事。
- LM Studio:适用于 Windows 和 macOS(Silicon)的易于使用且功能强大的本地 GUI,支持 GPU 加速。
- LoLLMS Web UI:一个很棒的 Web UI,具有许多有趣和独特的功能,包括一个完整的模型库,便于模型选择。
- Faraday.dev:适用于 Windows 和 macOS(Silicon 和 Intel)的有吸引力且易于使用的基于角色的聊天 GUI,支持 GPU 加速。
- llama-cpp-python:一个支持 GPU 加速、LangChain 集成和 OpenAI 兼容 API 服务器的 Python 库。
- candle:一个专注于性能的 Rust ML 框架,包括 GPU 支持,且易于使用。
可用仓库
- 用于 GPU 推理的 GPTQ 模型,具有多种量化参数选项
- 用于 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- Defog.ai 原始未量化的 fp16 格式 PyTorch 模型,用于 GPU 推理和进一步转换
提示模板
{prompt}
兼容性
这些量化后的 GGUFv2 文件与 8 月 27 日之后的 llama.cpp 兼容,具体为提交 d0cee0d 之后的版本。
它们也与许多第三方 UI 和库兼容,请参阅本 README 顶部的列表。
量化方法说明
点击查看详情
新的量化方法如下:
- GGML_TYPE_Q2_K:“type-1” 2 位量化,超级块包含 16 个块,每个块有 16 个权重。块的缩放和最小值用 4 位量化,最终每个权重有效使用 2.5625 位(bpw)。
- GGML_TYPE_Q3_K:“type-0” 3 位量化,超级块包含 16 个块,每个块有 16 个权重。缩放用 6 位量化,最终使用 3.4375 bpw。
- GGML_TYPE_Q4_K:“type-1” 4 位量化,超级块包含 8 个块,每个块有 32 个权重。缩放和最小值用 6 位量化,最终使用 4.5 bpw。
- GGML_TYPE_Q5_K:“type-1” 5 位量化,与 GGML_TYPE_Q4_K 具有相同的超级块结构,最终使用 5.5 bpw。
- GGML_TYPE_Q6_K:“type-0” 6 位量化,超级块有 16 个块,每个块有 16 个权重。缩放用 8 位量化,最终使用 6.5625 bpw。
请参考下面的“提供的文件”表,了解哪些文件使用了哪些方法以及如何使用。
提供的文件
名称 | 量化方法 | 位数 | 大小 | 所需最大 RAM | 使用场景 |
---|---|---|---|---|---|
sqlcoder.Q2_K.gguf | Q2_K | 2 | 6.73 GB | 9.23 GB | 最小,但质量损失显著,不建议用于大多数情况 |
sqlcoder.Q3_K_S.gguf | Q3_K_S | 3 | 6.93 GB | 9.43 GB | 非常小,但质量损失高 |
sqlcoder.Q3_K_M.gguf | Q3_K_M | 3 | 8.18 GB | 10.68 GB | 非常小,但质量损失高 |
sqlcoder.Q4_0.gguf | Q4_0 | 4 | 8.99 GB | 11.49 GB | 旧版本;小,但质量损失非常高,建议使用 Q3_K_M |
sqlcoder.Q4_K_S.gguf | Q4_K_S | 4 | 9.06 GB | 11.56 GB | 小,但质量损失较大 |
sqlcoder.Q3_K_L.gguf | Q3_K_L | 3 | 9.08 GB | 11.58 GB | 小,但质量损失较大 |
sqlcoder.Q4_K_M.gguf | Q4_K_M | 4 | 9.96 GB | 12.46 GB | 中等,质量平衡,推荐使用 |
sqlcoder.Q5_0.gguf | Q5_0 | 5 | 10.93 GB | 13.43 GB | 旧版本;中等,质量平衡,建议使用 Q4_K_M |
sqlcoder.Q5_K_S.gguf | Q5_K_S | 5 | 10.93 GB | 13.43 GB | 大,质量损失低,推荐使用 |
sqlcoder.Q5_K_M.gguf | Q5_K_M | 5 | 11.54 GB | 14.04 GB | 大,质量损失非常低,推荐使用 |
sqlcoder.Q6_K.gguf | Q6_K | 6 | 12.99 GB | 15.49 GB | 非常大,质量损失极低 |
sqlcoder.Q8_0.gguf | Q8_0 | 8 | 16.82 GB | 19.32 GB | 非常大,质量损失极低,但不建议使用 |
注意:上述 RAM 数字假设没有进行 GPU 卸载。如果将层卸载到 GPU,将减少 RAM 使用并使用 VRAM。
🔧 技术细节
模型信息
属性 | 详情 |
---|---|
模型类型 | StarCoder |
训练数据 | Defog 在 10 种不同模式下的 10,537 个人工策划问题上进行了 2 个周期的训练,训练数据中的模式均未包含在评估框架中。 |
训练阶段
训练分两个阶段进行:
- 第一阶段:针对分类为“简单”或“中等”难度的问题进行训练。
- 第二阶段:针对分类为“困难”或“极难”难度的问题进行训练。
在简单+中等数据上的训练结果存储在名为 defog-easy
的模型中,发现对困难+极难数据的额外训练使性能提高了 7 个百分点。
📄 许可证
模型权重采用 CC BY-SA 4.0
许可证,并附加了 OpenRAIL - M 条款以确保负责任使用。简而言之,你可以出于任何目的使用和修改该模型,包括商业用途。但是,如果你修改了权重(例如通过微调),则必须根据相同的 CC BY-SA 4.0
许可证条款开源你修改后的权重。
其他信息
Discord
如需进一步支持,以及参与关于这些模型和人工智能的讨论,请加入我们的 TheBloke AI 的 Discord 服务器。
感谢与贡献
感谢 chirper.ai 团队和 gpus.llm-utils.org 的 Clay!
如果你愿意提供贡献,将不胜感激,这将帮助我继续提供更多模型,并开展新的人工智能项目。捐赠者将在任何 AI/LLM/模型问题和请求上获得优先支持,访问私人 Discord 房间以及其他福利。
捐赠方式:
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
特别感谢:Aemon Algiz。
Patreon 特别提及:Alicia Loh、Stephen Murray 等众多支持者。
感谢所有慷慨的赞助者和捐赠者!再次感谢 a16z 的慷慨资助。
原始模型信息
Defog SQLCoder
Defog 的 SQLCoder 是一款将自然语言问题转换为 SQL 查询的先进大语言模型。
简要总结
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 |
按问题类别划分的结果
查询类别 | 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
你可以通过 transformers
库从 HuggingFace 仓库下载我们的模型权重来使用 SQLCoder。我们在 这里 添加了推理示例代码。你也可以在我们的网站 这里 使用演示,或在 Colab 这里 运行 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 分析的模型



