模型:

TheBloke/Wizard-Vicuna-30B-Superhot-8K-GPTQ

英文

Chat & support: my new Discord server

Want to contribute? TheBloke's Patreon page

Eric Hartford的Wizard Vicuna 30B Uncensored与Kaio Ken's SuperHOT 8K GPTQ合并

这些文件是使用 Eric Hartford's Wizard Vicuna 30B Uncensored 与 Kaio Ken's SuperHOT 8K 合并的GPTQ 4bit模型文件。

这是一个实验性的全新GPTQ,可提供长达8K的上下文大小

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

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

代码贡献:

  • 增加上下文长度的原始概念和代码: kaiokendev
  • 包括了这个功能的更新Llama建模代码,通过trust_remote_code: emozilla 。

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

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

暂时还没有提供GGML版本,因为llama.cpp还不支持SuperHOT。正在研究并希望尽快提供支持。

可用的存储库

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

请确保您正在使用text-generation-webui的最新版本

  • 点击"Model"选项卡
  • 在"Download custom model or LoRA"下输入"TheBloke/Wizard-Vicuna-30B-Superhot-8K-GPTQ"
  • 点击"Download"
  • 模型开始下载,下载完成后会显示"Done"
  • 取消"Autoload the model"
  • 在左上角,点击"Model"旁边的刷新图标
  • 在"Model"下拉菜单中,选择刚下载的模型"Wizard-Vicuna-30B-Superhot-8K-GPTQ"
  • 要使用增加的上下文,将"Loader"设置为"ExLlama",将"max_seq_len"设置为8192或4096,并将"compress_pos_emb"设置为4以获取8192上下文,或将其设置为2以获取4096上下文。
  • 现在点击"Save Settings",然后点击"Reload"
  • 模型将自动加载,现在可以使用了
  • 一旦准备好,点击"Text Generation"选项卡并输入提示开始使用
  • 如何使用此GPTQ模型的Python代码中的AutoGPTQ

    首先确保您已安装AutoGPTQ和Einops:

    pip3 install einops auto-gptq
    

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

    如果您想尝试4096以减少VRAM使用量,请手动编辑config.json以将max_position_embeddings设置为您想要的值。

    from transformers import AutoTokenizer, pipeline, logging
    from auto_gptq import AutoGPTQForCausalLM, BaseQuantizeConfig
    import argparse
    
    model_name_or_path = "TheBloke/Wizard-Vicuna-30B-Superhot-8K-GPTQ"
    model_basename = "wizard-vicuna-30b-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'])
    

    使用其他UI:猴子补丁

    在存储库中提供了llama_rope_scaled_monkey_patch.py,由@kaiokendev编写。

    理论上可以将其添加到任何Python UI或自定义代码中,以实现与trust_remote_code=True相同的结果。我没有测试过,使用trust_remote_code=True应该可以取代它,但出于完整性和兴趣的考虑,我还是包含在内。

    提供的文件

    wizard-vicuna-30b-superhot-8k-GPTQ-4bit--1g.act.order.safetensors

    这将适用于AutoGPTQ、ExLlama和GPTQ-for-LLaMa的CUDA版本。有关最新版GPTQ-for-LLaMa Triton模式的问题的报告。如果有问题,请改用AutoGPTQ。

    它是没有group_size的,以降低VRAM需求,并使用--act-order(desc_act)来尽可能提高推理准确性。

    • wizard-vicuna-30b-superhot-8k-GPTQ-4bit--1g.act.order.safetensors
      • 适用于ExLlama与增加的上下文(4096或8192)
      • 如果设置trust_remote_code=True,适用于Python代码中的AutoGPTQ,包括使用增加的上下文。
      • 应该适用于GPTQ-for-LLaMa的CUDA模式,但不确定增加的上下文是否适用-待定。可能在GPTQ-for-LLaMa Triton模式下出现问题。
      • 适用于text-generation-webui,包括一键安装程序。
      • 参数:Groupsize = -1。Act Order / desc_act = True。

    Discord

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

    TheBloke AI's Discord server

    感谢和贡献方法

    感谢 chirper.ai 团队!

    我收到很多人问我是否可以做出贡献。我喜欢提供模型和帮助人们,很乐意能够花更多的时间来做这些事情,并且扩展到新的项目,如微调/训练。

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

    捐助者将优先获得有关任何AI/LLM/模型问题和请求的支持,可以访问私人Discord房间,以及其他好处。

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

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

    原始模型卡:Kaio Ken's 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
    • 没有丢失
    • 权重衰减为0.1
    • AdamW的beta1为0.9和beta2为0.99,epsilon为1e-5
    • 使用4位基础模型进行训练

    原始模型卡:Eric Hartford's Wizard Vicuna 30B Uncensored

    这是 wizard-vicuna-13b 用数据集的子集进行了训练 - 删除了包含对齐/道德化的响应。目的是训练一个没有内置对齐的WizardLM,以便可以单独添加对齐(任何类型的对齐)例如使用RLHF LoRA。

    向开源AI/ML社区和帮助过我的所有人致敬。

    注意:

    未经审查的模型没有任何防护措施。

    您对使用模型的任何操作负责,就像您对使用刀具、枪支、打火机或汽车等危险物品负责一样。

    发布模型生成的任何内容与自己发布一样。

    您对您发布的内容负责,不能再像您责怪刀具、枪支、打火机或汽车一样,将责任推给模型。