模型简介
模型特点
模型能力
使用案例
🚀 KafkaLM 70B German V0.1 - GGUF
KafkaLM 70B German V0.1 - GGUF 是基于 GGUF 格式的模型文件,适用于文本生成任务。它在德语处理上表现出色,能为德语相关的应用场景提供有力支持。
🚀 快速开始
本项目包含了 Seedbox 的 KafkaLM 70B German V0.1 的 GGUF 格式模型文件。这些文件是使用 Massed Compute 提供的硬件进行量化的。
✨ 主要特性
- 多客户端支持:支持众多客户端和库,如 llama.cpp、text-generation-webui、KoboldCpp 等。
- 多种量化方法:提供了多种量化方法,可根据不同需求选择合适的量化文件。
- 多语言支持:特别针对德语进行了优化,适用于德语相关的文本生成任务。
📦 安装指南
下载 GGUF 文件
手动下载注意事项:通常不需要克隆整个仓库!这里提供了多种不同的量化格式,大多数用户只需要选择并下载单个文件。
以下客户端/库会自动为你下载模型,并提供可用模型列表供你选择:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在 text-generation-webui
中下载
在“Download Model”下,你可以输入模型仓库地址:TheBloke/KafkaLM-70B-German-V0.1-GGUF,然后在下方输入要下载的具体文件名,例如:kafkalm-70b-german-v0.1.Q4_K_M.gguf,然后点击“Download”。
在命令行下载,可同时下载多个文件
推荐使用 huggingface-hub
Python 库:
pip3 install huggingface-hub
然后你可以使用以下命令将任何单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/KafkaLM-70B-German-V0.1-GGUF kafkalm-70b-german-v0.1.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
💻 使用示例
在 llama.cpp
中运行示例
确保你使用的是 2023 年 8 月 27 日之后的 llama.cpp
版本,提交记录为 d0cee0d。
./main -ngl 35 -m kafkalm-70b-german-v0.1.Q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|system|>\n{system_message}</s>\n<|user|>\n{prompt}</s>\n<|assistant|>"
-ngl 32
:将其更改为要卸载到 GPU 的层数。如果没有 GPU 加速,请移除该参数。-c 4096
:将其更改为所需的序列长度。对于扩展序列模型(如 8K、16K、32K),必要的 RoPE 缩放参数会从 GGUF 文件中读取,并由 llama.cpp 自动设置。请注意,更长的序列长度需要更多的资源,因此你可能需要减小该值。
如果你想进行聊天式对话,请将 -p <PROMPT>
参数替换为 -i -ins
。
在 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。
安装包
根据你的系统运行以下命令之一:
# 无 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
# 支持 macOS 系统的 Metal GPU 加速
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 的层数。如果系统没有 GPU 加速,请将其设置为 0。
llm = Llama(
model_path="./kafkalm-70b-german-v0.1.Q4_K_M.gguf", # 先下载模型文件
n_ctx=4096, # 要使用的最大序列长度 - 请注意,更长的序列长度需要更多的资源
n_threads=8, # 要使用的 CPU 线程数,根据你的系统和性能进行调整
n_gpu_layers=35 # 要卸载到 GPU 的层数,如果你有 GPU 加速可用
)
# 简单推理示例
output = llm(
"<|system|>\n{system_message}</s>\n<|user|>\n{prompt}</s>\n<|assistant|>", # 提示信息
max_tokens=512, # 生成最多 512 个令牌
stop=["</s>"], # 示例停止令牌 - 不一定适用于此特定模型!使用前请检查。
echo=True # 是否回显提示信息
)
# 聊天完成 API
llm = Llama(model_path="./kafkalm-70b-german-v0.1.Q4_K_M.gguf", chat_format="llama-2") # 根据你使用的模型设置聊天格式
llm.create_chat_completion(
messages = [
{"role": "system", "content": "You are a story writing assistant."},
{
"role": "user",
"content": "Write a story about llamas."
}
]
)
📚 详细文档
关于 GGUF
GGUF 是 llama.cpp 团队在 2023 年 8 月 21 日推出的一种新格式,它是 GGML 的替代品,目前 llama.cpp 已不再支持 GGML。
以下是已知支持 GGUF 的客户端和库的不完全列表:
- llama.cpp:GGUF 的源项目,提供了 CLI 和服务器选项。
- text-generation-webui:最广泛使用的 Web UI,具有许多功能和强大的扩展,支持 GPU 加速。
- KoboldCpp:功能齐全的 Web UI,支持所有平台和 GPU 架构的 GPU 加速,尤其适合讲故事。
- GPT4All:免费开源的本地运行 GUI,支持 Windows、Linux 和 macOS,具有完整的 GPU 加速。
- LM Studio:易于使用且功能强大的本地 GUI,适用于 Windows 和 macOS(Silicon),支持 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 模型
- Seedbox 原始未量化的 fp16 格式 PyTorch 模型,用于 GPU 推理和进一步转换
提示模板:Zephyr
<|system|>
{system_message}</s>
<|user|>
{prompt}</s>
<|assistant|>
兼容性
这些量化的 GGUFv2 文件与 2023 年 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 | 使用场景 |
---|---|---|---|---|---|
kafkalm-70b-german-v0.1.Q2_K.gguf | Q2_K | 2 | 25.46 GB | 27.96 GB | 质量损失显著 - 不推荐用于大多数场景 |
kafkalm-70b-german-v0.1.Q3_K_S.gguf | Q3_K_S | 3 | 29.92 GB | 32.42 GB | 非常小,质量损失高 |
kafkalm-70b-german-v0.1.Q3_K_M.gguf | Q3_K_M | 3 | 33.27 GB | 35.77 GB | 非常小,质量损失高 |
kafkalm-70b-german-v0.1.Q3_K_L.gguf | Q3_K_L | 3 | 36.15 GB | 38.65 GB | 小,质量损失较大 |
kafkalm-70b-german-v0.1.Q4_0.gguf | Q4_0 | 4 | 38.87 GB | 41.37 GB | 旧版;小,质量损失非常高 - 建议使用 Q3_K_M |
kafkalm-70b-german-v0.1.Q4_K_S.gguf | Q4_K_S | 4 | 39.25 GB | 41.75 GB | 小,质量损失更大 |
kafkalm-70b-german-v0.1.Q4_K_M.gguf | Q4_K_M | 4 | 41.42 GB | 43.92 GB | 中等,质量平衡 - 推荐 |
kafkalm-70b-german-v0.1.Q5_0.gguf | Q5_0 | 5 | 47.46 GB | 49.96 GB | 旧版;中等,质量平衡 - 建议使用 Q4_K_M |
kafkalm-70b-german-v0.1.Q5_K_S.gguf | Q5_K_S | 5 | 47.46 GB | 49.96 GB | 大,质量损失低 - 推荐 |
kafkalm-70b-german-v0.1.Q5_K_M.gguf | Q5_K_M | 5 | 48.75 GB | 51.25 GB | 大,质量损失非常低 - 推荐 |
kafkalm-70b-german-v0.1.Q6_K.gguf | Q6_K | 6 | 56.59 GB | 59.09 GB | 非常大,质量损失极低 |
kafkalm-70b-german-v0.1.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
请下载:
kafkalm-70b-german-v0.1.Q6_K.gguf-split-a
kafkalm-70b-german-v0.1.Q6_K.gguf-split-b
q8_0
请下载:
kafkalm-70b-german-v0.1.Q8_0.gguf-split-a
kafkalm-70b-german-v0.1.Q8_0.gguf-split-b
要合并文件,请执行以下操作:
Linux 和 macOS:
cat kafkalm-70b-german-v0.1.Q6_K.gguf-split-* > kafkalm-70b-german-v0.1.Q6_K.gguf && rm kafkalm-70b-german-v0.1.Q6_K.gguf-split-*
cat kafkalm-70b-german-v0.1.Q8_0.gguf-split-* > kafkalm-70b-german-v0.1.Q8_0.gguf && rm kafkalm-70b-german-v0.1.Q8_0.gguf-split-*
Windows 命令行:
COPY /B kafkalm-70b-german-v0.1.Q6_K.gguf-split-a + kafkalm-70b-german-v0.1.Q6_K.gguf-split-b kafkalm-70b-german-v0.1.Q6_K.gguf
del kafkalm-70b-german-v0.1.Q6_K.gguf-split-a kafkalm-70b-german-v0.1.Q6_K.gguf-split-b
COPY /B kafkalm-70b-german-v0.1.Q8_0.gguf-split-a + kafkalm-70b-german-v0.1.Q8_0.gguf-split-b kafkalm-70b-german-v0.1.Q8_0.gguf
del kafkalm-70b-german-v0.1.Q8_0.gguf-split-a kafkalm-70b-german-v0.1.Q8_0.gguf-split-b
📄 许可证
本模型遵循 llama2 许可证。
原模型卡片:Seedbox 的 KafkaLM 70B German V0.1
KafkaLM-70B-German-V0.1
KafkaLM 70b 是基于 Llama2 70B 基础模型 的 70b 模型,它在一组流行的高质量开源指令集(从英语翻译成德语)上进行了微调。
KafkaLM 70b 是 Seedbox 的项目,由 Dennis Dickmann 训练。
为什么叫 Kafka? 这些模型既精通业务又富有创造力,在语言表达上有突破边界的倾向 😊
模型详情
发布 KafkaLM 系列 的目的是为德语 AI 社区贡献一组易于在各种日常应用中使用的微调大语言模型。
主要目标是提供精通德语的大语言模型,尤其适用于仅使用英语不足的德语商业环境。
数据集
使用了 seedboxai/multitask_german_examples_32k 的 4k 过滤版本。
提示格式
该模型遵循以下提示格式:
<|system|>
Du bist ein freundlicher und hilfsbereiter KI-Assistent. Du beantwortest Fragen faktenorientiert und präzise, ohne dabei relevante Fakten auszulassen.</s>
<|user|>
Welche Möglichkeiten der energetischen Sanierung habe ich neben Solar und Energiespeicher?</s>
<|assistant|>
推理
开始使用该模型很简单:
import transformers
model_id = "seedboxai/KafkaLM-70B-German-V0.1"
model = AutoModelForCausalLM.from_pretrained(model_id, load_in_4bit=True)
tokenizer = AutoTokenizer.from_pretrained(model_id)
tokenizer.padding_side = "right"
tokenizer.pad_token = tokenizer.unk_token
tokenizer.add_eos_token = False
def generate_prompt(input):
prompt = ''
sys_prompt = "Du bist ein freundlicher und hilfsbereiter KI-Assistent. Du beantwortest Fragen faktenorientiert und präzise, ohne dabei relevante Fakten auszulassen."
prompt += f"<|system|>\n{sys_prompt.strip()}</s>\n"
prompt += f"<|user|>\n{input.strip()}</s>\n"
prompt += f"<|assistant|>\n"
return prompt.strip()
generate_text = transformers.pipeline(
model=model, tokenizer=tokenizer,
return_full_text=True,
task='text-generation',
temperature=0.5,
max_new_tokens=512,
top_p=0.95,
top_k=50,
do_sample=True,
)
print(generate_text(generate_prompt("Wer ist eigentlich dieser Kafka?"))
免责声明
本模型的许可证不构成法律建议。我们不对使用此模型的第三方的行为负责。 此模型仅应用于研究目的。原始 Llama2 许可证以及用于训练此模型的所有数据集的限制均适用。
其他信息
Discord
如需进一步支持,以及讨论这些模型和 AI 相关话题,请加入我们的 Discord 服务器:TheBloke AI's Discord server
感谢与贡献方式
感谢 chirper.ai 团队! 感谢 gpus.llm-utils.org 的 Clay!
很多人询问是否可以进行贡献。我喜欢提供模型并帮助他人,也希望能有更多时间投入其中,并拓展到新的项目,如微调/训练。
如果你有能力且愿意贡献,我将非常感激,这将帮助我继续提供更多模型,并开展新的 AI 项目。
捐赠者将在所有 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 的慷慨资助。



