模型简介
模型特点
模型能力
使用案例
🚀 Llama2 13B Orca 8K 3319 - GGUF
本项目包含了 OpenAssistant 的 Llama2 13B Orca 8K 3319 模型的 GGUF 格式文件,该模型在特定数据集上微调,可用于文本生成等任务。
🚀 快速开始
下载 GGUF 文件
- 自动下载:LM Studio、LoLLMS Web UI、Faraday.dev 等客户端/库会自动下载模型,并提供可用模型列表供你选择。
- 在 text-generation-webui 中下载:在“Download Model”下,输入模型仓库地址
TheBloke/OpenAssistant-Llama2-13B-Orca-8K-3319-GGUF
,并在下方输入要下载的具体文件名,如openassistant-llama2-13b-orca-8k-3319.q4_K_M.gguf
,然后点击“Download”。 - 命令行下载:推荐使用
huggingface-hub
Python 库。
然后使用以下命令将单个模型文件高速下载到当前目录:pip3 install huggingface-hub>=0.17.1
huggingface-cli download TheBloke/OpenAssistant-Llama2-13B-Orca-8K-3319-GGUF openassistant-llama2-13b-orca-8k-3319.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
运行示例
llama.cpp 命令示例
确保你使用的是 d0cee0d36d5be95a0d9088b674dbb27354107221 或更新版本的 llama.cpp
。
./main -ngl 32 -m openassistant-llama2-13b-orca-8k-3319.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "<|system|>{system_message}</s><|prompter|>{prompt}</s><|assistant|>"
-ngl 32
:要卸载到 GPU 的层数。如果你没有 GPU 加速,请移除该参数。-c 4096
:所需的序列长度。对于扩展序列模型(如 8K、16K、32K),必要的 RoPE 缩放参数会从 GGUF 文件中读取,并由 llama.cpp 自动设置。- 如果你想进行聊天式对话,将
-p <PROMPT>
参数替换为-i -ins
。
在 text-generation-webui 中运行
更多说明请参考 text-generation-webui/docs/llama.cpp.md。
从 Python 代码运行
你可以使用 llama-cpp-python 或 ctransformers 库从 Python 中使用 GGUF 模型。
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/OpenAssistant-Llama2-13B-Orca-8K-3319-GGUF", model_file="openassistant-llama2-13b-orca-8k-3319.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
✨ 主要特性
- 基于 Llama2:该模型基于 Meta 的 Llama2 13B 模型微调,具有良好的语言理解和生成能力。
- 8K 上下文长度:支持 8K 的上下文长度,能够处理更长的输入和生成更连贯的文本。
- 多种量化格式:提供了多种量化格式的 GGUF 文件,可根据不同的硬件和需求选择合适的文件。
📦 安装指南
安装依赖库
pip3 install huggingface-hub>=0.17.1
如果你想加速下载,可以安装 hf_transfer
:
pip3 install hf_transfer
下载模型文件
参考“快速开始”部分的下载方法。
📚 详细文档
关于 GGUF
GGUF 是 llama.cpp 团队在 2023 年 8 月 21 日引入的一种新格式,它取代了不再受 llama.cpp 支持的 GGML 格式。GGUF 具有许多优于 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:一个有吸引力且易于使用的基于角色的聊天 GUI,适用于 Windows 和 macOS(Silicon 和 Intel),支持 GPU 加速。
- ctransformers:一个支持 GPU 加速、LangChain 支持和 OpenAI 兼容 AI 服务器的 Python 库。
- llama-cpp-python:一个支持 GPU 加速、LangChain 支持和 OpenAI 兼容 API 服务器的 Python 库。
- candle:一个专注于性能的 Rust ML 框架,包括 GPU 支持和易用性。
可用的仓库
- 用于 GPU 推理的 AWQ 模型
- 具有多个量化参数选项的用于 GPU 推理的 GPTQ 模型
- 用于 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- OpenAssistant 原始的未量化 fp16 格式的 PyTorch 模型,用于 GPU 推理和进一步转换
提示模板
<|system|>{system_message}</s><|prompter|>{prompt}</s><|assistant|>
许可信息
源模型的创建者将其许可证列为 other
,因此本次量化使用了相同的许可证。由于该模型基于 Llama 2,它也受 Meta Llama 2 许可证条款的约束,并且额外包含了该许可证文件。因此,应认为该模型声称同时受这两种许可证的约束。我已联系 Hugging Face 以澄清双重许可问题,但他们尚未有官方立场。如果情况发生变化,或者 Meta 对此情况提供任何反馈,我将相应更新此部分。
在此期间,任何关于许可的问题,特别是这两种许可证如何相互作用的问题,应直接咨询原始模型仓库:OpenAssistant 的 Llama2 13B Orca 8K 3319。
兼容性
这些量化的 GGUFv2 文件与 2023 年 8 月 27 日及以后的 llama.cpp 版本兼容,对应提交版本为 d0cee0d36d5be95a0d9088b674dbb27354107221。
它们也与许多第三方 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 数字假设没有进行 GPU 卸载。如果将层卸载到 GPU,这将减少 RAM 使用并使用 VRAM 代替。
原始模型信息
模型描述
该模型是在 Meta 的 Llama2 13B 模型基础上进行微调的,具有 8K 的上下文大小,微调数据集为 Dolphin 数据集的长对话变体 (orca-chat)。
注意:加载此模型至少需要 Huggingface Transformers 4.31.0 版本!
使用示例
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("OpenAssistant/llama2-13b-orca-8k-3319", use_fast=False)
model = AutoModelForCausalLM.from_pretrained("OpenAssistant/llama2-13b-orca-8k-3319", torch_dtype=torch.float16, low_cpu_mem_usage=True, device_map="auto")
🔧 技术细节
量化方法
不同的量化方法会影响模型的大小、性能和质量。例如,Q2_K 量化方法使用 2 位量化,模型文件最小,但质量损失显著;而 Q8_0 量化方法使用 8 位量化,模型文件最大,但质量损失极低。
上下文长度
该模型支持 8K 的上下文长度,通过 RoPE 缩放参数实现。在使用时,必要的 RoPE 缩放参数会从 GGUF 文件中读取,并由 llama.cpp 自动设置。
📄 许可证
该模型的源许可证为 other
,同时受 Meta Llama 2 许可证条款的约束。具体许可问题请咨询原始模型仓库 OpenAssistant 的 Llama2 13B Orca 8K 3319。
💡 使用建议
- 选择合适的量化文件:根据你的硬件配置和需求,选择合适的量化文件。如果对质量要求较高,建议选择 Q4_K_M、Q5_K_S 或 Q5_K_M 等量化文件;如果对内存要求较高,可以选择 Q2_K 或 Q3_K 等量化文件。
- GPU 加速:如果你的系统支持 GPU 加速,建议使用
-ngl
参数将部分层卸载到 GPU,以提高推理速度。 - 调整序列长度:根据实际需求调整
-c
参数,以设置合适的序列长度。对于扩展序列模型,必要的 RoPE 缩放参数会自动设置。
⚠️ 重要提示
- 版本要求:确保使用的
llama.cpp
版本为 d0cee0d36d5be95a0d9088b674dbb27354107221 或更新版本。 - 模型加载:加载原始模型至少需要 Huggingface Transformers 4.31.0 版本。
- RAM 使用:上述提供的文件所需的 RAM 数字假设没有进行 GPU 卸载。如果将层卸载到 GPU,这将减少 RAM 使用并使用 VRAM 代替。
🔗 相关链接
- Discord 服务器:TheBloke AI's Discord server
- 捐赠渠道:
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
感谢所有慷慨的赞助者和捐赠者!同时感谢 a16z 的慷慨资助!



