模型简介
模型特点
模型能力
使用案例
🚀 Pygmalion 2 13B
Pygmalion 2 13B是基于Llama-2 13B微调的模型,适用于角色扮演、故事写作和对话场景。它采用特殊的提示模板,能根据不同角色生成回复,为用户带来丰富的交互体验。
🚀 快速开始
下载GGUF文件
手动下载注意事项:通常无需克隆整个仓库!这里提供了多种不同的量化格式,大多数用户只需选择并下载单个文件。
以下客户端/库会自动为你下载模型,并提供可用模型列表供你选择:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在text-generation-webui
中下载
在“Download Model”下,你可以输入模型仓库地址:TheBloke/Pygmalion-2-13B-GGUF,然后在下方输入具体的文件名进行下载,例如:pygmalion-2-13b.q4_K_M.gguf。然后点击“Download”。
在命令行下载(可同时下载多个文件)
推荐使用huggingface-hub
Python库:
pip3 install huggingface-hub>=0.17.1
然后你可以使用以下命令将任何单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/Pygmalion-2-13B-GGUF pygmalion-2-13b.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
更高级的huggingface-cli下载用法
你还可以使用通配符同时下载多个文件:
huggingface-cli download TheBloke/Pygmalion-2-13B-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
:
HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/Pygmalion-2-13B-GGUF pygmalion-2-13b.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows命令行用户:在运行下载命令前使用set HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1
。
运行模型
llama.cpp
命令示例
确保你使用的是此提交或更新版本的llama.cpp
。
./main -ngl 32 -m pygmalion-2-13b.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|system|>Enter RP mode. Pretend to be {{char}} whose persona follows:\n{{persona}}\n\nYou shall reply to the user while staying in character, and generate long responses."
- 将
-ngl 32
更改为要卸载到GPU的层数。如果没有GPU加速,请删除该参数。 - 将
-c 4096
更改为所需的序列长度。对于扩展序列模型(如8K、16K、32K),必要的RoPE缩放参数会从GGUF文件中读取,并由llama.cpp自动设置。
如果你想进行聊天式对话,将-p <PROMPT>
参数替换为-i -ins
。
其他参数的使用方法,请参考llama.cpp文档。
在text-generation-webui
中运行
更多说明请参考:text-generation-webui/docs/llama.cpp.md。
从Python代码运行
你可以使用llama-cpp-python或ctransformers库从Python中使用GGUF模型。
使用ctransformers从Python加载此模型
首先安装包:
# 无GPU加速的基础ctransformers
pip install ctransformers>=0.2.24
# 或使用CUDA GPU加速
pip install ctransformers[cuda]>=0.2.24
# 或使用ROCm GPU加速
CT_HIPBLAS=1 pip install ctransformers>=0.2.24 --no-binary ctransformers
# 或使用适用于macOS系统的Metal GPU加速
CT_METAL=1 pip install ctransformers>=0.2.24 --no-binary ctransformers
加载GGUF模型的简单示例代码:
from ctransformers import AutoModelForCausalLM
# 将gpu_layers设置为要卸载到GPU的层数。如果系统上没有GPU加速,请设置为0。
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Pygmalion-2-13B-GGUF", model_file="pygmalion-2-13b.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
使用LangChain
以下是使用llama-cpp-python或ctransformers与LangChain的指南:
✨ 主要特性
- 多场景适用:适用于角色扮演、故事写作和对话等虚构写作场景。
- 特殊提示模板:通过
<|system|>
、<|user|>
和<|model|>
三种角色标记,可灵活构建对话历史,控制模型的回复模式和长度。 - 多种量化格式:提供多种量化格式的GGUF文件,可根据不同的硬件资源和需求进行选择。
📦 安装指南
下载依赖库
pip3 install huggingface-hub>=0.17.1
若要加速下载,可安装hf_transfer
:
pip3 install hf_transfer
使用ctransformers
库时,根据不同的GPU加速需求安装相应的包:
# 无GPU加速的基础ctransformers
pip install ctransformers>=0.2.24
# 或使用CUDA GPU加速
pip install ctransformers[cuda]>=0.2.24
# 或使用ROCm GPU加速
CT_HIPBLAS=1 pip install ctransformers>=0.2.24 --no-binary ctransformers
# 或使用适用于macOS系统的Metal GPU加速
CT_METAL=1 pip install ctransformers>=0.2.24 --no-binary ctransformers
💻 使用示例
基础用法
from ctransformers import AutoModelForCausalLM
# 将gpu_layers设置为要卸载到GPU的层数。如果系统上没有GPU加速,请设置为0。
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Pygmalion-2-13B-GGUF", model_file="pygmalion-2-13b.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
高级用法
from ctransformers import AutoModelForCausalLM
# 高级场景:设置更多参数,如温度、重复惩罚等
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Pygmalion-2-13B-GGUF", model_file="pygmalion-2-13b.q4_K_M.gguf", model_type="llama", gpu_layers=50)
prompt = "<|system|>Enter RP mode. Pretend to be a wise old wizard whose persona is kind and helpful. You shall reply to the user while staying in character, and generate long responses.<|user|>What is the secret of the universe?"
output = llm(prompt, temperature=0.7, repeat_penalty=1.1)
print(output)
📚 详细文档
关于GGUF
GGUF是llama.cpp团队在2023年8月21日推出的新格式,用于替代不再受llama.cpp支持的GGML。GGUF具有诸多优势,如更好的分词功能、支持特殊标记,还支持元数据,并且具有可扩展性。
以下是已知支持GGUF的客户端和库列表:
- llama.cpp:GGUF的源项目,提供命令行界面和服务器选项。
- 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:一个有吸引力且易于使用的基于角色的聊天GUI,适用于Windows和macOS(Silicon和Intel),支持GPU加速。
- ctransformers:一个支持GPU加速、LangChain和OpenAI兼容AI服务器的Python库。
- llama-cpp-python:一个支持GPU加速、LangChain和OpenAI兼容API服务器的Python库。
- candle:一个专注于性能的Rust机器学习框架,包括GPU支持,且易于使用。
可用仓库
- 用于GPU推理的AWQ模型
- 用于GPU推理的GPTQ模型,具有多种量化参数选项
- 用于CPU+GPU推理的2、3、4、5、6和8位GGUF模型
- PygmalionAI原始未量化的fp16格式PyTorch模型,用于GPU推理和进一步转换
提示模板
模型在训练时使用了三种不同角色的提示,分别由以下标记表示:<|system|>
、<|user|>
和<|model|>
。
<|system|>
提示可用于在幕后注入非对话信息,<|user|>
提示用于表示用户输入,<|model|>
标记用于指示模型生成回复。这些标记可以多次出现并链接起来形成对话历史。
系统提示旨在让模型“进入”各种模式并控制回复长度。以下是一个示例:
<|system|>Enter RP mode. Pretend to be {{char}} whose persona follows:
{{persona}}
You shall reply to the user while staying in character, and generate long responses.
兼容性
这些量化的GGUFv2文件与8月27日及以后的llama.cpp版本兼容,具体为此提交之后的版本。
它们也与许多第三方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。
请参考下面的“提供的文件”表,了解哪些文件使用了哪些方法以及如何使用。
提供的文件
属性 | 详情 |
---|---|
模型类型 | llama |
训练数据 | PygmalionAI/PIPPA、Open-Orca/OpenOrca、Norquinal/claude_multiround_chat_30k、jondurbin/airoboros-gpt4-1.4.1、databricks/databricks-dolly-15k |
名称 | 量化方法 | 位数 | 大小 | 所需最大RAM | 使用场景 |
---|---|---|---|---|---|
pygmalion-2-13b.Q2_K.gguf | Q2_K | 2 | 5.43 GB | 7.93 GB | 最小,但质量损失显著,不建议用于大多数场景 |
pygmalion-2-13b.Q3_K_S.gguf | Q3_K_S | 3 | 5.66 GB | 8.16 GB | 非常小,但质量损失高 |
pygmalion-2-13b.Q3_K_M.gguf | Q3_K_M | 3 | 6.34 GB | 8.84 GB | 非常小,但质量损失高 |
pygmalion-2-13b.Q3_K_L.gguf | Q3_K_L | 3 | 6.93 GB | 9.43 GB | 小,但质量损失较大 |
pygmalion-2-13b.Q4_0.gguf | Q4_0 | 4 | 7.37 GB | 9.87 GB | 旧版本;小,但质量损失非常高,建议使用Q3_K_M |
pygmalion-2-13b.Q4_K_S.gguf | Q4_K_S | 4 | 7.41 GB | 9.91 GB | 小,但质量损失更大 |
pygmalion-2-13b.Q4_K_M.gguf | Q4_K_M | 4 | 7.87 GB | 10.37 GB | 中等,质量平衡,推荐使用 |
pygmalion-2-13b.Q5_0.gguf | Q5_0 | 5 | 8.97 GB | 11.47 GB | 旧版本;中等,质量平衡,建议使用Q4_K_M |
pygmalion-2-13b.Q5_K_S.gguf | Q5_K_S | 5 | 8.97 GB | 11.47 GB | 大,质量损失低,推荐使用 |
pygmalion-2-13b.Q5_K_M.gguf | Q5_K_M | 5 | 9.23 GB | 11.73 GB | 大,质量损失非常低,推荐使用 |
pygmalion-2-13b.Q6_K.gguf | Q6_K | 6 | 10.68 GB | 13.18 GB | 非常大,质量损失极低 |
pygmalion-2-13b.Q8_0.gguf | Q8_0 | 8 | 13.83 GB | 16.33 GB | 非常大,质量损失极低,但不建议使用 |
注意:上述RAM数字假设没有进行GPU卸载。如果将层卸载到GPU,将减少RAM使用并使用VRAM。
🔧 技术细节
提示模板设计
模型使用<|system|>
、<|user|>
和<|model|>
三种角色标记,通过这些标记的组合可以灵活构建对话历史。系统提示可以控制模型进入不同的模式,如角色扮演模式,并指定回复的长度和风格。这种设计使得模型能够更好地理解用户的意图,生成符合要求的回复。
量化方法
采用了多种量化方法,如GGML_TYPE_Q2_K、GGML_TYPE_Q3_K等,不同的量化方法在压缩率和质量损失上有所不同。用户可以根据自己的硬件资源和性能需求选择合适的量化文件。例如,Q2_K量化方法压缩率最高,但质量损失也相对较大;而Q6_K和Q8_0量化方法质量损失极低,但文件大小较大,需要更多的内存和计算资源。
📄 许可证
本模型遵循Llama2许可证。
⚠️ 重要提示
本模型的预期使用场景是用于娱乐目的的虚构写作,其他使用场景不在适用范围内。它未经过微调以确保安全无害,基础模型和微调版本都在包含亵渎、低俗或其他冒犯性内容的数据上进行了训练,可能会生成社会不可接受或不良的文本,即使提示本身不包含任何明确的冒犯性内容。输出结果可能经常存在事实错误或误导性信息。
💡 使用建议
- 在选择量化文件时,根据自己的硬件资源和性能需求进行选择。如果内存有限,可以选择较小的量化文件,但可能会牺牲一定的质量;如果对质量要求较高,建议选择Q4_K_M、Q5_K_S或Q5_K_M等量化文件。
- 在使用模型进行对话时,合理设计系统提示,明确指定角色和回复要求,以获得更好的回复效果。
- 如果遇到性能问题,可以尝试调整模型的参数,如温度、重复惩罚等,以平衡生成速度和质量。



