模型简介
模型特点
模型能力
使用案例
base_model: microsoft/phi-2 inference: false language:
-
en license: other license_link: https://huggingface.co/microsoft/phi-2/resolve/main/LICENSE license_name: microsoft-research-license model_creator: Microsoft model_name: Phi 2 model_type: phi-msft pipeline_tag: text-generation prompt_template: '指令: {prompt}
输出:
' quantized_by: TheBloke tags:
-
nlp
-
code

TheBloke的LLM工作得到了安德森·霍洛维茨(a16z)的慷慨资助
Phi 2 - GGUF
模型描述
本仓库包含Microsoft的Phi 2的GGUF格式模型文件。
关于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加速。Linux版本自2023年11月27日起处于测试阶段。
- LoLLMS Web UI,一个优秀的Web UI,具有许多有趣且独特的功能,包括完整的模型库以便轻松选择模型。
- Faraday.dev,一个吸引人且易于使用的基于角色的聊天GUI,适用于Windows和macOS(Silicon和Intel),支持GPU加速。
- llama-cpp-python,一个支持GPU加速的Python库,具备LangChain支持和OpenAI兼容的API服务器。
- candle,一个专注于性能的Rust ML框架,包括GPU支持和易用性。
- ctransformers,一个支持GPU加速的Python库,具备LangChain支持和OpenAI兼容的AI服务器。注意,截至撰写时(2023年11月27日),ctransformers已长时间未更新,不支持许多最新模型。
可用仓库
- 用于GPU推理的GPTQ模型,提供多种量化参数选项。
- 用于CPU+GPU推理的2、3、4、5、6和8位GGUF模型
- Microsoft原始的未量化fp16模型,以pytorch格式提供,用于GPU推理和进一步转换
提示模板:Phi
指令: {prompt}
输出:
兼容性
这些量化的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 | 使用场景 |
---|---|---|---|---|---|
phi-2.Q2_K.gguf | Q2_K | 2 | 1.17 GB | 3.67 GB | 最小,显著质量损失 - 不推荐用于大多数用途 |
phi-2.Q3_K_S.gguf | Q3_K_S | 3 | 1.25 GB | 3.75 GB | 非常小,高质量损失 |
phi-2.Q3_K_M.gguf | Q3_K_M | 3 | 1.48 GB | 3.98 GB | 非常小,高质量损失 |
phi-2.Q4_0.gguf | Q4_0 | 4 | 1.60 GB | 4.10 GB | 传统;小,极高质量损失 - 推荐使用Q3_K_M |
phi-2.Q3_K_L.gguf | Q3_K_L | 3 | 1.60 GB | 4.10 GB | 小,实质性质量损失 |
phi-2.Q4_K_S.gguf | Q4_K_S | 4 | 1.62 GB | 4.12 GB | 小,较大质量损失 |
phi-2.Q4_K_M.gguf | Q4_K_M | 4 | 1.79 GB | 4.29 GB | 中等,平衡质量 - 推荐 |
phi-2.Q5_0.gguf | Q5_0 | 5 | 1.93 GB | 4.43 GB | 传统;中等,平衡质量 - 推荐使用Q4_K_M |
phi-2.Q5_K_S.gguf | Q5_K_S | 5 | 1.93 GB | 4.43 GB | 大,低质量损失 - 推荐 |
phi-2.Q5_K_M.gguf | Q5_K_M | 5 | 2.07 GB | 4.57 GB | 大,极低质量损失 - 推荐 |
phi-2.Q6_K.gguf | Q6_K | 6 | 2.29 GB | 4.79 GB | 非常大,极低质量损失 |
phi-2.Q8_0.gguf | Q8_0 | 8 | 2.96 GB | 5.46 GB | 非常大,极低质量损失 - 不推荐 |
注意:上述RAM数据假设没有GPU卸载。如果将层卸载到GPU,将减少RAM使用并改用VRAM。
如何下载GGUF文件
手动下载者注意:您几乎不需要克隆整个仓库!提供了多种不同的量化格式,大多数用户只需选择并下载单个文件。
以下客户端/库会自动为您下载模型,提供可供选择的模型列表:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在text-generation-webui
中
在“下载模型”下,您可以输入模型仓库:TheBloke/phi-2-GGUF,并在下方输入要下载的特定文件名,例如:phi-2.Q4_K_M.gguf。
然后点击“下载”。
在命令行中,包括一次性下载多个文件
推荐使用huggingface-hub
Python库:
pip3 install huggingface-hub
然后,您可以使用以下命令将任何单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/phi-2-GGUF phi-2.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更多高级huggingface-cli下载用法(点击阅读)
您还可以使用模式一次性下载多个文件:
huggingface-cli download TheBloke/phi-2-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 TheBloke/phi-2-GGUF phi-2.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows命令行用户:您可以在下载命令前运行set HF_HUB_ENABLE_HF_TRANSFER=1
来设置环境变量。
示例llama.cpp
命令
确保您使用的是提交号为d0cee0d或更高版本的llama.cpp
。
./main -ngl 35 -m phi-2.Q4_K_M.gguf --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "指令: {prompt}\n输出:"
将-ngl 32
更改为要卸载到GPU的层数。如果没有GPU加速,请删除此参数。
将-c 2048
更改为所需的序列长度。对于扩展序列模型(如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。
如何在Python代码中加载此模型,使用llama-cpp-python
完整文档请参阅:llama-cpp-python文档。
首先安装包
根据您的系统运行以下命令之一:
# 基础ctransformers,无GPU加速
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
# 或使用Metal GPU加速(仅限macOS系统)
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="./phi-2.Q4_K_M.gguf", # 首先下载模型文件
n_ctx=2048, # 要使用的最大序列长度 - 注意,更长的序列长度需要更多的资源
n_threads=8, # 要使用的CPU线程数,根据您的系统和性能进行调整
n_gpu_layers=35 #


