模型:

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社区和帮助过我的所有人致敬。

    注意:

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

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

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

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