英文

Chat & support: my new Discord server

Want to contribute? TheBloke's Patreon page

Tim Dettmers的Guanaco 13B GPTQ

这些文件是Guanaco 13B GPTQ的4位模型文件,适用于 Tim Dettmers' Guanaco 13B .

它是通过将LoRA合并后使用 GPTQ-for-LLaMa 进行4位量化得到的结果。

其他可用的存储库

提示模板

### Human: prompt
### Assistant:

如何轻松下载和使用此模型在text-generation-webui中

正常打开text-generation-webui UI。

  • 点击 Model 选项卡 。
  • 在 Download custom model or LoRA 下面,输入 TheBloke/guanaco-13B-GPTQ 。
  • 点击 Download 。
  • 等到下载完成的消息出现。
  • 点击左上角 Model 旁边的 刷新图标。
  • 在 Model 下拉列表中选择刚刚下载的模型,guanaco-13B-GPTQ 。
  • 如果在右下角看到错误,请忽略它-它是临时的。
  • 在右侧填写 GPTQ 参数:Bits = 4 ,Groupsize = 128 ,model_type = Llama
  • 点击右上角的 Save settings for this model 。
  • 点击右上角的 Reload the Model 。
  • 一旦加载完成,点击 Text Generation 选项卡并输入提示!
  • 提供的文件

    兼容文件-Guanaco-13B-GPTQ-4bit-128g.no-act-order.safetensors

    在主分支中,您将找到 Guanaco-13B-GPTQ-4bit-128g.no-act-order.safetensors

    这将适用于所有GPTQ-for-LLaMa的版本,具有最大的兼容性。

    它使用 groupsize 128 创建,以确保更高质量的推理,并且没有 --act-order 以最大化兼容性。

    • Guanaco-13B-GPTQ-4bit-128g.no-act-order.safetensors
      • 适用于GPTQ-for-LLaMa代码的所有版本,包括Triton和CUDA分支
      • 适用于AutoGPTQ
      • 适用于text-generation-webui的一键安装程序
      • 参数:Groupsize = 128。无act-order。
      • 用于创建GPTQ的命令:
        python llama.py /workspace/process/TheBloke_guanaco-13B-GGML/HF  wikitext2 --wbits 4 --true-sequential --groupsize 128 --save_safetensors /workspace/process/TheBloke_guanaco-13B-GGML/gptq/Guanaco-13B-GPTQ-4bit-128g.no-act-order.safetensors
        

    Discord

    如需进一步支持以及有关这些模型和AI的讨论,请加入我们:

    TheBloke AI's Discord server

    感谢和如何贡献。

    感谢 chirper.ai 团队!

    我收到了很多人问我是否可以贡献。我喜欢提供模型和帮助人们,并且非常愿意能够更多地投入其中,以及扩展到新的项目,如精细调整/训练。

    如果您有能力和意愿进行贡献,我将非常感激,并将帮助我继续提供更多模型,并开始进行新的AI项目。

    赞助人将优先获得关于所有AI/LLM/模型问题和请求的支持,可以访问私人Discord房间,以及其他福利。

    Patreon特别提及:Aemon Algiz,Dmitriy Samsonov,Nathan LeClaire,Trenton Dambrowitz,Mano Prime,David Flickinger,vamX,Nikolai Manek,senxiiz,Khalefa Al-Ahmad,Illia Dulskyi,Jonathan Leane,Talal Aujan,V. Lukas,Joseph William Delisle,Pyrater,Oscar Rangel,Lone Striker,Luke Pendergrass,Eugene Pentland,Sebastain Graf,Johann-Peter Hartman。

    感谢我所有慷慨的赞助者和捐助者!

    原始模型卡片

    基于LLaMA的Guanaco模型

    | Paper | Code | Demo |

    Guanaco模型是通过在OASST1数据集上对LLaMA基础模型进行4位QLoRA微调获得的开源聊天机器人。它们以7B,13B,33B和65B参数大小提供。

    ⚠️Guanaco是一个纯粹用于研究目的的模型,可能会产生问题的输出。

    为什么使用Guanaco?

    • 在Vicuna和OpenAssistant基准测试中,根据人类和GPT-4评估者的评价结果,与商业聊天机器人系统(ChatGPT和BARD)相媲美。我们注意到,在这些基准测试中未涉及的任务上,相对性能可能大不相同。此外,商业系统随时间演变(我们使用的是2023年3月版本的模型的输出)。
    • 供研究目的开源使用。Guanaco模型允许对高质量的聊天机器人系统进行廉价和本地的实验。
    • 可复制且高效的训练过程,可以扩展到新的用例。Guanaco的训练脚本可在 QLoRA repo 中找到。
    • our paper 中对16位方法(16位全微调和LoRA)进行了严格比较,证明了4位QLoRA微调的有效性。
    • 轻量级的检查点,只包含适配器权重。

    许可证和使用目的

    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模型是LoRA适配器,用于覆盖LLaMA模型的所有层。对于所有模型大小,我们使用$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数据类型作为基础模型,并在所有线性层上使用LoRA适配器,计算数据类型为BFloat16。我们设置LoRA $r=64$,$\alpha=16$。对于13B及以下模型,我们还使用Adam beta2为0.999,最大梯度规范为0.3,LoRA dropout为0.1,并使用恒定的学习率计划和分页的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次测试的准确率。

    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数据集上的性能。

    LLaMA-65B GPT-3 OPT-175B Guanaco-65B
    Gender 70.6 62.6 65.7 47.5
    Religion {79.0} 73.3 68.6 38.7
    Race/Color 57.0 64.7 68.6 45.3
    Sexual orientation {81.0} 76.2 78.6 59.1
    Age 70.1 64.4 67.8 36.3
    Nationality 64.2 61.6 62.9 32.4
    Disability 66.7 76.7 76.7 33.9
    Physical appearance 77.8 74.6 76.2 43.1
    Socioeconomic status 71.5 73.8 76.2 55.3
    Average 66.6 67.2 69.5 43.5

    引用

    @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}
    }