模型简介
模型特点
模型能力
使用案例
🚀 Geitje 7B Chat - GPTQ
Geitje 7B Chat - GPTQ 是一个基于GPTQ量化技术的模型,它在Edwin Rijgersberg的Geitje 7B Chat模型基础上进行了量化处理,提供了多种量化参数选项,以满足不同硬件和需求。该模型适用于对话场景,可在多种推理服务器和Web UI中使用。
🚀 快速开始
模型信息
- 模型创建者:Edwin Rijgersberg
- 原始模型:Geitje 7B Chat
可用仓库
- 适用于GPU推理的AWQ模型
- 具有多种量化参数选项、适用于GPU推理的GPTQ模型
- 适用于CPU+GPU推理的2、3、4、5、6和8位GGUF模型
- Edwin Rijgersberg的原始未量化fp16 PyTorch格式模型,适用于GPU推理和进一步转换
提示模板:ToRA
<|user|>
{prompt}
<|assistant|>
已知兼容的客户端/服务器
GPTQ模型目前在Linux(NVIDIA/AMD)和Windows(仅NVIDIA)上受支持。macOS用户请使用GGUF模型。
这些GPTQ模型已知可在以下推理服务器/Web UI中工作:
如果您知道其他兼容的客户端/服务器,请告知!
✨ 主要特性
- 多种量化参数选项:提供了多个量化参数,允许您根据硬件和需求选择最佳的参数。
- 多平台支持:支持Linux(NVIDIA/AMD)和Windows(仅NVIDIA)系统。
- 多客户端兼容:与多个推理服务器和Web UI兼容。
📦 安装指南
在text-generation-webui中下载
- 从
main
分支下载:在“下载模型”框中输入TheBloke/GEITje-7B-chat-GPTQ
。 - 从其他分支下载:在下载名称末尾添加
:branchname
,例如TheBloke/GEITje-7B-chat-GPTQ:gptq-4bit-32g-actorder_True
。
从命令行下载
推荐使用huggingface-hub
Python库:
pip3 install huggingface-hub
从main
分支下载到名为GEITje-7B-chat-GPTQ
的文件夹:
mkdir GEITje-7B-chat-GPTQ
huggingface-cli download TheBloke/GEITje-7B-chat-GPTQ --local-dir GEITje-7B-chat-GPTQ --local-dir-use-symlinks False
从不同分支下载,添加--revision
参数:
mkdir GEITje-7B-chat-GPTQ
huggingface-cli download TheBloke/GEITje-7B-chat-GPTQ --revision gptq-4bit-32g-actorder_True --local-dir GEITje-7B-chat-GPTQ --local-dir-use-symlinks False
更高级的huggingface-cli下载用法
如果移除--local-dir-use-symlinks False
参数,文件将存储在Hugging Face中央缓存目录(Linux默认位置为:~/.cache/huggingface
),并在指定的--local-dir
中添加符号链接,指向缓存中的实际位置。这样可以恢复中断的下载,并允许您快速将仓库克隆到磁盘的多个位置而无需再次触发下载。缺点是文件隐藏在缓存文件夹中,难以了解磁盘空间的使用情况,并且在需要删除下载的模型时清理起来更困难。
缓存位置可以通过HF_HOME
环境变量和/或huggingface-cli
的--cache-dir
参数更改。
有关使用huggingface-cli
下载的更多文档,请参阅:HF -> Hub Python Library -> Download files -> Download from the CLI。
要在高速连接(1Gbit/s或更高)上加速下载,请安装hf_transfer
:
pip3 install hf_transfer
并将环境变量HF_HUB_ENABLE_HF_TRANSFER
设置为1
:
mkdir GEITje-7B-chat-GPTQ
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download TheBloke/GEITje-7B-chat-GPTQ --local-dir GEITje-7B-chat-GPTQ --local-dir-use-symlinks False
Windows命令行用户:可以在下载命令前运行set HF_HUB_ENABLE_HF_TRANSFER=1
来设置环境变量。
使用git
(不推荐)
使用git
克隆特定分支,使用如下命令:
git clone --single-branch --branch gptq-4bit-32g-actorder_True https://huggingface.co/TheBloke/GEITje-7B-chat-GPTQ
请注意,强烈不建议对HF仓库使用Git。它比使用huggingface-hub
慢得多,并且会占用两倍的磁盘空间,因为它必须将模型文件存储两次(在目标文件夹和.git
文件夹中都存储)。
💻 使用示例
在text-generation-webui中轻松下载和使用此模型
请确保使用的是text-generation-webui的最新版本。
强烈建议使用text-generation-webui一键安装程序,除非您确定知道如何手动安装。
- 点击模型选项卡。
- 在下载自定义模型或LoRA下,输入
TheBloke/GEITje-7B-chat-GPTQ
。- 要从特定分支下载,例如输入
TheBloke/GEITje-7B-chat-GPTQ:gptq-4bit-32g-actorder_True
- 请参阅上面的“提供的文件”部分以获取每个选项的分支列表。
- 要从特定分支下载,例如输入
- 点击下载。
- 模型将开始下载。下载完成后将显示“完成”。
- 在左上角,点击模型旁边的刷新图标。
- 在模型下拉菜单中,选择您刚刚下载的模型:
GEITje-7B-chat-GPTQ
- 模型将自动加载,现在可以使用了!
- 如果需要任何自定义设置,请设置它们,然后点击右上角的保存此模型的设置,接着点击重新加载模型。
- 请注意,您不再需要也不应该手动设置GPTQ参数。这些参数会从
quantize_config.json
文件中自动设置。
- 请注意,您不再需要也不应该手动设置GPTQ参数。这些参数会从
- 准备好后,点击文本生成选项卡并输入提示以开始!
从Text Generation Inference (TGI) 服务此模型
建议使用TGI版本1.1.0或更高版本。官方Docker容器为:ghcr.io/huggingface/text-generation-inference:1.1.0
示例Docker参数:
--model-id TheBloke/GEITje-7B-chat-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'''<|user|>
{prompt}
<|assistant|>
'''
client = InferenceClient(endpoint_url)
response = client.text_generation(prompt,
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代码示例:从此GPTQ模型进行推理
安装必要的包
需要: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/GEITje-7B-chat-GPTQ"
# 要使用不同的分支,请更改revision
# 例如: revision="gptq-4bit-32g-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'''<|user|>
{prompt}
<|assistant|>
'''
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'])
📚 详细文档
提供的文件和GPTQ参数
提供了多个量化参数,允许您根据硬件和需求选择最佳的参数。
每个单独的量化版本位于不同的分支中。请参阅下面的说明以了解如何从不同分支获取。
大多数GPTQ文件使用AutoGPTQ制作。Mistral模型目前使用Transformers制作。
GPTQ参数说明
- 位(Bits):量化模型的位大小。
- GS:GPTQ组大小。较高的数字使用较少的VRAM,但量化精度较低。“None”是可能的最低值。
- Act Order:真或假。也称为
desc_act
。真会导致更好的量化精度。一些GPTQ客户端在使用Act Order和组大小的模型时遇到过问题,但现在这个问题通常已解决。 - Damp %:一个影响量化样本处理方式的GPTQ参数。默认值为0.01,但0.1会导致稍好的精度。
- GPTQ数据集:量化期间使用的校准数据集。使用更适合模型训练的数据集可以提高量化精度。请注意,GPTQ校准数据集与用于训练模型的数据集不同 - 请参阅原始模型仓库以了解训练数据集的详细信息。
- 序列长度:量化时使用的数据集序列长度。理想情况下,这与模型序列长度相同。对于一些非常长序列的模型(16+K),可能需要使用较低的序列长度。请注意,较低的序列长度不会限制量化模型的序列长度。它仅影响较长推理序列的量化精度。
- ExLlama兼容性:此文件是否可以使用ExLlama加载,目前ExLlama仅支持4位的Llama和Mistral模型。
分支 | 位 | GS | Act Order | Damp % | GPTQ数据集 | 序列长度 | 大小 | ExLlama | 描述 |
---|---|---|---|---|---|---|---|---|---|
main | 4 | 128 | 是 | 0.1 | Dolly 15K Dutch | 4096 | 4.16 GB | 是 | 4位,带有Act Order和组大小128g。比64g使用更少的VRAM,但精度稍低。 |
gptq-4bit-32g-actorder_True | 4 | 32 | 是 | 0.1 | Dolly 15K Dutch | 4096 | 4.57 GB | 是 | 4位,带有Act Order和组大小32g。提供最高的推理质量,但使用最大的VRAM。 |
gptq-8bit--1g-actorder_True | 8 | 无 | 是 | 0.1 | Dolly 15K Dutch | 4096 | 7.52 GB | 否 | 8位,带有Act Order。没有组大小,以降低VRAM要求。 |
gptq-8bit-128g-actorder_True | 8 | 128 | 是 | 0.1 | Dolly 15K Dutch | 4096 | 7.68 GB | 否 | 8位,组大小为128g以提高推理质量,带有Act Order以提高精度。 |
gptq-8bit-32g-actorder_True | 8 | 32 | 是 | 0.1 | Dolly 15K Dutch | 4096 | 8.17 GB | 否 | 8位,组大小为32g和Act Order以实现最大推理质量。 |
gptq-4bit-64g-actorder_True | 4 | 64 | 是 | 0.1 | Dolly 15K Dutch | 4096 | 4.29 GB | 是 | 4位,带有Act Order和组大小64g。比32g使用更少的VRAM,但精度稍低。 |
兼容性
提供的文件经测试可与Transformers一起使用。对于非Mistral模型,也可以直接使用AutoGPTQ。
ExLlama与4位的Llama架构模型(包括Mistral、Yi、DeepSeek、SOLAR等)兼容。请参阅上面的“提供的文件”表以了解每个文件的兼容性。
有关客户端/服务器的列表,请参阅上面的“已知兼容的客户端/服务器”部分。
🔧 技术细节
原始模型卡:Edwin Rijgersberg的Geitje 7B Chat
GEITje-7B
GEITje是一个基于Mistral 7B的大型开放荷兰语模型,拥有70亿个参数。它在100亿个荷兰语文本标记上进行了进一步训练,这提高了其荷兰语技能,并增加了其对荷兰语主题的知识。
模型描述
- Mistral - 基础模型:GEITje基于Mistral 7B。它是一个拥有70亿个参数的大型开放语言模型,由Mistral AI训练。据Mistral AI称,7B模型在他们测试的所有(英语)基准测试中表现优于Llama 2 13B。Mistral 7B已根据Apache 2.0开源许可证发布。
- GEITje - 在荷兰语文本上进一步训练:GEITje是通过在来自Dutch Gigacorpus和MADLAD-400网络爬取语料库的不少于100亿个荷兰语文本标记上进一步训练Mistral 7B而创建的。这是一个所谓的“全参数微调”:对所有参数进行微调。它不是PEFT或LoRA微调。与Mistral一样,GEITje的“上下文长度”为8192个标记。
- GEITje-chat - 针对对话进行微调:作为GEITje在聊天应用程序中能力的演示,还对GEITje的两个初始聊天变体进行了微调:GEITje-chat和GEITje-chat-v2。它们可以遵循指令、回答问题,并就各种主题进行对话。
更多信息
在GitHub上的📄 README中阅读更多关于GEITje-chat的信息。
训练过程
- 训练超参数:
- 学习率(learning_rate):1e-05
- 训练批次大小(train_batch_size):2
- 评估批次大小(eval_batch_size):8
- 种子(seed):42
- 梯度累积步数(gradient_accumulation_steps):8
- 总训练批次大小(total_train_batch_size):16
- 优化器(optimizer):Adam,β=(0.9, 0.999),ε=1e-08
- 学习率调度器类型(lr_scheduler_type):余弦
- 学习率调度器预热比例(lr_scheduler_warmup_ratio):0.1
- 训练轮数(num_epochs):3
- 训练结果:
训练损失 | 轮数 | 步数 | 验证损失 |
---|---|---|---|
1.0263 | 0.2 | 236 | 0.9482 |
1.0368 | 0.4 | 472 | 0.9574 |
0.9503 | 0.6 | 708 | 0.9492 |
1.1419 | 0.8 | 944 | 0.9406 |
1.2161 | 1.0 | 1180 | 0.9317 |
0.6695 | 1.2 | 1416 | 0.9407 |
0.7379 | 1.4 | 1652 | 0.9350 |
0.7695 | 1.6 | 1888 | 0.9282 |
0.6795 | 1.8 | 2124 | 0.9218 |
0.6217 | 2.0 | 2360 | 0.9174 |
0.438 | 2.2 | 2596 | 0.9546 |
0.3719 | 2.39 | 2832 | 0.9546 |
0.4853 | 2.59 | 3068 | 0.9548 |
0.3852 | 2.79 | 3304 | 0.9548 |
0.48 | 2.99 | 3540 | 0.9548 |
- 框架版本:
- Transformers:4.36.0.dev0
- Pytorch:2.1.1+cu121
- Datasets:2.15.0
- Tokenizers:0.15.0
📄 许可证
本模型使用Apache 2.0许可证。
其他信息
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特别提及: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
感谢所有慷慨的赞助者和捐赠者!
再次感谢a16z的慷慨资助。



