模型概述
模型特點
模型能力
使用案例
🚀 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 分析的模型



