模型简介
模型特点
模型能力
使用案例
🚀 CodeLlama 7B Python - GGUF
本项目提供了 Meta的CodeLlama 7B Python 模型的GGUF格式文件,方便用户在不同场景下使用该模型进行代码生成等任务。
🚀 快速开始
本仓库包含了Meta的CodeLlama 7B Python模型的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/CodeLlama-7B-Python-GGUF,然后在下方输入具体的文件名,如:codellama-7b-python.q4_K_M.gguf,最后点击“Download”。
命令行下载
推荐使用huggingface-hub
Python库:
pip3 install huggingface-hub>=0.17.1
然后使用以下命令高速下载单个模型文件到当前目录:
huggingface-cli download TheBloke/CodeLlama-7B-Python-GGUF codellama-7b-python.q4_K_M.gguf --local-dir . --local-dir-use-symlinks False
安装依赖库
如果你想从Python代码中使用GGUF模型,可以使用llama-cpp-python或ctransformers库。以ctransformers
为例,安装命令如下:
# 无GPU加速的基础安装
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
💻 使用示例
在llama.cpp
中运行示例
./main -ngl 32 -m codellama-7b-python.q4_K_M.gguf --color -c 4096 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "[INST] Write code to solve the following coding problem that obeys the constraints and passes the example test cases. Please wrap your code answer using ```:\n{prompt}\n[/INST]"
-ngl 32
:指定要卸载到GPU的层数,若没有GPU加速可移除该参数。-c 4096
:指定所需的序列长度。对于扩展序列模型(如8K、16K、32K),必要的RoPE缩放参数会从GGUF文件中读取并由llama.cpp自动设置。- 若想进行聊天式对话,可将
-p <PROMPT>
参数替换为-i -ins
。
在Python中使用ctransformers
加载模型示例
from ctransformers import AutoModelForCausalLM
# 设置要卸载到GPU的层数,若系统没有GPU加速则设置为0
llm = AutoModelForCausalLM.from_pretrained("TheBloke/CodeLlama-7B-Python-GGUF", model_file="codellama-7b-python.q4_K_M.gguf", model_type="llama", gpu_layers=50)
print(llm("AI is going to"))
📚 详细文档
关于GGUF
GGUF是llama.cpp团队在2023年8月21日引入的新格式,替代了不再受支持的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模型
- Meta的原始未量化fp16格式的pytorch模型,用于GPU推理和进一步转换
提示模板
[INST] Write code to solve the following coding problem that obeys the constraints and passes the example test cases. Please wrap your code answer using ```:
{prompt}
[/INST]
兼容性
这些量化的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 | 使用场景 |
---|---|---|---|---|---|
codellama-7b-python.Q2_K.gguf | Q2_K | 2 | 2.83 GB | 5.33 GB | 最小,但质量损失显著,不建议用于大多数场景 |
codellama-7b-python.Q3_K_S.gguf | Q3_K_S | 3 | 2.95 GB | 5.45 GB | 非常小,但质量损失高 |
codellama-7b-python.Q3_K_M.gguf | Q3_K_M | 3 | 3.30 GB | 5.80 GB | 非常小,但质量损失高 |
codellama-7b-python.Q3_K_L.gguf | Q3_K_L | 3 | 3.60 GB | 6.10 GB | 小,但质量损失较大 |
codellama-7b-python.Q4_0.gguf | Q4_0 | 4 | 3.83 GB | 6.33 GB | 旧版;小,但质量损失非常高,建议使用Q3_K_M |
codellama-7b-python.Q4_K_S.gguf | Q4_K_S | 4 | 3.86 GB | 6.36 GB | 小,但质量损失更大 |
codellama-7b-python.Q4_K_M.gguf | Q4_K_M | 4 | 4.08 GB | 6.58 GB | 中等,质量平衡,推荐使用 |
codellama-7b-python.Q5_0.gguf | Q5_0 | 5 | 4.65 GB | 7.15 GB | 旧版;中等,质量平衡,建议使用Q4_K_M |
codellama-7b-python.Q5_K_S.gguf | Q5_K_S | 5 | 4.65 GB | 7.15 GB | 大,质量损失低,推荐使用 |
codellama-7b-python.Q5_K_M.gguf | Q5_K_M | 5 | 4.78 GB | 7.28 GB | 大,质量损失非常低,推荐使用 |
codellama-7b-python.Q6_K.gguf | Q6_K | 6 | 5.53 GB | 8.03 GB | 非常大,质量损失极低 |
codellama-7b-python.Q8_0.gguf | Q8_0 | 8 | 7.16 GB | 9.66 GB | 非常大,质量损失极低,但不建议使用 |
注意:上述RAM数字假设没有进行GPU卸载。如果将层卸载到GPU,将减少RAM使用并使用VRAM。
如何运行
在text-generation-webui
中运行
更多说明请参考:text-generation-webui/docs/llama.cpp.md。
如何与LangChain一起使用
以下是使用llama-cpp-python或ctransformers与LangChain的指南:
🔧 技术细节
模型信息
属性 | 详情 |
---|---|
模型类型 | llama |
训练数据 | 未提及 |
模型创建者 | Meta |
基础模型 | codellama/CodeLlama-7b-python-hf |
量化者 | TheBloke |
许可证 | llama2 |
模型使用说明
使用此模型时,请确保在新版本发布之前从main
安装transformers:
pip install git+https://github.com/huggingface/transformers.git@main accelerate
模型功能:
- [x] 代码补全。
- [ ] 填充。
- [ ] 指令/聊天。
- [x] Python专业。
模型详情
本模型由Meta开发并公开发布,属于Code Llama系列大语言模型(LLMs)。
模型开发者:Meta
变体:Code Llama有三种模型大小和三种变体:
- Code Llama:用于一般代码合成和理解的基础模型。
- Code Llama - Python:专门为Python设计。
- Code Llama - Instruct:用于指令跟随和更安全的部署。
所有变体都有7B、13B和34B参数的版本。本仓库包含的是7B参数的Python版本模型。
输入:模型仅接受文本输入。
输出:模型仅生成文本输出。
模型架构:Code Llama是一个自回归语言模型,使用了优化的Transformer架构。
模型日期:Code Llama及其变体于2023年1月至7月期间进行训练。
📄 许可证
本模型使用的许可证为llama2。使用该模型请遵守Meta的相关许可协议。
💬 Discord
如需进一步支持,或参与有关这些模型和AI的讨论,欢迎加入: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特别提及:Alicia Loh、Stephen Murray等众多支持者。
感谢所有慷慨的赞助者和捐赠者!再次感谢a16z的慷慨资助。



