模型简介
模型特点
模型能力
使用案例
🚀 Llama 2 13B - GGUF
本项目提供了 Meta的Llama 2 13B 模型的GGUF格式文件,方便用户进行推理和使用。
🚀 快速开始
本仓库包含了Meta的Llama 2 13B模型的GGUF格式文件。GGUF是一种新的模型格式,具有诸多优势,如更好的分词效果、支持特殊令牌等。下面将为你详细介绍该模型的相关信息,包括格式说明、可用仓库、下载和运行方法等。
✨ 主要特性
- 新格式优势:GGUF格式由llama.cpp团队于2023年8月21日引入,替代了不再受支持的GGML格式。它具有更好的分词效果、支持特殊令牌,还支持元数据,并且设计为可扩展的。
- 多客户端支持:众多客户端和库都支持GGUF格式,如llama.cpp、text-generation-webui、KoboldCpp等,方便不同用户的使用需求。
- 多种量化选项:提供了多种量化方法和比特数的模型文件,用户可以根据自己的硬件条件和需求选择合适的文件,以平衡模型大小、内存需求和质量。
📦 安装指南
下载GGUF文件
手动下载注意事项
不建议克隆整个仓库,因为仓库中提供了多种不同的量化格式,大多数用户只需要选择并下载单个文件。
自动下载的客户端/库
以下客户端/库会自动为你下载模型,并提供可用模型列表供你选择:
- LM Studio
- LoLLMS Web UI
- Faraday.dev
在text-generation-webui
中下载
在“Download Model”下,输入模型仓库地址:TheBloke/Llama-2-13B-GGUF,然后在下方输入要下载的具体文件名,如:llama-2-13b.q4_K_M.gguf,最后点击“Download”。
命令行下载(包括同时下载多个文件)
推荐使用huggingface-hub
Python库:
pip3 install huggingface-hub>=0.17.1
然后可以使用以下命令将单个模型文件高速下载到当前目录:
huggingface-cli download TheBloke/Llama-2-13B-GGUF llama-2-13b.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
如果你想同时下载多个文件,可以使用模式匹配:
huggingface-cli download TheBloke/Llama-2-13B-GGUF --local-dir . --local-dir-use-symlinks False --include='*Q4_K*gguf'
若要在高速连接(1Gbit/s或更高)下加速下载,可安装hf_transfer
:
pip3 install hf_transfer
并将环境变量HF_HUB_ENABLE_HF_TRANSFER
设置为1
:
HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/Llama-2-13B-GGUF llama-2-13b.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
Windows命令行用户在运行下载命令前,使用set HUGGINGFACE_HUB_ENABLE_HF_TRANSFER=1
。
💻 使用示例
示例llama.cpp
命令
确保你使用的是2023年8月27日及以后提交的llama.cpp
版本,提交号为 d0cee0d36d5be95a0d9088b674dbb27354107221。
./main -ngl 32 -m llama-2-13b.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "{prompt}"
-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/Llama-2-13B-GGUF", model_file="llama-2-13b.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日引入的新格式,用于替代不再受支持的GGML格式。它具有以下优点:
- 更好的分词效果:能够更准确地对文本进行分词,提高模型的理解能力。
- 支持特殊令牌:可以处理特殊的令牌,增强模型的表达能力。
- 支持元数据:方便存储和管理模型的相关信息。
- 可扩展性:设计为可扩展的,便于未来的功能扩展。
以下是已知支持GGUF的客户端和库列表:
- llama.cpp:GGUF的源项目,提供了命令行界面和服务器选项。
- text-generation-webui:最广泛使用的Web UI,具有许多功能和强大的扩展,支持GPU加速。
- KoboldCpp:功能齐全的Web UI,支持跨所有平台和GPU架构的GPU加速,尤其适合讲故事。
- LM Studio:易于使用且功能强大的本地GUI,适用于Windows和macOS(Silicon),支持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机器学习框架,注重性能,包括GPU支持和易用性。
可用仓库
- 用于GPU推理的AWQ模型
- 具有多个量化参数选项的GPU推理GPTQ模型
- 用于CPU+GPU推理的2、3、4、5、6和8位GGUF模型
- Meta的原始未量化fp16格式的pytorch模型,用于GPU推理和进一步转换
提示模板
{prompt}
兼容性
这些量化的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 | 使用场景 |
---|---|---|---|---|---|
llama-2-13b.Q2_K.gguf | Q2_K | 2 | 5.43 GB | 7.93 GB | 最小,但质量损失显著,不建议用于大多数情况 |
llama-2-13b.Q3_K_S.gguf | Q3_K_S | 3 | 5.66 GB | 8.16 GB | 非常小,但质量损失高 |
llama-2-13b.Q3_K_M.gguf | Q3_K_M | 3 | 6.34 GB | 8.84 GB | 非常小,但质量损失高 |
llama-2-13b.Q3_K_L.gguf | Q3_K_L | 3 | 6.93 GB | 9.43 GB | 小,但质量损失较大 |
llama-2-13b.Q4_0.gguf | Q4_0 | 4 | 7.37 GB | 9.87 GB | 旧版本;小,但质量损失非常高,建议使用Q3_K_M |
llama-2-13b.Q4_K_S.gguf | Q4_K_S | 4 | 7.41 GB | 9.91 GB | 小,但质量损失更大 |
llama-2-13b.Q4_K_M.gguf | Q4_K_M | 4 | 7.87 GB | 10.37 GB | 中等,质量平衡,推荐使用 |
llama-2-13b.Q5_0.gguf | Q5_0 | 5 | 8.97 GB | 11.47 GB | 旧版本;中等,质量平衡,建议使用Q4_K_M |
llama-2-13b.Q5_K_S.gguf | Q5_K_S | 5 | 8.97 GB | 11.47 GB | 大,质量损失低,推荐使用 |
llama-2-13b.Q5_K_M.gguf | Q5_K_M | 5 | 9.23 GB | 11.73 GB | 大,质量损失非常低,推荐使用 |
llama-2-13b.Q6_K.gguf | Q6_K | 6 | 10.68 GB | 13.18 GB | 非常大,质量损失极低 |
llama-2-13b.Q8_0.gguf | Q8_0 | 8 | 13.83 GB | 16.33 GB | 非常大,质量损失极低,不建议使用 |
注意:以上RAM数字假设没有进行GPU卸载。如果将层卸载到GPU,将减少RAM使用并使用VRAM。
🔧 技术细节
模型信息
属性 | 详情 |
---|---|
模型类型 | Llama |
训练数据 | 由公开可用的在线数据组成的新混合数据 |
训练时间 | 2023年1月至2023年7月 |
状态 | 基于离线数据集训练的静态模型,未来调整后的模型版本将根据社区反馈改进模型安全性后发布 |
许可证 | 可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 获取自定义商业许可证 |
研究论文 | "Llama-2: Open Foundation and Fine-tuned Chat Models" |
训练数据
- 概述:Llama 2在2万亿个公开可用来源的令牌数据上进行了预训练。微调数据包括公开可用的指令数据集,以及超过一百万个新的人工标注示例。预训练和微调数据集均不包含Meta用户数据。
- 数据新鲜度:预训练数据截止到2022年9月,但一些微调数据更新至2023年7月。
评估结果
标准学术基准测试结果
模型 | 大小 | 代码 | 常识推理 | 世界知识 | 阅读理解 | 数学 | 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类型的硬件上累计使用了3311616 GPU小时的计算资源。估计总排放量为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 |
📄 许可证
本模型使用自定义商业许可证,可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 获取。
Discord
如需进一步支持,以及讨论这些模型和人工智能相关话题,请加入我们的 TheBloke AI的Discord服务器。
感谢与贡献
感谢 chirper.ai 团队!感谢 gpus.llm-utils.org 的Clay!
很多人询问是否可以进行贡献。我很乐意提供模型并帮助大家,也希望能有更多时间投入其中,并开展新的项目,如微调/训练。
如果您有能力且愿意贡献,我将不胜感激,这将帮助我继续提供更多模型,并开展新的人工智能项目。捐赠者将在任何AI/LLM/模型问题和请求上获得优先支持,访问私人Discord房间,以及其他福利。
- Patreon: https://patreon.com/TheBlokeAI
- Ko-Fi: https://ko-fi.com/TheBlokeAI
特别感谢:Aemon Algiz。
Patreon特别提及:Alicia Loh、Stephen Murray等众多支持者。
感谢所有慷慨的赞助者和捐赠者!再次感谢a16z的慷慨资助。
报告问题
如果发现模型存在软件“漏洞”或其他问题,请通过以下方式报告:
- 报告模型问题: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上的参考代码:chat_completion
。



