Model Overview
Model Features
Model Capabilities
Use Cases
🚀 MaziyarPanahi/gemma-2b-it-GGUF
該項目包含了適用於google/gemma-2b-it的GGUF格式模型文件,為文本生成任務提供了高效的解決方案。
🚀 快速開始
模型基本信息
- 模型創建者:google
- 原始模型:google/gemma-2b-it
關於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機器學習框架,包括GPU支持,且易於使用。
- ctransformers:一個支持GPU加速、LangChain和OpenAI兼容AI服務器的Python庫。截至2023年11月27日,ctransformers已有很長時間未更新,不支持許多最新的模型。
量化方法說明
點擊查看詳情
可用的新方法如下:
- 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。
如何下載GGUF文件
手動下載者注意:你幾乎不需要克隆整個倉庫!這裡提供了多種不同的量化格式,大多數用戶只需要選擇並下載單個文件。
以下客戶端/庫將自動為你下載模型,並提供可用模型列表供你選擇:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在text-generation-webui
中下載
在“Download Model”下,你可以輸入模型倉庫地址:MaziyarPanahi/gemma-2b-it-GGUF,並在其下方輸入要下載的具體文件名,例如:gemma-2b-it-GGUF.Q4_K_M.gguf,然後點擊“Download”。
在命令行中下載(包括一次下載多個文件)
建議使用huggingface-hub
Python庫:
pip3 install huggingface-hub
然後,你可以使用以下命令將任何單個模型文件高速下載到當前目錄:
huggingface-cli download MaziyarPanahi/gemma-2b-it-GGUF gemma-2b-it-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更高級的huggingface-cli下載用法(點擊查看)
你還可以使用通配符一次下載多個文件:
huggingface-cli download [MaziyarPanahi/gemma-2b-it-GGUF](https://huggingface.co/MaziyarPanahi/gemma-2b-it-GGUF) --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
有關使用huggingface-cli
下載的更多文檔,請參閱:HF -> Hub Python Library -> Download files -> 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 MaziyarPanahi/gemma-2b-it-GGUF gemma-2b-it-GGUF.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows命令行用戶:你可以在下載命令之前運行set HF_HUB_ENABLE_HF_TRANSFER=1
來設置環境變量。
💻 使用示例
llama.cpp
命令示例
確保你使用的是commit d0cee0d或更高版本的llama.cpp
。
./main -ngl 35 -m gemma-2b-it-GGUF.Q4_K_M.gguf --color -c 32768 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant"
- 將
-ngl 32
更改為要卸載到GPU的層數。如果你沒有GPU加速,請刪除此參數。 - 將
-c 32768
更改為所需的序列長度。對於擴展序列模型(例如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
根據你的系統運行以下命令之一:
# 無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_layers設置為要卸載到GPU的層數。如果你的系統沒有GPU加速,請將其設置為0。
llm = Llama(
model_path="./gemma-2b-it-GGUF.Q4_K_M.gguf", # 首先下載模型文件
n_ctx=32768, # 要使用的最大序列長度 - 請注意,更長的序列長度需要更多的資源
n_threads=8, # 要使用的CPU線程數,根據你的系統和性能進行調整
n_gpu_layers=35 # 要卸載到GPU的層數,如果你有GPU加速
)
# 簡單的推理示例
output = llm(
"<|im_start|>system
{system_message}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant", # 提示
max_tokens=512, # 生成最多512個令牌
stop=["</s>"], # 示例停止令牌 - 不一定適用於此特定模型!使用前請檢查。
echo=True # 是否回顯提示
)
# 聊天完成API
llm = Llama(model_path="./gemma-2b-it-GGUF.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的指南:



