模型:

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

    注意:

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

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

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

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