模型概述
模型特點
模型能力
使用案例
🚀 DiscoLM 70B - GGUF
DiscoLM 70B - GGUF 是 Disco Research 基於 Laion 的 LeoLM 70b 模型開發的一款大語言模型。它經過額外的持續預訓練和微調,增強了多語言能力,同時保留並部分提升了英語能力。本倉庫包含該模型的 GGUF 格式文件,適用於 CPU+GPU 推理。
🚀 快速開始
本倉庫包含 Disco Research 的 DiscoLM 70B 的 GGUF 格式模型文件。這些文件是使用 Massed Compute 提供的硬件進行量化的。
✨ 主要特性
- 多語言能力:經過額外的持續預訓練,增強了德語能力,同時保留並部分提升了英語能力。
- 多種量化格式:提供 2、3、4、5、6 和 8 位的 GGUF 模型,適用於 CPU+GPU 推理。
- 廣泛的兼容性:與 llama.cpp 以及許多第三方 UI 和庫兼容。
📦 安裝指南
下載 GGUF 文件
手動下載注意事項:你幾乎不需要克隆整個倉庫!這裡提供了多種不同的量化格式,大多數用戶只需要選擇並下載單個文件。
以下客戶端/庫會自動為你下載模型,並提供可用模型列表供你選擇:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在 text-generation-webui
中下載
在“Download Model”下,你可以輸入模型倉庫地址:TheBloke/DiscoLM-70B-GGUF,然後在下方輸入要下載的具體文件名,例如:discolm-70b.Q4_K_M.gguf。然後點擊“Download”。
在命令行下載,包括一次下載多個文件
建議使用 huggingface-hub
Python 庫:
pip3 install huggingface-hub
然後你可以使用以下命令將任何單個模型文件高速下載到當前目錄:
huggingface-cli download TheBloke/DiscoLM-70B-GGUF discolm-70b.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更高級的 huggingface-cli 下載用法(點擊查看)
你也可以使用通配符一次下載多個文件: ```shell huggingface-cli download TheBloke/DiscoLM-70B-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf' ``` 有關使用 `huggingface-cli` 下載的更多文檔,請參閱:[HF -> Hub Python Library -> Download files -> Download from the CLI](https://huggingface.co/docs/huggingface_hub/guides/download#download-from-the-cli)。要在高速連接(1Gbit/s 或更高)上加速下載,請安裝 hf_transfer
:
pip3 install hf_transfer
並將環境變量 HF_HUB_ENABLE_HF_TRANSFER
設置為 1
:
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/DiscoLM-70B-GGUF discolm-70b.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows 命令行用戶:你可以通過運行 set HF_HUB_ENABLE_HF_TRANSFER=1
來設置環境變量,然後再運行下載命令。
💻 使用示例
基礎用法
在 llama.cpp
中運行的示例命令:
./main -ngl 35 -m discolm-70b.Q4_K_M.gguf --color -c 8192 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant"
- 將
-ngl 32
更改為要卸載到 GPU 的層數。如果你沒有 GPU 加速,請移除該參數。 - 將
-c 8192
更改為所需的序列長度。對於擴展序列模型(例如 8K、16K、32K),必要的 RoPE 縮放參數會從 GGUF 文件中讀取,並由 llama.cpp 自動設置。請注意,更長的序列長度需要更多的資源,因此你可能需要減小該值。 - 如果你想進行聊天式對話,請將
-p <PROMPT>
參數替換為-i -ins
。
有關其他參數及其用法,請參考 llama.cpp 文檔。
高級用法
在 text-generation-webui
中運行
更多說明可以在 text-generation-webui 文檔中找到,地址為:text-generation-webui/docs/04 ‐ Model Tab.md。
從 Python 代碼運行
你可以使用 llama-cpp-python 或 ctransformers 庫從 Python 中使用 GGUF 模型。請注意,在撰寫本文時(2023 年 11 月 27 日),ctransformers 已經有一段時間沒有更新,並且與一些最新的模型不兼容。因此,建議使用 llama-cpp-python。
使用 llama-cpp-python 在 Python 代碼中加載此模型
完整文檔請參閱:llama-cpp-python 文檔。
首先安裝包: 根據你的系統運行以下命令之一:
# 無 GPU 加速的基礎 ctransformers
pip install llama-cpp-python
# 有 NVidia CUDA 加速
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
# 有 OpenBLAS 加速
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
# 有 CLBLast 加速
CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python
# 有 AMD ROCm GPU 加速(僅適用於 Linux)
CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
# 有 Metal GPU 加速(僅適用於 macOS 系統)
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
# 在 Windows 中,在 PowerShell 中設置變量 CMAKE_ARGS,例如對於 NVidia CUDA:
$env:CMAKE_ARGS = "-DLLAMA_OPENBLAS=on"
pip install llama-cpp-python
簡單的 llama-cpp-python 示例代碼:
from llama_cpp import Llama
# 將 gpu_layers 設置為要卸載到 GPU 的層數。如果你的系統沒有 GPU 加速,請將其設置為 0。
llm = Llama(
model_path="./discolm-70b.Q4_K_M.gguf", # 首先下載模型文件
n_ctx=8192, # 使用的最大序列長度 - 請注意,更長的序列長度需要更多的資源
n_threads=8, # 使用的 CPU 線程數,根據你的系統和性能進行調整
n_gpu_layers=35 # 要卸載到 GPU 的層數,如果你有 GPU 加速可用
)
# 簡單的推理示例
output = llm(
"<|im_start|>system\n{system_message}<|im_end|>\n<|im_start|>user\n{prompt}<|im_end|>\n<|im_start|>assistant", # 提示
max_tokens=512, # 生成最多 512 個令牌
stop=["</s>"], # 示例停止令牌 - 不一定適用於此特定模型!使用前請檢查。
echo=True # 是否回顯提示
)
# 聊天完成 API
llm = Llama(model_path="./discolm-70b.Q4_K_M.gguf", chat_format="llama-2") # 根據你使用的模型設置 chat_format
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
與 LangChain 一起使用
以下是使用 llama-cpp-python 和 ctransformers 與 LangChain 的指南:
📚 詳細文檔
關於 GGUF
GGUF 是 llama.cpp 團隊在 2023 年 8 月 21 日引入的一種新格式。它是 GGML 的替代品,而 GGML 已不再受 llama.cpp 支持。
以下是已知支持 GGUF 的客戶端和庫的不完全列表:
- llama.cpp:GGUF 的源項目,提供 CLI 和服務器選項。
- text-generation-webui:最廣泛使用的 Web UI,具有許多功能和強大的擴展,支持 GPU 加速。
- KoboldCpp:功能齊全的 Web UI,支持所有平臺和 GPU 架構的 GPU 加速,特別適合講故事。
- GPT4All:免費開源的本地運行 GUI,支持 Windows、Linux 和 macOS,具有完整的 GPU 加速。
- LM Studio:適用於 Windows 和 macOS(Silicon)的易於使用且功能強大的本地 GUI,具有 GPU 加速。截至 2023 年 11 月 27 日,Linux 版本處於測試階段。
- LoLLMS Web UI:一個很棒的 Web UI,具有許多有趣和獨特的功能,包括一個完整的模型庫,便於模型選擇。
- Faraday.dev:一個有吸引力且易於使用的基於角色的聊天 GUI,適用於 Windows 和 macOS(Silicon 和 Intel),具有 GPU 加速。
- llama-cpp-python:一個具有 GPU 加速、LangChain 支持和 OpenAI 兼容 API 服務器的 Python 庫。
- candle:一個 Rust ML 框架,注重性能,包括 GPU 支持和易用性。
- ctransformers:一個具有 GPU 加速、LangChain 支持和 OpenAI 兼容 AI 服務器的 Python 庫。請注意,在撰寫本文時(2023 年 11 月 27 日),ctransformers 已經有一段時間沒有更新,並且不支持許多最新的模型。
可用倉庫
- 用於 GPU 推理的 AWQ 模型
- 用於 GPU 推理的 GPTQ 模型,具有多種量化參數選項
- 用於 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- Disco Research 原始未量化的 fp16 格式 PyTorch 模型,用於 GPU 推理和進一步轉換
提示模板:ChatML
<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
兼容性
這些量化的 GGUFv2 文件與 2023 年 8 月 27 日之後的 llama.cpp 兼容,截至提交 d0cee0d。
它們還與許多第三方 UI 和庫兼容 - 請參閱本 README 頂部的列表。
量化方法說明
點擊查看詳細信息
可用的新方法有: - GGML_TYPE_Q2_K:“類型 1” 2 位量化,超級塊包含 16 個塊,每個塊有 16 個權重。塊縮放和最小值使用 4 位量化。最終每個權重有效使用 2.5625 位(bpw)。 - GGML_TYPE_Q3_K:“類型 0” 3 位量化,超級塊包含 16 個塊,每個塊有 16 個權重。縮放使用 6 位量化。最終使用 3.4375 bpw。 - GGML_TYPE_Q4_K:“類型 1” 4 位量化,超級塊包含 8 個塊,每個塊有 32 個權重。縮放和最小值使用 6 位量化。最終使用 4.5 bpw。 - GGML_TYPE_Q5_K:“類型 1” 5 位量化。與 GGML_TYPE_Q4_K 具有相同的超級塊結構,最終使用 5.5 bpw。 - GGML_TYPE_Q6_K:“類型 0” 6 位量化。超級塊有 16 個塊,每個塊有 16 個權重。縮放使用 8 位量化。最終使用 6.5625 bpw。請參考下面的“提供的文件”表,瞭解哪些文件使用了哪些方法以及如何使用。
提供的文件
名稱 | 量化方法 | 位數 | 大小 | 所需最大 RAM | 使用場景 |
---|---|---|---|---|---|
discolm-70b.Q2_K.gguf | Q2_K | 2 | 29.28 GB | 31.78 GB | 最小,質量顯著損失 - 不建議用於大多數用途 |
discolm-70b.Q3_K_S.gguf | Q3_K_S | 3 | 29.92 GB | 32.42 GB | 非常小,高質量損失 |
discolm-70b.Q3_K_M.gguf | Q3_K_M | 3 | 33.19 GB | 35.69 GB | 非常小,高質量損失 |
discolm-70b.Q3_K_L.gguf | Q3_K_L | 3 | 36.15 GB | 38.65 GB | 小,大量質量損失 |
discolm-70b.Q4_0.gguf | Q4_0 | 4 | 38.87 GB | 41.37 GB | 舊版;小,非常高的質量損失 - 建議使用 Q3_K_M |
discolm-70b.Q4_K_S.gguf | Q4_K_S | 4 | 39.07 GB | 41.57 GB | 小,更大的質量損失 |
discolm-70b.Q4_K_M.gguf | Q4_K_M | 4 | 41.42 GB | 43.92 GB | 中等,平衡的質量 - 推薦 |
discolm-70b.Q5_0.gguf | Q5_0 | 5 | 47.46 GB | 49.96 GB | 舊版;中等,平衡的質量 - 建議使用 Q4_K_M |
discolm-70b.Q5_K_S.gguf | Q5_K_S | 5 | 47.46 GB | 49.96 GB | 大,低質量損失 - 推薦 |
discolm-70b.Q5_K_M.gguf | Q5_K_M | 5 | 48.75 GB | 51.25 GB | 大,非常低的質量損失 - 推薦 |
discolm-70b.Q6_K.gguf | Q6_K | 6 | 56.59 GB | 59.09 GB | 非常大,極低的質量損失 |
discolm-70b.Q8_0.gguf | Q8_0 | 8 | 73.29 GB | 75.79 GB | 非常大,極低的質量損失 - 不推薦 |
注意:上述 RAM 數字假設沒有 GPU 卸載。如果將層卸載到 GPU,這將減少 RAM 使用並使用 VRAM 代替。
Q6_K 和 Q8_0 文件是拆分的,需要合併
注意:HF 不支持上傳大於 50GB 的文件。因此,我已將 Q6_K 和 Q8_0 文件作為拆分文件上傳。
點擊查看關於 Q6_K 和 Q8_0 文件的說明
#### q6_K 請下載: - `discolm-70b.Q6_K.gguf-split-a` - `discolm-70b.Q6_K.gguf-split-b`q8_0
請下載:
discolm-70b.Q8_0.gguf-split-a
discolm-70b.Q8_0.gguf-split-b
要合併文件,請執行以下操作:
Linux 和 macOS:
cat discolm-70b.Q6_K.gguf-split-* > discolm-70b.Q6_K.gguf && rm discolm-70b.Q6_K.gguf-split-*
cat discolm-70b.Q8_0.gguf-split-* > discolm-70b.Q8_0.gguf && rm discolm-70b.Q8_0.gguf-split-*
Windows 命令行:
COPY /B discolm-70b.Q6_K.gguf-split-a + discolm-70b.Q6_K.gguf-split-b discolm-70b.Q6_K.gguf
del discolm-70b.Q6_K.gguf-split-a discolm-70b.Q6_K.gguf-split-b
COPY /B discolm-70b.Q8_0.gguf-split-a + discolm-70b.Q8_0.gguf-split-b discolm-70b.Q8_0.gguf
del discolm-70b.Q8_0.gguf-split-a discolm-70b.Q8_0.gguf-split-b
🔧 技術細節
模型信息
基準測試
Hugginface Leaderboard
該模型仍處於早期 Alpha 階段,不能保證沒有任何汙染。然而,平均得分 71.24 在撰寫本文時將在 HF 排行榜上排名第 3。
指標 | 值 |
---|---|
ARC (25-shot) | 68.77 |
HellaSwag (10-shot) | 85.41 |
MMLU (5-shot) | 68.64 |
TruthfulQA (0-shot) | 57.69 |
Winogrande (5-shot) | 83.27 |
GSM8k (5-shot) | 63.68 |
Avg. | 71.24 |
我們使用 Language Model Evaluation Harness 運行上述基準測試,使用與 HuggingFace LLM 排行榜相同的版本。
FastEval
指標 | 值 |
---|---|
GSM8K | 70.6 |
Math | 17.8 |
BBH | 63.4 |
MMLU | 64.7 |
Avg. | 48.87 |
當前(遺憾的是不再維護)FastEval CoT 排行榜的截圖:
MTBench
{
"first_turn": 7.9,
"second_turn": 7.0625,
"categories": {
"writing": 9.55,
"roleplay": 8.35,
"reasoning": 6.15,
"math": 4.7,
"coding": 4.8,
"extraction": 7.35,
"stem": 9.1,
"humanities": 9.85
},
"average": 7.48125
}
當前 FastEval MT Bench 排行榜的截圖:
📄 許可證
該模型遵循 llama2 許可證。
免責聲明
本模型的許可證不構成法律建議。我們不對使用此模型的第三方的行為負責。此模型僅應用於研究目的。原始 Llama2 許可證和用於訓練此模型的所有數據集的限制均適用。
其他信息
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 特別提及:Michael Levine, 阿明, Trailburnt, Nikolai Manek, John Detwiler, Randy H, Will Dee, Sebastain Graf, NimbleBox.ai, Eugene Pentland, Emad Mostaque, Ai Maven, Jim Angel, Jeff Scroggin, Michael Davis, Manuel Alberto Morcote, Stephen Murray, Robert, Justin Joy, Luke @flexchar, Brandon Frisco, Elijah Stavena, S_X, Dan Guido, Undi ., Komninos Chatzipapas, Shadi, theTransient, Lone Striker, Raven Klaugh, jjj, Cap'n Zoog, Michel-Marie MAUDET (LINAGORA), Matthew Berman, David, Fen Risland, Omer Bin Jawed, Luke Pendergrass, Kalila, OG, Erik Bjäreholt, Rooh Singh, Joseph William Delisle, Dan Lewis, TL, John Villwock, AzureBlack, Brad, Pedro Madruga, Caitlyn Gatomon, K, jinyuan sun, Mano Prime, Alex, Jeffrey Morgan, Alicia Loh, Illia Dulskyi, Chadd, transmissions 11, fincy, Rainer Wilmers, ReadyPlayerEmma, knownsqashed, Mandus, biorpg, Deo Leter, Brandon Phillips, SuperWojo, Sean Connelly, Iucharbius, Jack West, Harry Royden McLaughlin, Nicholas, terasurfer, Vitor Caleffi, Duane Dunston, Johann-Peter Hartmann, David Ziegler, Olakabola, Ken Nordquist, Trenton Dambrowitz, Tom X Nguyen, Vadim, Ajan Kanaga, Leonard Tan, Clay Pascal, Alexandros Triantafyllidis, JM33133, Xule, vamX, ya boyyy, subjectnull, Talal Aujan, Alps Aficionado, wassieverse, Ari Malik, James Bentley, Woland, Spencer Kim, Michael Dempsey, Fred von Graf, Elle, zynix, William Richards, Stanislav Ovsiannikov, Edmond Seymore, Jonathan Leane, Martin Kemka, usrbinkat, Enrico Ros
感謝所有慷慨的贊助者和捐贈者!
再次感謝 a16z 的慷慨資助。



