模型简介
模型特点
模型能力
使用案例
🚀 CodeLlama 70B Python - GPTQ
本项目提供了 Code Llama 的 CodeLlama 70B Python 模型的 GPTQ 量化版本。包含多种量化参数选项,可根据硬件和需求选择,同时介绍了不同环境下的下载、使用方法。
🚀 快速开始
安装依赖
若要使用此模型,需安装 transformers
:
pip install transformers accelerate
✨ 主要特性
- 多版本支持:提供了多种量化参数的版本,可根据自身硬件和需求选择最合适的版本。
- 多平台兼容:支持在 Linux(NVidia/AMD)和 Windows(仅 NVidia)上使用,macOS 用户可使用 GGUF 模型。
- 多客户端适配:已知可在多个推理服务器/webui 中使用,如
text-generation-webui
、KoboldAI United
等。
📦 安装指南
在 text-generation-webui 中下载
- 点击 Model tab。
- 在 Download custom model or LoRA 中输入
TheBloke/CodeLlama-70B-Python-GPTQ
。- 若要从特定分支下载,可输入如
TheBloke/CodeLlama-70B-Python-GPTQ:gptq-4bit-128g-actorder_True
。 - 具体分支列表可查看 Provided files, and GPTQ parameters 部分。
- 若要从特定分支下载,可输入如
- 点击 Download。
- 模型开始下载,完成后会显示 "Done"。
- 在左上角点击 Model 旁边的刷新图标。
- 在 Model 下拉菜单中选择刚下载的模型:
CodeLlama-70B-Python-GPTQ
。 - 模型将自动加载,即可开始使用。
- 若需要自定义设置,设置完成后点击 Save settings for this model,然后在右上角点击 Reload the Model。
- 注意:无需手动设置 GPTQ 参数,这些参数会从
quantize_config.json
文件中自动设置。
- 注意:无需手动设置 GPTQ 参数,这些参数会从
- 准备好后,点击 Text Generation 标签,输入提示词即可开始!
从命令行下载
推荐使用 huggingface-hub
Python 库:
pip3 install huggingface-hub
将 main
分支下载到名为 CodeLlama-70B-Python-GPTQ
的文件夹:
mkdir CodeLlama-70B-Python-GPTQ
huggingface-cli download TheBloke/CodeLlama-70B-Python-GPTQ --local-dir CodeLlama-70B-Python-GPTQ --local-dir-use-symlinks False
若要从不同分支下载,添加 --revision
参数:
mkdir CodeLlama-70B-Python-GPTQ
huggingface-cli download TheBloke/CodeLlama-70B-Python-GPTQ --revision gptq-4bit-128g-actorder_True --local-dir CodeLlama-70B-Python-GPTQ --local-dir-use-symlinks False
使用 git
下载(不推荐)
使用以下命令克隆特定分支:
git clone --single-branch --branch gptq-4bit-128g-actorder_True https://huggingface.co/TheBloke/CodeLlama-70B-Python-GPTQ
注意:强烈不建议使用 Git 与 HF 仓库交互,它比使用 huggingface-hub
慢得多,并且会占用两倍的磁盘空间。
💻 使用示例
从 Text Generation Inference (TGI) 服务此模型
建议使用 TGI 版本 1.1.0 或更高版本,官方 Docker 容器为:ghcr.io/huggingface/text-generation-inference:1.1.0
示例 Docker 参数:
--model-id TheBloke/CodeLlama-70B-Python-GPTQ --port 3000 --quantize gptq --max-input-length 3696 --max-total-tokens 4096 --max-batch-prefill-tokens 4096
与 TGI 交互的示例 Python 代码(需要 huggingface-hub 0.17.0 或更高版本):
pip3 install huggingface-hub
from huggingface_hub import InferenceClient
endpoint_url = "https://your-endpoint-url-here"
prompt = "Tell me about AI"
prompt_template=f'''{prompt}
'''
client = InferenceClient(endpoint_url)
response = client.text_generation(
prompt_template,
max_new_tokens=128,
do_sample=True,
temperature=0.7,
top_p=0.95,
top_k=40,
repetition_penalty=1.1
)
print(f"Model output: {response}")
Python 代码示例
安装必要的包
需要 Transformers 4.33.0 或更高版本、Optimum 1.12.0 或更高版本,以及 AutoGPTQ 0.4.2 或更高版本。
pip3 install --upgrade transformers optimum
# 如果使用 PyTorch 2.1 + CUDA 12.x:
pip3 install --upgrade auto-gptq
# 或者,如果使用 PyTorch 2.1 + CUDA 11.x:
pip3 install --upgrade auto-gptq --extra-index-url https://huggingface.github.io/autogptq-index/whl/cu118/
如果使用 PyTorch 2.0,需要从源代码安装 AutoGPTQ。同样,如果预构建的轮子有问题,也应尝试从源代码构建:
pip3 uninstall -y auto-gptq
git clone https://github.com/PanQiWei/AutoGPTQ
cd AutoGPTQ
git checkout v0.5.1
pip3 install .
示例 Python 代码
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
model_name_or_path = "TheBloke/CodeLlama-70B-Python-GPTQ"
# 若要使用不同分支,更改 revision
# 例如: revision="gptq-4bit-128g-actorder_True"
model = AutoModelForCausalLM.from_pretrained(model_name_or_path,
device_map="auto",
trust_remote_code=False,
revision="main")
tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True)
prompt = "Write a story about llamas"
system_message = "You are a story writing assistant"
prompt_template=f'''{prompt}
'''
print("\n\n*** Generate:")
input_ids = tokenizer(prompt_template, return_tensors='pt').input_ids.cuda()
output = model.generate(inputs=input_ids, temperature=0.7, do_sample=True, top_p=0.95, top_k=40, max_new_tokens=512)
print(tokenizer.decode(output[0]))
# 也可以使用 transformers 的 pipeline 进行推理
print("*** Pipeline:")
pipe = pipeline(
"text-generation",
model=model,
tokenizer=tokenizer,
max_new_tokens=512,
do_sample=True,
temperature=0.7,
top_p=0.95,
top_k=40,
repetition_penalty=1.1
)
print(pipe(prompt_template)[0]['generated_text'])
📚 详细文档
可用仓库
- 用于 GPU 推理的 AWQ 模型
- 用于 GPU 推理的 GPTQ 模型,具有多种量化参数选项
- 用于 CPU+GPU 推理的 2、3、4、5、6 和 8 位 GGUF 模型
- Code Llama 原始未量化的 fp16 格式的 PyTorch 模型,用于 GPU 推理和进一步转换
提示模板
{prompt}
已知兼容的客户端/服务器
GPTQ 模型目前在 Linux(NVidia/AMD)和 Windows(仅 NVidia)上受支持。macOS 用户请使用 GGUF 模型。 这些 GPTQ 模型已知可在以下推理服务器/webui 中使用:
- text-generation-webui
- KoboldAI United
- LoLLMS Web UI
- Hugging Face Text Generation Inference (TGI) 这可能不是完整的列表,如果您知道其他的,请告知!
提供的文件和 GPTQ 参数
提供了多种量化参数,以便您根据硬件和需求选择最佳参数。 每个单独的量化版本位于不同的分支中。有关从不同分支获取的说明,请参见下文。 大多数 GPTQ 文件使用 AutoGPTQ 制作。Mistral 模型目前使用 Transformers 制作。
GPTQ 参数说明
- Bits:量化模型的位大小。
- GS:GPTQ 组大小。较高的数字使用较少的 VRAM,但量化精度较低。“None” 是最低可能值。
- Act Order:真或假。也称为
desc_act
。真会导致更好的量化精度。一些 GPTQ 客户端在使用 Act Order 加 Group Size 的模型时遇到过问题,但现在这个问题通常已解决。 - Damp %:一个影响量化样本处理方式的 GPTQ 参数。0.01 是默认值,但 0.1 会导致稍好的精度。
- GPTQ 数据集:量化期间使用的校准数据集。使用更适合模型训练的数据集可以提高量化精度。请注意,GPTQ 校准数据集与用于训练模型的数据集不同 - 请参阅原始模型仓库以了解训练数据集的详细信息。
- 序列长度:量化期间使用的数据集序列的长度。理想情况下,这与模型序列长度相同。对于一些非常长序列的模型(16+K),可能需要使用较低的序列长度。请注意,较低的序列长度不会限制量化模型的序列长度。它只会影响较长推理序列的量化精度。
- ExLlama 兼容性:此文件是否可以使用 ExLlama 加载,目前 ExLlama 仅支持 4 位的 Llama 和 Mistral 模型。
分支 | 位 | GS | Act Order | Damp % | GPTQ 数据集 | 序列长度 | 大小 | ExLlama | 描述 |
---|---|---|---|---|---|---|---|---|---|
main | 4 | None | 是 | 0.1 | Evol Instruct Code | 4096 | 35.33 GB | 是 | 4 位,带有 Act Order。无组大小,以降低 VRAM 需求。 |
gptq-4bit-128g-actorder_True | 4 | 128 | 是 | 0.1 | Evol Instruct Code | 4096 | 36.65 GB | 是 | 4 位,带有 Act Order 和组大小 128g。比 64g 使用更少的 VRAM,但精度稍低。 |
gptq-4bit-32g-actorder_True | 4 | 32 | 是 | 0.1 | Evol Instruct Code | 4096 | 40.66 GB | 是 | 4 位,带有 Act Order 和组大小 32g。提供最高可能的推理质量,使用最大的 VRAM。 |
gptq-3bit--1g-actorder_True | 3 | None | 是 | 0.1 | Evol Instruct Code | 4096 | 26.78 GB | 否 | 3 位,带有 Act Order 和无组大小。最低的 VRAM 需求。可能比 3 位 128g 的质量低。 |
gptq-3bit-128g-actorder_True | 3 | 128 | 是 | 0.1 | Evol Instruct Code | 4096 | 28.03 GB | 否 | 3 位,带有组大小 128g 和 act-order。比 128g-False 质量高。 |
gptq-3bit-32g-actorder_True | 3 | 32 | 是 | 0.1 | Evol Instruct Code | 4096 | 31.84 GB | 否 | 3 位,带有组大小 64g 和 act-order。最高质量的 3 位选项。 |
🔧 技术细节
模型兼容性
提供的文件已测试可与 Transformers 一起使用。对于非 Mistral 模型,也可以直接使用 AutoGPTQ。 ExLlama 与 4 位的 Llama 架构模型(包括 Mistral、Yi、DeepSeek、SOLAR 等)兼容。每个文件的兼容性请参见上面的 Provided files, and GPTQ parameters 表。
模型详情
- 模型开发者:Meta
- 变体:Code Llama 有四种模型大小和三种变体:
- Code Llama:用于一般代码合成和理解的基础模型
- Code Llama - Python:专门为 Python 设计
- Code Llama - Instruct:用于指令跟随和更安全的部署 所有变体都有 7B、13B、34B 和 70B 参数的版本。
- 输入:模型仅接受文本输入。
- 输出:模型仅生成文本输出。
- 模型架构:Code Llama 是一种自回归语言模型,使用优化的变压器架构。它在最多 16k 个令牌上进行了微调。此变体不支持长达 100k 个令牌的长上下文。
- 模型日期:Code Llama 及其变体在 2023 年 1 月至 2024 年 1 月期间进行了训练。
- 状态:这是一个在离线数据集上训练的静态模型。随着我们通过社区反馈改进模型安全性,未来将发布 Code Llama - Instruct 的新版本。
- 许可证:可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 获取自定义商业许可证。
- 研究论文:更多信息可在论文 "Code Llama: Open Foundation Models for Code" 或其 arXiv 页面 中找到。
📄 许可证
本模型的使用受 Meta 许可证的约束。Meta 开发并公开发布了 Code Llama 系列大语言模型(LLM)。自定义商业许可证可在 https://ai.meta.com/resources/models-and-libraries/llama-downloads/ 获取。
其他信息
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 特别提及:Michael Levine, 阿明, Trailburnt, Nikolai Manek, John Detwiler, Randy H, Will Dee, Sebastain Graf, NimbleBox.ai, Eugene Pentland, Emad Mostaque, Ai Maven, Jim Angel, Jeff Scroggin, Michael Davis, Manuel Alberto Morcote, Stephen Murray, Robert, Justin Joy, Luke @flexchar, Brandon Frisco, Elijah Stavena, S_X, Dan Guido, Undi ., Komninos Chatzipapas, Shadi, theTransient, Lone Striker, Raven Klaugh, jjj, Cap'n Zoog, Michel-Marie MAUDET (LINAGORA), Matthew Berman, David, Fen Risland, Omer Bin Jawed, Luke Pendergrass, Kalila, OG, Erik Bjäreholt, Rooh Singh, Joseph William Delisle, Dan Lewis, TL, John Villwock, AzureBlack, Brad, Pedro Madruga, Caitlyn Gatomon, K, jinyuan sun, Mano Prime, Alex, Jeffrey Morgan, Alicia Loh, Illia Dulskyi, Chadd, transmissions 11, fincy, Rainer Wilmers, ReadyPlayerEmma, knownsqashed, Mandus, biorpg, Deo Leter, Brandon Phillips, SuperWojo, Sean Connelly, Iucharbius, Jack West, Harry Royden McLaughlin, Nicholas, terasurfer, Vitor Caleffi, Duane Dunston, Johann-Peter Hartmann, David Ziegler, Olakabola, Ken Nordquist, Trenton Dambrowitz, Tom X Nguyen, Vadim, Ajan Kanaga, Leonard Tan, Clay Pascal, Alexandros Triantafyllidis, JM33133, Xule, vamX, ya boyyy, subjectnull, Talal Aujan, Alps Aficionado, wassieverse, Ari Malik, James Bentley, Woland, Spencer Kim, Michael Dempsey, Fred von Graf, Elle, zynix, William Richards, Stanislav Ovsiannikov, Edmond Seymore, Jonathan Leane, Martin Kemka, usrbinkat, Enrico Ros



