模型:

TheBloke/Wizard-Vicuna-7B-Uncensored-SuperHOT-8K-GPTQ

英文

Chat & support: my new Discord server

Want to contribute? TheBloke's Patreon page

Eric Hartford's Wizard Vicuna 7B Uncensored GPTQ

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

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

通过最新版本的 ExLlama 进行测试,使用 text-generation-webui 的发布。

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

代码来源:

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

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

可用的存储库

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

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

  • 点击“模型”选项卡。
  • 在“下载自定义模型或LoRA”下输入“TheBloke/Wizard-Vicuna-7B-Uncensored-SuperHOT-8K-GPTQ”。
  • 点击“下载”。
  • 模型将开始下载。下载完成后将显示“完成”
  • 取消选中“自动加载模型”
  • 在左上角,点击“模型”旁边的刷新图标。
  • 在模型下拉菜单中,选择刚刚下载的模型:Wizard-Vicuna-7B-Uncensored-SuperHOT-8K-GPTQ
  • 要使用增加的上下文,请将“装载器”设置为ExLlama,将“max_seq_len”设置为8192或4096,并将“compress_pos_emb”设置为4(对于8192上下文)或为2(对于4096上下文)。
  • 现在点击“保存设置”,然后点击“重新加载”
  • 模型将自动加载,现在已经准备好使用!
  • 准备好后,点击“文本生成”选项卡并输入提示开始使用!
  • 如何使用该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-7B-Uncensored-SuperHOT-8K-GPTQ"
    model_basename = "wizard-vicuna-7b-uncensored-superhot-8k-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_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-7b-uncensored-superhot-8k-GPTQ-4bit-128g.no-act.order.safetensors

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

    它是使用group_size 128创建的,以增加推理准确性,但不使用--act-order(desc_act)以增加兼容性并提高推理速度。

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

    Discord

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

    TheBloke AI's Discord server

    感谢和如何贡献。

    感谢 chirper.ai 团队!

    我有很多人问我是否可以做贡献。我喜欢提供模型并帮助人们,并且希望能够花更多的时间来做这件事,以及扩展到新的项目,如精细调整/训练。

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

    捐赠者将在任何关于AI/LLM/模型的问题和请求上获得优先支持,可以访问一个私人Discord房间,以及其他福利。

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

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

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

    带有8K上下文的SuperHOT原型2

    这是SuperHOT的第二个原型,一个专注于NSFW的LoRA,这次是7B,具有8K上下文,没有RLHF,使用与 the github blog 中描述的相同技术。

    寻找合并和量化的模型?

    请自己制作 :)

    使用猴子补丁吗?

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

    只有在您使用的前端/后端不支持缩放且该前端/后端基于Python(例如Huggingface Transformers)时,才需要应用猴子补丁。要应用补丁,您需要将llama_rope_scaled_monkey_patch.py复制到您的工作目录中,并在Python程序的开头调用导出的函数replace_llama_rope_with_scaled_rope。它将修改Transformers库对RoPE的实现,以正确应用缩放因子。

    使用Exllama的Oobabooga吗?

    将加载器切换到exllama或exllama_hf,添加参数max_seq_len 8192和compress_pos_emb 4。虽然模型可能适用于compress_pos_emb 2,但是它是在4上进行训练的,因此我建议您使用4。

    命令行示例:

    • python server.py --max_seq_len 8192 --compress_pos_emb 4 --loader exllama_hf

    在UI中,您将在“Models”选项卡中看到加载器选项。选择exllama或exllama_hf后,max_seq_len和compress_pos_emb设置将出现。

    训练细节

    我使用以下配置对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位基础模型进行训练
    • 截断长度:4096

    原始模型卡片:Eric Hartford的Wizard Vicuna 7B未经审查

    这是在LLaMA-7B上针对数据集的子集训练的 wizard-vicuna-13b - 删除了包含对齐/道德化的回复。目的是训练一个没有内置对齐的WizardLM,这样就可以单独添加对齐(任何类型的对齐),比如使用RLHF的LoRA。

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

    注意:

    未经审查的模型没有防卫措施。

    您对使用该模型负有全部责任,就像您对使用任何危险物品(如刀具、枪支、打火机或汽车)的责任一样。

    发布由该模型生成的任何内容与自己发布相同。

    您对所发布的内容负责,无需将模型的责任归咎于刀、枪、打火机或汽车所做的任何事情。