模型简介
模型特点
模型能力
使用案例
🚀 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 的慷慨资助。



