模型:

TheBloke/wizardLM-13B-1.0-fp16

英文

Chat & support: my new Discord server

Want to contribute? TheBloke's Patreon page

WizardLM 13B 1.0 fp16

这些文件是用于 WizardLM 13B 1.0 的fp16非量化格式的模型文件。

这是通过合并上述回购中提供的增量得到的结果。

需要支持吗?想要讨论吗?我现在有一个Discord!

加入我: https://discord.gg/UBgz4VXf

其他可用的回购

提示模板

A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.
USER: prompt goes here
ASSISTANT:

Discord

如需进一步支持,或讨论有关这些模型和AI的问题,请加入我们:

TheBloke AI's Discord server

感谢和如何贡献。

感谢 chirper.ai 团队!

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

如果您能够并愿意进行贡献,我将非常感激,并将帮助我提供更多的模型,并开始在新的AI项目上工作。

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

Patreon特别鸣谢 : 我已提及的所有慷慨的赞助者和捐赠者!

原始模型卡

WizardLM: 使用Evol-Instruct实现指令遵循的LLM

提升大型预训练语言模型遵循复杂指令的能力

新闻

目前,我们的核心贡献者正在准备33B版本,并期望使WizardLM能够自行执行指令进化,以便以较低的成本演化您的特定数据。

  • ? 我们发布了经过训练并使用250k个演化指令(来自ShareGPT)的13B版本的WizardLM。请在以下位置下载我们的增量模型: link
  • ? 我们发布了经过训练并使用70k个演化指令(来自Alpaca数据)的7B版本的WizardLM。请查看以下位置: paper Demo_7B Demo_7B_bak
  • ? 我们正在寻找高度积极的学生加入我们,一起创建更智能的AI。请联系 caxu@microsoft.com

13B模型使用注意事项:为了获得与我们演示相同的结果,请严格遵循“src/infer_wizardlm13b.py”中提供的提示和调用方法使用我们的13B模型进行推理。与7B模型不同,13B模型采用了Vicuna的提示格式,并支持多轮对话。

演示使用注意事项:我们只建议使用英文来体验我们的模型。将来会引入对其他语言的支持。演示目前仅支持单轮对话。

GPT-4自动评估

我们采用了FastChat提出的基于GPT-4的自动评估框架来评估聊天机器人模型的性能。如下图所示,WizardLM-13B的表现优于Vicuna-13B。

WizardLM-13B在不同技能上的表现。

下图比较了WizardLM-13B和ChatGPT在Evol-Instruct测试集上的能力。结果表明,WizardLM-13B在平均能力上达到ChatGPT的89.1%,在10项技能上几乎达到100%(或更高),在22个技能上达到90%以上的能力。

呼吁反馈

欢迎大家使用专业和困难的指令来评估WizardLM,并在 issue discussion 区域向我们展示性能不佳的示例和您的建议。我们正在专注于改进Evol-Instruct,并希望在WizardLM的下一个版本中消除现有的弱点和问题。之后,我们将公开最新的Evol-Instruct算法的代码和流程,并与您共同改进它。

非官方视频介绍

