模型简介
模型特点
模型能力
使用案例
🚀 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的指南:



