模型概述
模型特點
模型能力
使用案例
🚀 Nanbeige 16B Base 32K - GGUF
本項目提供了 Nanbeige 16B Base 32K 模型的 GGUF 格式量化文件,支持多種客戶端和庫,方便用戶進行推理和使用。
🚀 快速開始
本倉庫包含 Nanbeige LLM Lab 的 Nanbeige 16B Base 32K 模型的 GGUF 格式文件。這些文件由 Massed Compute 提供的硬件進行量化。
✨ 主要特性
- 多語言支持:支持英文和中文。
- 多種量化格式:提供 2、3、4、5、6 和 8 位的 GGUF 模型,適用於 CPU+GPU 推理。
- 廣泛的兼容性:與多種客戶端和庫兼容,如 llama.cpp、text-generation-webui 等。
📦 安裝指南
下載 GGUF 文件
- 自動下載:LM Studio、LoLLMS Web UI、Faraday.dev 等客戶端/庫會自動下載模型,並提供可用模型列表供選擇。
- text-generation-webui:在 Download Model 中輸入模型倉庫地址
TheBloke/Nanbeige-16B-Base-32K-GGUF
,並指定要下載的文件名,如nanbeige-16b-base-32k.Q4_K_M.gguf
,然後點擊 Download。 - 命令行下載:推薦使用
huggingface-hub
Python 庫,安裝命令如下:
pip3 install huggingface-hub
下載單個模型文件的命令示例:
huggingface-cli download TheBloke/Nanbeige-16B-Base-32K-GGUF nanbeige-16b-base-32k.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
下載多個文件的命令示例:
huggingface-cli download TheBloke/Nanbeige-16B-Base-32K-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
運行模型
llama.cpp
確保使用 d0cee0d 或更高版本的 llama.cpp。運行命令示例:
./main -ngl 32 -m nanbeige-16b-base-32k.Q4_K_M.gguf --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "{prompt}"
參數說明:
-ngl 32
:指定要卸載到 GPU 的層數,若無 GPU 加速可移除該參數。-c 2048
:指定所需的序列長度。- 若要進行聊天式對話,將
-p <PROMPT>
參數替換為-i -ins
。
text-generation-webui
更多說明可參考 text-generation-webui 文檔。
Python 代碼
可使用 llama-cpp-python 或 ctransformers 庫從 Python 中使用 GGUF 模型。
使用 ctransformers 加載模型的示例代碼:
from ctransformers import AutoModelForCausalLM
# Set gpu_layers to the number of layers to offload to GPU. Set to 0 if no GPU acceleration is available on your system.
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Nanbeige-16B-Base-32K-GGUF", model_file="nanbeige-16b-base-32k.Q4_K_M.gguf", model_type="nanbeige", gpu_layers=50)
print(llm("AI is going to"))
💻 使用示例
基礎用法
from ctransformers import AutoModelForCausalLM
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Nanbeige-16B-Base-32K-GGUF", model_file="nanbeige-16b-base-32k.Q4_K_M.gguf", model_type="nanbeige", gpu_layers=50)
print(llm("中國的首都是北京\n德國的首都是柏林\n孟加拉的首都是"))
高級用法
from ctransformers import AutoModelForCausalLM
from transformers.generation.utils import GenerationConfig
# 配置生成參數
config = GenerationConfig(
max_new_tokens=32000,
temperature=0.7,
repeat_penalty=1.1
)
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Nanbeige-16B-Base-32K-GGUF", model_file="nanbeige-16b-base-32k.Q4_K_M.gguf", model_type="nanbeige", gpu_layers=50)
input_text = "中國的首都是北京\n德國的首都是柏林\n孟加拉的首都是"
output = llm(input_text, generation_config=config)
print(output)
📚 詳細文檔
關於 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 加速。
- ctransformers:一個支持 GPU 加速、LangChain 支持和 OpenAI 兼容 AI 服務器的 Python 庫。
- llama-cpp-python:一個支持 GPU 加速、LangChain 支持和 OpenAI 兼容 API 服務器的 Python 庫。
- candle:一個專注於性能的 Rust ML 框架,包括 GPU 支持和易用性。
可用倉庫
- 用於 GPU 推理的 GPTQ 模型,具有多種量化參數選項
- 2、3、4、5、6 和 8 位的 GGUF 模型,用於 CPU+GPU 推理
- Nanbeige LLM Lab 原始未量化的 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 | 使用場景 |
---|---|---|---|---|---|
nanbeige-16b-base-32k.Q2_K.gguf | Q2_K | 2 | 6.64 GB | 9.14 GB | 最小,顯著質量損失 - 不推薦大多數用途 |
nanbeige-16b-base-32k.Q3_K_S.gguf | Q3_K_S | 3 | 6.93 GB | 9.43 GB | 非常小,高質量損失 |
nanbeige-16b-base-32k.Q3_K_M.gguf | Q3_K_M | 3 | 7.74 GB | 10.24 GB | 非常小,高質量損失 |
nanbeige-16b-base-32k.Q3_K_L.gguf | Q3_K_L | 3 | 8.45 GB | 10.95 GB | 小,大量質量損失 |
nanbeige-16b-base-32k.Q4_0.gguf | Q4_0 | 4 | 8.99 GB | 11.49 GB | 舊版;小,非常高的質量損失 - 建議使用 Q3_K_M |
nanbeige-16b-base-32k.Q4_K_S.gguf | Q4_K_S | 4 | 9.04 GB | 11.54 GB | 小,更大的質量損失 |
nanbeige-16b-base-32k.Q4_K_M.gguf | Q4_K_M | 4 | 9.59 GB | 12.09 GB | 中等,平衡的質量 - 推薦 |
nanbeige-16b-base-32k.Q5_0.gguf | Q5_0 | 5 | 10.93 GB | 13.43 GB | 舊版;中等,平衡的質量 - 建議使用 Q4_K_M |
nanbeige-16b-base-32k.Q5_K_S.gguf | Q5_K_S | 5 | 10.93 GB | 13.43 GB | 大,低質量損失 - 推薦 |
nanbeige-16b-base-32k.Q5_K_M.gguf | Q5_K_M | 5 | 11.24 GB | 13.74 GB | 大,非常低的質量損失 - 推薦 |
nanbeige-16b-base-32k.Q6_K.gguf | Q6_K | 6 | 12.99 GB | 15.49 GB | 非常大,極低的質量損失 |
nanbeige-16b-base-32k.Q8_0.gguf | Q8_0 | 8 | 16.83 GB | 19.33 GB | 非常大,極低的質量損失 - 不推薦 |
注意:上述 RAM 數字假設沒有 GPU 卸載。如果將層卸載到 GPU,這將減少 RAM 使用並使用 VRAM 代替。
🔧 技術細節
模型介紹
Nanbeige-16B(南北閣-16B)是南北閣大模型實驗室研發的 160 億參數規模的大語言模型,採用了 2.5T Tokens 進行預訓練,數據包含大量互聯網高質量語料、各類書籍、代碼等領域脫敏文本,在各個權威測評數據集上都取得了不錯的效果。本次發佈包含有 Base、Chat 以及擴展上下文長度的 Base-32k、Chat-32k 版本。
Base-32k 版本基於 Nanbeige-16B-Base 模型,採用 YaRN 插值方法對位置編碼進行修改,並以 32k 為最大長度進行了 20B Tokens 的中文、英文、代碼語料的全參數增量預訓練。
Chat 版本和 Chat-32k 版本分別基於 Nanbeige-16B-Base 模型和 Nanbeige-16B-Base-32k 模型,經過了大量人類對齊訓練,能夠更好、更安全地回覆用戶的問題。
如果您需要處理更長的上下文,我們推薦您使用 Nanbeige-16B-Base-32k 和 Nanbeige-16B-Chat-32k。
模型推理
相關依賴
- python 3.8 及以上版本
- transformers 4.33.3
- pytorch 2.0 及以上版本
- deepspeed 0.11.1 及以上版本
安裝相關依賴庫的命令:
pip install transformers==4.33.3 transformers_stream_generator deepspeed einops==0.3.2 datasets==2.10.0 deepspeed==0.11.1
推理代碼
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from transformers.generation.utils import GenerationConfig
import deepspeed
import os
tokenizer = AutoTokenizer.from_pretrained("Nanbeige/Nanbeige-16B-Base-32k", use_fast=False, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("Nanbeige/Nanbeige-16B-Base-32k", device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True)
world_size = int(os.getenv('WORLD_SIZE', '1'))
model = deepspeed.init_inference(model.eval(),
dtype="bfloat16",
replace_with_kernel_inject=False,
mp_size=world_size)
inputs = tokenizer('中國的首都是北京\n德國的首都是柏林\n孟加拉的首都是', return_tensors='pt')
inputs = inputs.to(model.device)
pred = model.generate(**inputs, max_new_tokens=32000)
print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
性能測評
長文本理解
我們使用 LongBench 的 LSHT、LCC、Multifiled_QA_ZH 數據集,對 Nanbeige-16B-Base-32k 模型進行了測評,相較具有長文本理解能力的同參數規模 Base 模型取得了不錯的結果。
LSHT (分類) | LCC (代碼) | Multifiled_QA_ZH (問答) | |
---|---|---|---|
Chinese-Llama2-13B-16k | 31.0 | 9.6 | 36.4 |
Qwen-14B-Dynamnic_ntk-Logn | 16.0 | 66.7 | 30.0 |
Nanbeige-16B-Base-32k | 40.3 | 70.7 | 47.2 |
📄 許可證
使用 Nanbeige 模型時,您必須遵守 Apache 2.0 許可證和《南北閣大語言模型許可協議》。如果您打算將 Nanbeige 模型或其衍生產品用於商業目的,請通過以下聯繫郵箱 nanbeige@126.com 提交申請材料,以滿足《南北閣大語言模型許可協議》的要求。經過審核後,我們將授予您非排他性、全球範圍內、不可轉讓、不可再許可、可撤銷的商業版權許可。
其他信息
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 特別提及:Brandon Frisco、LangChain4j 等眾多人士。
感謝所有慷慨的贊助者和捐贈者!再次感謝 a16z 的慷慨資助。
侷限性
雖然我們在訓練過程中非常注重模型的安全性,力求確保其輸出符合倫理和法律要求的文本,但由於模型大小和概率生成範式的限制,無法完全避免產生各種不符合預期的輸出情況。這些輸出可能包含偏見、歧視等有害內容,請勿傳播這些內容。我們不承擔因傳播不良信息而導致的任何後果。