感谢热心的朋友们,他们的视频介绍更生动有趣。

  • GET WizardLM NOW! 7B LLM KING That Can Beat ChatGPT! I'm IMPRESSED!
  • WizardLM: Enhancing Large Language Models to Follow Complex Instructions
  • 案例展示

    我们只随机选取了一些案例,展示了WizardLM和ChatGPT在难度不同的数据上的表现,详细信息请参考 Case Show

    Evol-Instruct概述

    Evol-Instruct 是一种使用LLMs而不是人类自动大规模生成各种难度和技能范围的开放域指令的新方法,旨在提高LLMs的性能。

    内容

  • 在线演示

  • 训练数据

  • WizardLM模型权重

  • 微调

  • 分布式微调

  • 推理

  • 评估

  • 引用

  • 免责声明

  • 在线演示

    我们将尽可能长时间地为您提供最新的模型。如果链接无效,请尝试其他链接。同时,请尽可能尝试您在工作和生活中遇到的真实世界的具有挑战性的问题。我们将根据您的反馈不断改进我们的模型。

    Demo Link

    Demo Backup 1

    训练数据

    alpaca_evol_instruct_70k.json 包含从Evol-Instruct生成的70K个指令跟随数据。我们用它来对WizardLM模型进行微调。此JSON文件是一个字典列表,每个字典包含以下字段:

    • instruction : str ,描述模型应执行的任务。每个70K个指令都是唯一的。
    • output : str ,由gpt-3.5-turbo生成的对指令的答案。

    WizardLM模型权重

    我们发布[WizardLM]权重作为增量权重,以符合LLaMA模型许可证的要求。您可以将我们的增量添加到原始LLaMA权重中,以获得WizardLM权重。操作指南:

  • 按照 here 中的说明,获取以huggingface格式提供的原始LLaMA权重。
  • 请在以下位置下载我们的增量模型: link
  • 使用以下脚本通过应用我们的增量来获得WizardLM权重:
  • python src/weight_diff_wizard.py recover --path_raw <path_to_step_1_dir> --path_diff <path_to_step_2_dir> --path_tuned <path_to_store_recovered_weights>
    

    微调

    我们使用 Llama-X 中的代码对WizardLM进行微调。我们使用以下超参数对LLaMA-7B和LLaMA-13B进行微调:

    Hyperparameter LLaMA-7B LLaMA-13B
    Batch size 64 384
    Learning rate 2e-5 2e-5
    Epochs 3 3
    Max length 2048 2048
    Warmup step 2 50
    LR scheduler cosine cosine

    要重现我们对WizardLM的微调,请按照以下步骤进行:

  • 按照 Llama-X 中的说明,安装环境,下载训练代码并部署。
  • 将我们存储库中的train.py替换为train_freeform.py(src/train_freeform.py)
  • 执行以下训练命令:
  • deepspeed train_freeform.py \
        --model_name_or_path /path/to/llama-7B/hf \
        --data_path /path/to/alpaca_evol_instruct_70k.json \
        --output_dir /path/to/wizardlm-7B/hf/ft \
        --num_train_epochs 3 \
        --model_max_length 2048 \
        --per_device_train_batch_size 8 \
        --per_device_eval_batch_size 1 \
        --gradient_accumulation_steps 1 \
        --evaluation_strategy "no" \
        --save_strategy "steps" \
        --save_steps 800 \
        --save_total_limit 3 \
        --learning_rate 2e-5 \
        --warmup_steps 2 \
        --logging_steps 2 \
        --lr_scheduler_type "cosine" \
        --report_to "tensorboard" \
        --gradient_checkpointing True \
        --deepspeed configs/deepspeed_config.json \
        --fp16 True
    

    分布式微调

    参见 分布式微调

    推理

    我们提供了用于WizardLM的解码脚本,该脚本读取输入文件并为每个样本生成相应的响应,最后将其合并到输出文件中。

    您可以在src\inference_wizardlm.py中指定base_model、input_data_path和output_data_path来设置解码模型、输入文件的路径和输出文件的路径。解码命令:

    python src\inference_wizardlm.py
    

    评估

    为了评估Wizard,我们对来自我们的人工指令评估集WizardLM_testset.jsonl中的输入进行了人工评估。此评估集由作者收集,并涵盖了各种以用户为导向的指令,包括困难的编码生成和调试、数学、推理、复杂格式、学术写作、广泛的学科等等。我们对Wizard和基线模型进行了盲目的成对比较。具体来说,我们聘请了10位受过良好教育的注释员,对关联性、知识水平、推理、计算和准确性对模型进行了1到5的评级。

    WizardLM的成绩明显优于Alpaca和Vicuna-7b。

    在我们的测试集高难度部分(难度级别>=8),WizardLM甚至超过了ChatGPT,在胜率上比Chatgpt高7.9%(42.9%对35.0%)。这表明我们的方法可以显著提高大型语言模型处理复杂指令的能力。

    引用

    如果您在本存储库中使用数据或代码,请引用此存储库。

    @misc{xu2023wizardlm,
          title={WizardLM: Empowering Large Language Models to Follow Complex Instructions},
          author={Can Xu and Qingfeng Sun and Kai Zheng and Xiubo Geng and Pu Zhao and Jiazhan Feng and Chongyang Tao and Daxin Jiang},
          year={2023},
          eprint={2304.12244},
          archivePrefix={arXiv},
          primaryClass={cs.CL}
    }
    

    免责声明

    与该项目相关的资源,包括代码、数据和模型权重,仅限于学术研究目的,并且不能用于商业目的。任何版本的WizardLM生成的内容都受到无法控制的变量(如随机性)的影响,因此无法保证输出的准确性。本项目对模型输出的内容不承担任何法律责任,也不对使用相关资源和输出结果导致的任何损失承担责任。