模型:

TheBloke/Vicuna-33B-1-3-SuperHOT-8K-GPTQ

英文

Chat & support: my new Discord server

Want to contribute? TheBloke's Patreon page

LmSys' Vicuna 33B 1.3 (final) GPTQ

这些文件是合并了 LmSys' Vicuna 33B 1.3 (final) Kaio Ken's SuperHOT 8K 的GPTQ 4bit模型文件。

使用 GPTQ-for-LLaMa 进行4bit量化后得到的结果。

这是一个实验性的新GPTQ模型,提供了高达8K的上下文长度

已通过最新版本的 text-generation-webui 中的 ExLlama 进行测试。

还通过使用AutoGPTQ的Python代码进行了测试,并且 trust_remote_code=True。

代码来源:

  • 增加 上下文长度的原始概念和代码: kaiokendev
  • 包含此功能的更新的Llama建模代码,通过 trust_remote_code 自动设置: emozilla

请仔细阅读以下内容以了解如何使用它。

注意:使用30B模型的完整8K上下文将超过24GB的显存。

可用的仓库

如何在text-generation-webui中下载并使用此模型

请确保使用的是text-generation-webui的最新版本

  • 点击“模型”选项卡。
  • 在“下载自定义模型或LoRA”下方,输入“TheBloke/Vicuna-33B-1-3-SuperHOT-8K-GPTQ”。
  • 点击“下载”。
  • 模型开始下载。下载完成后,将显示“完成”。
  • 取消选中“自动加载模型”。
  • 在左上角,点击“模型”旁边的刷新按钮。
  • 在“模型”下拉菜单中,选择刚刚下载的模型:Vicuna-33B-1-3-SuperHOT-8K-GPTQ
  • 要使用增加的上下文,请将“加载程序”设置为“ExLlama”,将“max_seq_len”设置为8192或4096,并将“compress_pos_emb”设置为8192上下文为4,4096上下文为2。
  • 现在点击“保存设置”,然后点击“重新加载”
  • 模型将自动加载,现在已准备好使用!
  • 当您准备好后,点击“文本生成”选项卡并输入提示以开始!
  • 如何使用此GPTQ模型以及AutoGPTQ中的Python代码

    首先确保已安装AutoGPTQ和Einops:

    pip3 install einops auto-gptq
    

    然后运行以下代码。请注意,为了使其正常工作,config.json已经硬编码为一个序列长度为8192。

    如果要尝试4096以减少显存使用,请手动编辑config.json将max_position_embeddings设置为所需值。

    from transformers import AutoTokenizer, pipeline, logging
    from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
    import argparse
    
    model_name_or_path = "TheBloke/Vicuna-33B-1-3-SuperHOT-8K-GPTQ"
    model_basename = "vicuna-33b-1.3-superhot-8k-GPTQ-4bit--1g.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_map='auto',
            use_triton=use_triton,
            quantize_config=None)
    
    model.seqlen = 8192
    
    # Note: check the prompt template is correct for this model.
    prompt = "Tell me about AI"
    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, 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'])
    

    使用其他的用户界面:猴子补丁

    该仓库提供了llama_rope_scaled_monkey_patch.py,由@kaiokendev编写。

    理论上可以将其添加到任何Python用户界面或自定义代码中,以实现与trust_remote_code=True相同的结果。我没有测试过这一点,而且应该被使用trust_remote_code=True取代,但为了完整性和出于兴趣,我还包括在内。

    提供的文件

    vicuna-33b-1.3-superhot-8k-GPTQ-4bit--1g.act.order.safetensors

    这将适用于AutoGPTQ、ExLlama和GPTQ-for-LLaMa的CUDA版本。有报道称在最近的GPTQ-for-LLaMa的Triton模式中存在问题。如果有问题,请改用AutoGPTQ。

    创建它时没有使用group_size以降低显存需求,并且使用--act-order(desc_act)尽可能提高推理准确性。

    • vicuna-33b-1.3-superhot-8k-GPTQ-4bit--1g.act.order.safetensors
      • 适用于使用增加上下文的ExLlama(4096或8192)
      • 对于设置了trust_remote_code=True的AutoGPTQ在Python代码中使用,包括使用增加的上下文。
      • 应该适用于CUDA模式下的GPTQ-for-LLaMa,但增加的上下文是否有效尚不确定。
      • 适用于text-generation-webui,包括一键安装程序。
      • 参数:Groupsize = -1。 活动顺序 / desc_act = True。

    Discord

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

    TheBloke AI's Discord server

    感谢以及如何贡献

    感谢 chirper.ai 团队!

    我收到很多人的询问是否可以做出贡献。我喜欢提供模型并帮助人们,非常感谢您的贡献,这将帮助我能够花更多的时间提供更多的模型,并开始新的项目,如微调/训练。

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

    捐赠者将优先获得有关所有AI/LLM/模型方面的支持、问题和请求的支持,可以进入私人Discord聊天室,以及其他福利。

    特别感谢:CarbonQuill的Luke、Aemon Algiz、Dmitriy Samsonov。

    Patreon特别提到的人:zynix,ya boyyy,Trenton Dambrowitz,Imad Khwaja,Alps Aficionado,chris gileta,John Detwiler,Willem Michiel,RoA,Mano Prime,Rainer Wilmers,Fred von Graf,Matthew Berman,Ghost,Nathan LeClaire,Iucharbius,Ai Maven,Illia Dulskyi,Joseph William Delisle,Space Cruiser,Lone Striker,Karl Bernard,Eugene Pentland,Greatston Gnanesh,Jonathan Leane,Randy H,Pierre Kircher,Willian Hasse,Stephen Murray,Alex,terasurfer,Edmond Seymore,Oscar Rangel,Luke Pendergrass,Asp the Wyvern,Junyu Yang,David Flickinger,Luke,Spiking Neurons AB,subjectnull,Pyrater,Nikolai Manek,senxiiz,Ajan Kanaga,Johann-Peter Hartmann,Artur Olbinski,Kevin Schuppel,Derek Yates,Kalila,K,Talal Aujan,Khalefa Al-Ahmad,Gabriel Puliatti,John Villwock,WelcomeToTheClub,Daniel P. Andersen,Preetika Verma,Deep Realms,Fen Risland,trip7s trip,webtim,Sean Connelly,Michael Levine,Chris McCloskey,biorpg,vamX,Viktor Bowallius,Cory Kujawski。

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

    原始模型卡片:Kaio Ken的SuperHOT 8K

    SuperHOT Prototype 2 w/ 8K Context

    这是第二个SuperHOT的原型,这次是30B的8K上下文,没有RLHF,使用了在 the github blog 中描述的相同技术。测试结果表明,模型确实利用了8K的扩展上下文。

    您需要使用猴子补丁,或者如果您已经使用猴子补丁,则将缩放因子更改为0.25,最大序列长度更改为8192

    寻找合并和量化模型? 培训详细信息

    我使用以下配置训练了LoRA:

    • 1200个样本(超过2048个序列长度的约400个样本)
    • 学习率为3e-4
    • 3个时代
    • 导出模块为:
      • q_proj
      • k_proj
      • v_proj
      • o_proj
      • 没有偏差
    • 等级 = 4
    • Alpha = 8
    • 没有dropout
    • 权重衰减为0.1
    • AdamW beta1为0.9,beta2为0.99,epsilon为1e-5
    • 在4位基本模型上训练

    原始模型卡片:LmSys的Vicuna 33B 1.3(最终版本)

    Vicuna模型卡片

    模型细节

    Vicuna是根据从ShareGPT收集的用户共享对话进行LLaMA的有监督指导微调的聊天助手。

    • 开发者: LMSYS
    • 模型类型:基于Transformer架构的自回归语言模型。
    • 许可证:非商业许可证
    • 从模型中进行微调: LLaMA

    模型来源

    用途

    Vicuna的主要用途是大型语言模型和聊天机器人的研究。该模型的主要使用者是自然语言处理、机器学习和人工智能领域的研究人员和爱好者。

    如何开始使用该模型

    命令行界面: https://github.com/lm-sys/FastChat#vicuna-weights 。API(OpenAI API,Huggingface API): https://github.com/lm-sys/FastChat/tree/main#api

    培训细节

    Vicuna v1.3是通过从ShareGPT.com收集的约14万个对话进行监督指导微调的LLaMA模型。有关详细信息,请参阅此 paper 中附录中的“Vicuna模型的培训详细信息”部分。

    评估

    Vicuna使用标准基准、人类偏好和LLM作为评判进行评估。有关详细信息,请参阅此 paper

    不同版本Vicuna之间的区别

    请参阅 vicuna_weights_version.md