模型概述
模型特點
模型能力
使用案例
🚀 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 的慷慨資助。



