模型:
TheBloke/guanaco-65B-GPTQ
Chat & support: my new Discord server
Want to contribute? TheBloke's Patreon page
这些是用于 Tim Dettmers' Guanaco 65B 的GPTQ模型文件。
提供了多个GPTQ参数排列方式;有关所提供选项、它们的参数和用于创建它们的软件的详细信息,请参阅下面的提供的文件部分。
这些模型是使用由 Latitude.sh 提供的硬件进行量化的。
### Human: {prompt} ### Assistant:
提供了多个量化参数,以便您根据您的硬件和需求选择最佳参数。
每个独立的分支都有不同的量化结果。请参阅以下关于从不同分支下载的说明。
Branch | Bits | Group Size | Act Order (desc_act) | File Size | ExLlama Compatible? | Made With | Description |
---|---|---|---|---|---|---|---|
main | 4 | None | True | 35.74 GB | True | GPTQ-for-LLaMa | Most compatible option. Good inference speed in AutoGPTQ and GPTQ-for-LLaMa. Lower inference quality than other options. |
gptq-4bit-32g-actorder_True | 4 | 32 | True | 38.53 GB | True | AutoGPTQ | 4-bit, with Act Order and group size. 32g gives highest possible inference quality, with maximum VRAM usage. Poor AutoGPTQ CUDA speed. |
gptq-4bit-64g-actorder_True | 4 | 64 | True | 36.00 GB | True | AutoGPTQ | 4-bit, with Act Order and group size. 64g uses less VRAM than 32g, but with slightly lower accuracy. Poor AutoGPTQ CUDA speed. |
gptq-4bit-128g-actorder_True | 4 | 128 | True | 34.73 GB | True | AutoGPTQ | 4-bit, with Act Order and group size. 128g uses even less VRAM, but with slightly lower accuracy. Poor AutoGPTQ CUDA speed. |
gptq-3bit-128g-actorder_False | 3 | 128 | False | 26.57 GB | False | AutoGPTQ | 3-bit, with group size 128g but no act-order. Slightly higher VRAM requirements than 3-bit None. |
gptq-3bit-128g-actorder_True | 3 | 128 | True | 26.57 GB | False | AutoGPTQ | 3-bit, with group size 128g and act-order. Higher quality than 128g-False but poor AutoGPTQ CUDA speed. |
gptq-3bit-64g-actorder_True | 3 | 64 | True | 27.78 GB | False | AutoGPTQ | 3-bit, with group size 64g and act-order. Highest quality 3-bit option. Poor AutoGPTQ CUDA speed. |
gptq-3bit--1g-actorder_True | 3 | None | True | 25.39 GB | False | AutoGPTQ | 3-bit, with Act Order and no group size. Lowest possible VRAM requirements. May be lower quality than 3-bit 128g. |
git clone --branch gptq-4bit-32g-actorder_True https://huggingface.co/TheBloke/guanaco-65B-GPTQ`
请确保您使用的是最新版本的 text-generation-webui 。
强烈建议使用文本生成Web UI 的一键安装程序,除非您知道如何进行手动安装。
首先确保您已安装 AutoGPTQ :
GITHUB_ACTIONS=true pip install auto-gptq
然后尝试以下示例代码:
from transformers import AutoTokenizer, pipeline, logging from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig model_name_or_path = "TheBloke/guanaco-65B-GPTQ" model_basename = "Guanaco-65B-GPTQ-4bit-128g.no-act.order" use_triton = False tokenizer = AutoTokenizer.from_pretrained(model_name_or_path, use_fast=True) model = AutoGPTQForCausalLM.from_quantized(model_name_or_path, model_basename=model_basename use_safetensors=True, trust_remote_code=True, device="cuda:0", use_triton=use_triton, quantize_config=None) """ To download from a specific branch, use the revision parameter, as in this example: model = AutoGPTQForCausalLM.from_quantized(model_name_or_path, revision="gptq-4bit-32g-actorder_True", model_basename=model_basename, use_safetensors=True, trust_remote_code=True, device="cuda:0", quantize_config=None) """ prompt = "Tell me about AI" prompt_template=f'''### Human: {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, max_new_tokens=512) print(tokenizer.decode(output[0])) # Inference can also be done using transformers' pipeline # Prevent printing spurious transformers error when using pipeline with AutoGPTQ logging.set_verbosity(logging.CRITICAL) print("*** Pipeline:") pipe = pipeline( "text-generation", model=model, tokenizer=tokenizer, max_new_tokens=512, temperature=0.7, top_p=0.95, repetition_penalty=1.15 ) print(pipe(prompt_template)[0]['generated_text'])
提供的文件可与AutoGPTQ(CUDA和Triton模式)、GPTQ-for-LLaMa(仅测试过CUDA版本)以及Occ4m的GPTQ-for-LLaMa分支一起使用。
ExLlama支持4位的Llama模型。请参见上面提供的文件表格以获取每个文件的兼容性。
如需进一步支持以及有关这些模型和AI的讨论,请加入我们:
感谢 chirper.ai 团队!
我有很多人询问是否可以为此做出贡献。我喜欢提供模型并帮助人们,非常希望能够花更多时间提供支持,并开始进行诸如微调/训练等新项目。
如果您有能力和愿意贡献,我将非常感激,并将帮助我继续提供更多模型,并开始着手新的AI项目。
捐助者将在所有AI/LLM/模型问题和请求上获得优先支持,还可以访问私人Discord聊天室以及其他福利。
特别感谢:CarbonQuill的Luke,Aemon Algiz。
Patreon特别提到:Space Cruiser,Nikolai Manek,Sam,Chris McCloskey,Rishabh Srivastava,Kalila,Spiking Neurons AB,Khalefa Al-Ahmad,WelcomeToTheClub,Chadd,Lone Striker,Viktor Bowallius,Edmond Seymore,Ai Maven,Chris Smitley,Dave,Alexandros Triantafyllidis,Luke @flexchar,Elle,ya boyyy,Talal Aujan,Alex,Jonathan Leane,Deep Realms,Randy H,subjectnull,Preetika Verma,Joseph William Delisle,Michael Levine,chris gileta,K,Oscar Rangel,LangChain4j,Trenton Dambrowitz,Eugene Pentland,Johann-Peter Hartmann,Femi Adebogun,Illia Dulskyi,senxiiz,Daniel P. Andersen,Sean Connelly,Artur Olbinski,RoA,Mano Prime,Derek Yates,Raven Klaugh,David Flickinger,Willem Michiel,Pieter,Willian Hasse,vamX,Luke Pendergrass,webtim,Ghost,Rainer Wilmers,Nathan LeClaire,Will Dee,Cory Kujawski,John Detwiler,Fred von Graf,biorpg,Iucharbius,Imad Khwaja,Pierre Kircher,terasurfer,Asp the Wyvern,John Villwock,theTransient,zynix,Gabriel Tamborski,Fen Risland,Gabriel Puliatti,Matthew Berman,Pyrater,SuperWojo,Stephen Murray,Karl Bernard,Ajan Kanaga,Greatston Gnanesh,Junyu Yang。
感谢所有慷慨的赞助者和捐助者!
Guanaco模型是通过在LLaMA基本模型上进行4位QLoRA调优并在OASST1数据集上获得的开源微调聊天机器人。它们可在7B、13B、33B和65B参数大小中获得。
⚠️Guanaco模型仅用于研究目的,可能会产生问题的输出。
Guanaco适配器权重可在Apache 2许可下使用。请注意,使用Guanaco适配器权重需要访问LLaMA模型权重。Guanaco基于LLaMA,因此应根据LLaMA许可使用。
这是一个加载Guanaco 7B 4位模型的示例:
import torch from peft import PeftModel from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig model_name = "huggyllama/llama-7b" adapters_name = 'timdettmers/guanaco-7b' model = AutoModelForCausalLM.from_pretrained( model_name, load_in_4bit=True, torch_dtype=torch.bfloat16, device_map="auto", max_memory= {i: '24000MB' for i in range(torch.cuda.device_count())}, quantization_config=BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type='nf4' ), ) model = PeftModel.from_pretrained(model, adapters_name) tokenizer = AutoTokenizer.from_pretrained(model_name)
可以像使用HF模型一样进行推理:
prompt = "Introduce yourself" formatted_prompt = ( f"A chat between a curious human and an artificial intelligence assistant." f"The assistant gives helpful, detailed, and polite answers to the user's questions.\n" f"### Human: {prompt} ### Assistant:" ) inputs = tokenizer(formatted_prompt, return_tensors="pt").to("cuda:0") outputs = model.generate(inputs=inputs.input_ids, max_new_tokens=20) print(tokenizer.decode(outputs[0], skip_special_tokens=True))
预期的输出类似于以下内容:
A chat between a curious human and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. ### Human: Introduce yourself ### Assistant: I am an artificial intelligence assistant. I am here to help you with any questions you may have.
当前,4位推理速度较慢。如果推理速度是一个问题,我们建议以16位加载模型。我们正在积极开发高效的4位推理内核。
以下是如何以16位加载模型的示例:
model_name = "huggyllama/llama-7b" adapters_name = 'timdettmers/guanaco-7b' model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype=torch.bfloat16, device_map="auto", max_memory= {i: '24000MB' for i in range(torch.cuda.device_count())}, ) model = PeftModel.from_pretrained(model, adapters_name) tokenizer = AutoTokenizer.from_pretrained(model_name)
架构:Guanaco模型是在LLaMA模型的每个层上使用的LoRA适配器。对于所有模型大小,我们使用$r=64$。
基本模型:Guanaco使用LLaMA作为基本模型,大小为7B、13B、33B、65B。LLaMA是在大型文本语料库上经过自回归训练的语言模型。有关更多详细信息,请参见 LLaMA paper 。请注意,Guanaco可能继承基本模型的偏见和局限性。
微调数据:Guanaco在OASST1上进行了微调。确切的数据集可在 timdettmers/openassistant-guanaco 中找到。
语言:OASST1数据集是多语言的(有关详细信息,请参见 the paper ),因此Guanaco可以使用不同语言回答用户查询。但请注意,OASST1在高资源语言方面较重。此外,Guanaco的人工评估仅在英语下进行,根据定性分析,我们观察到其他语言的性能下降。
接下来,我们描述训练和评估的详细信息。
Guanaco模型是通过在OASST1数据集上进行4位QLoRA有监督微调得到的。
所有模型使用NormalFloat4作为基本模型的数据类型,并在所有线性层上使用BFloat16作为计算数据类型的LoRA适配器。我们设置LoRA $r=64$,$\alpha=16$。我们还使用Adam beta2为0.999,最大梯度规范为0.3,33B和65B模型的LoRA dropout为0.05。对于微调过程,我们使用恒定学习率计划和分页AdamW优化器。
Size | Dataset | Batch Size | Learning Rate | Max Steps | Sequence length |
---|---|---|---|---|---|
7B | OASST1 | 16 | 2e-4 | 1875 | 512 |
13B | OASST1 | 16 | 2e-4 | 1875 | 512 |
33B | OASST1 | 16 | 1e-4 | 1875 | 512 |
65B | OASST1 | 16 | 1e-4 | 1875 | 512 |
我们通过自动化和人工评估来测试生成语言能力。人工评估依赖人类策划的查询,并旨在衡量模型响应的质量。我们使用Vicuna和OpenAssistant数据集,分别包含80个和953个提示。
在人工和自动化评估中,对于每个提示,评估者比较考虑的所有模型的响应对。对于人类评估者,我们随机排列系统的顺序,对于GPT-4,我们以两种顺序进行评估。
Benchmark | Vicuna | Vicuna | OpenAssistant | - | |||
---|---|---|---|---|---|---|---|
Prompts | 80 | 80 | 953 | ||||
Judge | Human | GPT-4 | GPT-4 | ||||
Model | Elo | Rank | Elo | Rank | Elo | Rank | Median Rank |
GPT-4 | 1176 | 1 | 1348 | 1 | 1294 | 1 | 1 |
Guanaco-65B | 1023 | 2 | 1022 | 2 | 1008 | 3 | 2 |
Guanaco-33B | 1009 | 4 | 992 | 3 | 1002 | 4 | 4 |
ChatGPT-3.5 Turbo | 916 | 7 | 966 | 5 | 1015 | 2 | 5 |
Vicuna-13B | 984 | 5 | 974 | 4 | 936 | 5 | 5 |
Guanaco-13B | 975 | 6 | 913 | 6 | 885 | 6 | 6 |
Guanaco-7B | 1010 | 3 | 879 | 8 | 860 | 7 | 7 |
Bard | 909 | 8 | 902 | 7 | - | - | 8 |
我们还使用MMLU基准来评估在一系列语言理解任务上的性能。该基准是一个多项选择基准,涵盖57个任务,包括初等数学、美国历史、计算机科学、法律等。我们报告5-shot测试的准确性。
Dataset | 7B | 13B | 33B | 65B |
---|---|---|---|---|
LLaMA no tuning | 35.1 | 46.9 | 57.8 | 63.4 |
Self-Instruct | 36.4 | 33.3 | 53.0 | 56.7 |
Longform | 32.1 | 43.2 | 56.6 | 59.7 |
Chip2 | 34.5 | 41.6 | 53.6 | 59.8 |
HH-RLHF | 34.9 | 44.6 | 55.8 | 60.1 |
Unnatural Instruct | 41.9 | 48.1 | 57.3 | 61.3 |
OASST1 (Guanaco) | 36.6 | 46.4 | 57.0 | 62.2 |
Alpaca | 38.8 | 47.8 | 57.3 | 62.5 |
FLAN v2 | 44.5 | 51.4 | 59.2 | 63.9 |
模型可能会产生事实上不正确的输出,不应依赖其产生事实准确的信息。该模型训练于各种公共数据集;该模型可能会生成淫秽、有偏见或其他令人反感的输出。
但我们注意到,在OASST1上进行微调似乎减少了CrowS数据集上的偏见。我们在此报告Guanaco-65B与其他基线模型在CrowS数据集上的性能。
@article{dettmers2023qlora, title={QLoRA: Efficient Finetuning of Quantized LLMs}, author={Dettmers, Tim and Pagnoni, Artidoro and Holtzman, Ari and Zettlemoyer, Luke}, journal={arXiv preprint arXiv:2305.14314}, year={2023} }