模型简介
模型特点
模型能力
使用案例
🚀 Llama 2 7B Chat - GGUF
本项目提供了 Meta Llama 2 的 Llama 2 7B Chat 模型的 GGUF 格式文件。GGUF 是一种新型的模型格式,具有诸多优势,能让你更高效地使用该模型进行文本生成任务。
🚀 快速开始
下载模型文件
- 自动下载:LM Studio、LoLLMS Web UI、Faraday.dev 等客户端/库会自动为你下载模型,并提供可用模型列表供你选择。
- 在
text-generation-webui
中下载:在“Download Model”处输入模型仓库地址TheBloke/Llama-2-7b-Chat-GGUF
,并在下方指定要下载的文件名,如llama-2-7b-chat.q4_K_M.gguf
,然后点击“Download”。 - 命令行下载:推荐使用
huggingface-hub
Python 库。首先安装:
pip3 install huggingface-hub>=0.17.1
然后使用以下命令下载单个模型文件到当前目录:
huggingface-cli download TheBloke/Llama-2-7b-Chat-GGUF llama-2-7b-chat.Q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
如果你想同时下载多个文件,可以使用模式匹配:
huggingface-cli download TheBloke/Llama-2-7b-Chat-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
若要加速高速连接(1Gbit/s 及以上)的下载,可安装 hf_transfer
:
pip3 install hf_transfer
并设置环境变量:
HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/Llama-2-7b-Chat-GGUF llama-2-7b-chat.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows CLI 用户在运行下载命令前使用 set HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1
。
运行模型
在 llama.cpp
中运行
确保你使用的是 2023 年 8 月 27 日之后的 llama.cpp
版本(提交号为 d0cee0d36d5be95a0d9088b674dbb27354107221)。运行命令示例如下:
./main -ngl 32 -m llama-2-7b-chat.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "[INST] <<SYS>>
You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature. If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.
<</SYS>>
{prompt}[/INST]"
-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
加载模型
首先安装包:
# 无 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/Llama-2-7b-Chat-GGUF", model_file="llama-2-7b-chat.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
与 LangChain 一起使用
以下是使用 llama-cpp-python
或 ctransformers
与 LangChain 的指南:
✨ 主要特性
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:一个 Python 库,支持 GPU 加速、LangChain 集成和与 OpenAI 兼容的 AI 服务器。
- llama-cpp-python:一个 Python 库,支持 GPU 加速、LangChain 集成和与 OpenAI 兼容的 API 服务器。
- candle:一个 Rust ML 框架,专注于性能,包括 GPU 支持和易用性。
📦 安装指南
安装依赖库
如果你想使用 Python 代码运行模型,需要安装相应的库。以 ctransformers
为例:
# 无 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
同时,若要使用命令行下载模型文件,需要安装 huggingface-hub
:
pip3 install huggingface-hub>=0.17.1
若要加速下载,还可安装 hf_transfer
:
pip3 install hf_transfer
💻 使用示例
基础用法
在 Python 中使用 ctransformers
加载模型并进行简单推理:
from ctransformers import AutoModelForCausalLM
# 设置 gpu_layers 为要卸载到 GPU 的层数,若系统无 GPU 加速则设置为 0
llm = AutoModelForCausalLM.from_pretrained("TheBloke/Llama-2-7b-Chat-GGUF", model_file="llama-2-7b-chat.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
高级用法
在 llama.cpp
中进行聊天式对话:
./main -ngl 32 -m llama-2-7b-chat.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -i -ins
📚 详细文档
模型信息
属性 | 详情 |
---|---|
模型创建者 | Meta Llama 2 |
原始模型 | Llama 2 7B Chat |
模型类型 | llama |
许可证 | llama2 |
论文链接 | Llama-2: Open Foundation and Fine-tuned Chat Models |
可用仓库
- 用于 GPU 推理的 AWQ 模型
- 用于 GPU 推理的 GPTQ 模型,具有多种量化参数选项
- 用于 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- Meta Llama 2 原始未量化的 fp16 格式 PyTorch 模型,用于 GPU 推理和进一步转换
提示模板
[INST] <<SYS>>
You are a helpful, respectful and honest assistant. Always answer as helpfully as possible, while being safe. Your answers should not include any harmful, unethical, racist, sexist, toxic, dangerous, or illegal content. Please ensure that your responses are socially unbiased and positive in nature. If a question does not make any sense, or is not factually coherent, explain why instead of answering something not correct. If you don't know the answer to a question, please don't share false information.
<</SYS>>
{prompt}[/INST]
兼容性
这些量化的 GGUFv2 文件与 2023 年 8 月 27 日之后的 llama.cpp 兼容(提交号为 d0cee0d36d5be95a0d9088b674dbb27354107221),也与许多第三方 UI 和库兼容,具体列表见本文档开头。
量化方法说明
点击查看详情
新的量化方法如下:
- 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 | 使用场景 |
---|---|---|---|---|---|
llama-2-7b-chat.Q2_K.gguf | Q2_K | 2 | 2.83 GB | 5.33 GB | 最小,但质量损失显著,不推荐用于大多数情况 |
llama-2-7b-chat.Q3_K_S.gguf | Q3_K_S | 3 | 2.95 GB | 5.45 GB | 非常小,但质量损失高 |
llama-2-7b-chat.Q3_K_M.gguf | Q3_K_M | 3 | 3.30 GB | 5.80 GB | 非常小,但质量损失高 |
llama-2-7b-chat.Q3_K_L.gguf | Q3_K_L | 3 | 3.60 GB | 6.10 GB | 小,但质量损失较大 |
llama-2-7b-chat.Q4_0.gguf | Q4_0 | 4 | 3.83 GB | 6.33 GB | 旧版本;小,但质量损失非常高,建议使用 Q3_K_M |
llama-2-7b-chat.Q4_K_S.gguf | Q4_K_S | 4 | 3.86 GB | 6.36 GB | 小,但质量损失更大 |
llama-2-7b-chat.Q4_K_M.gguf | Q4_K_M | 4 | 4.08 GB | 6.58 GB | 中等,质量平衡,推荐使用 |
llama-2-7b-chat.Q5_0.gguf | Q5_0 | 5 | 4.65 GB | 7.15 GB | 旧版本;中等,质量平衡,建议使用 Q4_K_M |
llama-2-7b-chat.Q5_K_S.gguf | Q5_K_S | 5 | 4.65 GB | 7.15 GB | 大,质量损失低,推荐使用 |
llama-2-7b-chat.Q5_K_M.gguf | Q5_K_M | 5 | 4.78 GB | 7.28 GB | 大,质量损失非常低,推荐使用 |
llama-2-7b-chat.Q6_K.gguf | Q6_K | 6 | 5.53 GB | 8.03 GB | 非常大,质量损失极低 |
llama-2-7b-chat.Q8_0.gguf | Q8_0 | 8 | 7.16 GB | 9.66 GB | 非常大,质量损失极低,但不推荐使用 |
注意:上述 RAM 数字假设没有进行 GPU 卸载。如果将层卸载到 GPU,这将减少 RAM 使用并使用 VRAM 代替。
🔧 技术细节
训练数据
Llama 2 在来自公开可用来源的 2 万亿个标记的数据上进行了预训练。微调数据包括公开可用的指令数据集,以及超过一百万个新的人工标注示例。预训练和微调数据集均不包括 Meta 用户数据。预训练数据截止到 2022 年 9 月,但一些微调数据更新至 2023 年 7 月。
评估结果
在标准学术基准测试中,Llama 2 模型在多个方面表现优于 Llama 1 模型。以下是具体的评估结果:
综合学术基准测试整体性能
模型 | 大小 | 代码 | 常识推理 | 世界知识 | 阅读理解 | 数学 | MMLU | BBH | AGI 评估 |
---|---|---|---|---|---|---|---|---|---|
Llama 1 | 7B | 14.1 | 60.8 | 46.2 | 58.5 | 6.95 | 35.1 | 30.3 | 23.9 |
Llama 1 | 13B | 18.9 | 66.1 | 52.6 | 62.3 | 10.9 | 46.9 | 37.0 | 33.9 |
Llama 1 | 33B | 26.0 | 70.0 | 58.4 | 67.6 | 21.4 | 57.8 | 39.8 | 41.7 |
Llama 1 | 65B | 30.7 | 70.7 | 60.5 | 68.6 | 30.8 | 63.4 | 43.5 | 47.6 |
Llama 2 | 7B | 16.8 | 63.9 | 48.9 | 61.3 | 14.6 | 45.3 | 32.6 | 29.3 |
Llama 2 | 13B | 24.5 | 66.9 | 55.4 | 65.8 | 28.7 | 54.8 | 39.4 | 39.1 |
Llama 2 | 70B | 37.5 | 71.9 | 63.6 | 69.4 | 35.2 | 68.9 | 51.2 | 54.2 |
预训练大语言模型在自动安全基准测试中的评估
TruthfulQA | Toxigen | ||
---|---|---|---|
Llama 1 | 7B | 27.42 | 23.00 |
Llama 1 | 13B | 41.74 | 23.08 |
Llama 1 | 33B | 44.19 | 22.57 |
Llama 1 | 65B | 48.71 | 21.77 |
Llama 2 | 7B | 33.29 | 21.25 |
Llama 2 | 13B | 41.86 | 26.10 |
Llama 2 | 70B | 50.18 | 24.60 |
微调大语言模型在不同安全数据集上的评估
TruthfulQA | Toxigen | ||
---|---|---|---|
Llama-2-Chat | 7B | 57.04 | 0.00 |
Llama-2-Chat | 13B | 62.18 | 0.00 |
Llama-2-Chat | 70B | 64.14 | 0.01 |
硬件和软件
- 训练因素:使用自定义训练库、Meta 的研究超级集群和生产集群进行预训练。微调、标注和评估也在第三方云计算上进行。
- 碳足迹:预训练在 A100 - 80GB 类型的硬件上累计使用了 330 万 GPU 小时的计算资源(TDP 为 350 - 400W)。估计总排放量为 539 tCO2eq,其中 100% 由 Meta 的可持续发展计划抵消。
模型 | 时间(GPU 小时) | 功耗(W) | 碳排放(tCO₂eq) |
---|---|---|---|
Llama 2 7B | 184320 | 400 | 31.22 |
Llama 2 13B | 368640 | 400 | 62.44 |
Llama 2 70B | 1720320 | 400 | 291.42 |
总计 | 3311616 | 539.00 |
📄 许可证
Llama 2 模型使用自定义商业许可证,可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 查看。
其他说明
Discord
加入 TheBloke AI 的 Discord 服务器,获取进一步的支持,并参与关于这些模型和人工智能的讨论。
感谢与贡献
感谢 chirper.ai 团队和 gpus.llm-utils.org 的 Clay!如果你愿意贡献,将非常感激,这将帮助提供更多模型并开展新的 AI 项目。捐赠者将在所有 AI/LLM/模型问题和请求上获得优先支持,访问私人 Discord 房间等。
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
特别感谢 Aemon Algiz 以及众多 Patreon 支持者。
问题报告
通过以下方式报告模型的软件“漏洞”或其他问题:
- 报告模型问题:github.com/facebookresearch/llama
- 报告模型生成的问题内容:developers.facebook.com/llama_output_feedback
- 报告漏洞和安全问题:facebook.com/whitehat/info
Llama 模型索引
模型 | Llama2 | Llama2 - hf | Llama2 - chat | Llama2 - chat - hf |
---|---|---|---|---|
7B | 链接 | 链接 | 链接 | 链接 |
13B | 链接 | 链接 | 链接 | 链接 |
70B | 链接 | 链接 | 链接 | 链接 |
注意事项
⚠️ 重要提示
使用本模型需遵守 Meta 的许可证。为下载模型权重和分词器,请访问 网站 并接受许可证后再在此处请求访问。模型仅用于英语的商业和研究用途,使用时请遵循适用的法律法规和可接受使用政策。
💡 使用建议
若要获得聊天版本的预期功能和性能,需遵循特定的格式,包括
INST
和<<SYS>>
标签、BOS
和EOS
标记以及它们之间的空格和换行符(建议对输入调用strip()
以避免双空格)。具体细节请参考 github 上的参考代码。



