Mistral 7B

迄今为止最佳的 7B 模型,采用 Apache 2.0 许可

产品
2023年9月27日Mistral AI 团队

Mistral AI 团队很荣幸发布 Mistral 7B,这是迄今为止其尺寸下最强大的语言模型。

Mistral 7B 简介

Mistral 7B 是一个拥有 73 亿参数的模型,它

  • 在所有基准测试中均优于 Llama 2 13B
  • 在许多基准测试中优于 Llama 1 34B
  • 在代码方面接近 CodeLlama 7B 的性能,同时在英语任务中保持良好表现
  • 使用分组查询注意力 (GQA) 以实现更快的推理
  • 使用滑动窗口注意力 (SWA) 以较低成本处理更长序列

我们在 Apache 2.0 许可下发布 Mistral 7B,它可以不受限制地使用。

Mistral 7B 易于针对任何任务进行微调。作为演示,我们提供了一个为聊天而微调的模型,该模型优于 Llama 2 13B 聊天模型。

性能详情

我们将 Mistral 7B 与 Llama 2 系列进行了比较,并亲自重新运行了所有模型评估以进行公平比较。

柱状图 Mistral 7B 和不同 Llama 模型在广泛基准测试上的性能。对于所有指标,我们重新评估了所有模型,以便进行精确比较。Mistral 7B 在所有指标上都显著优于 Llama 2 13B,并与 Llama 34B 相当(由于 Llama 2 34B 未发布,我们报告了 Llama 34B 的结果)。在代码和推理基准测试中,它也远远优于后者。

基准测试按主题分类

  • 常识推理:Hellaswag, Winogrande, PIQA, SIQA, OpenbookQA, ARC-Easy, ARC-Challenge 和 CommonsenseQA 的 0-shot 平均得分。
  • 世界知识:NaturalQuestions 和 TriviaQA 的 5-shot 平均得分。
  • 阅读理解:BoolQ 和 QuAC 的 0-shot 平均得分。
  • 数学:使用 maj@8 的 8-shot GSM8K 和使用 maj@4 的 4-shot MATH 的平均得分
  • 代码:0-shot Humaneval 和 3-shot MBPP 的平均得分
  • 常用综合结果:5-shot MMLU,3-shot BBH,以及 3-5-shot AGI Eval(仅限英语多项选择题)

table

一个有趣的指标用于比较模型在成本/性能方面的表现,即计算“等效模型大小”。在推理、理解和 STEM 推理 (MMLU) 方面,Mistral 7B 的性能相当于一个尺寸是其 3 倍以上的 Llama 2 模型。这在内存方面节省了相同量级,并在吞吐量方面获得了提升。有效尺寸 Mistral 7B 和 Llama 2 (7B/13/70B) 在 MMLU、常识推理、世界知识和阅读理解方面的结果。Mistral 7B 在所有评估中都大大优于 Llama 2 13B,但在知识基准测试中与之相当(这可能是由于其有限的参数数量限制了它能压缩的知识量)。

注意:我们的评估与 LLaMA2 论文之间存在重要区别

  • 对于 MBPP,我们使用了人工验证的子集
  • 对于 TriviaQA,我们不提供维基百科的上下文

极速与专注:注意力漂移

Mistral 7B 使用滑动窗口注意力 (SWA) 机制(Child 等人Beltagy 等人),其中每一层都关注前 4,096 个隐藏状态。最初研究此机制的主要改进点和原因在于其计算成本与 O(sliding_window.seq_len) 呈线性关系。实际上,对 FlashAttentionxFormers 所做的更改使得序列长度为 16k 且窗口为 4k 时速度提高了 2 倍。非常感谢 Tri Dao 和 Daniel Haziza 在时间紧迫的情况下帮助集成了这些更改。

滑动窗口注意力利用 Transformer 的堆叠层来关注窗口大小之外的过去信息:层 k 的 token i 关注层 k-1 的 token [i-sliding_window, i]。这些 token 又关注了 token [i-2*sliding_window, i]。更高层可以访问比注意力模式似乎暗示的更远的过去信息。

Local attention

最后,固定的注意力范围意味着我们可以使用循环缓冲区将缓存限制在 sliding_window 大小(在我们的参考实现仓库中阅读更多内容)。这在序列长度为 8192 时,为推理节省了一半的缓存内存,同时不影响模型质量。

针对聊天场景微调 Mistral 7B

为了展示 Mistral 7B 的泛化能力,我们使用 HuggingFace 上公开可用的指令数据集对其进行了微调。没有使用任何技巧,也没有使用专有数据。得到的模型,Mistral 7B Instruct,在 MT-Bench 上优于所有 7B 模型,并与 13B 聊天模型相当。

MT-Bench
注意

Mistral 7B Instruct 模型是一个快速演示,表明基础模型可以轻松微调以获得令人信服的性能。它不包含任何审核机制。我们期待与社区合作,探索如何使模型严格遵守安全规定,以便部署在需要审核输出的环境中。

致谢

我们感谢 CoreWeave 为调动我们的集群提供 24/7 的帮助。我们感谢 CINECA/EuroHPC 团队,特别是 Leonardo 的运营人员提供的资源和帮助。我们感谢 FlashAttentionvLLMxFormersSkypilot 的维护者在实现新功能和将他们的解决方案集成到我们的解决方案中提供的宝贵帮助。我们感谢 HuggingFace、AWS、GCP、Azure ML 团队在使我们的模型兼容所有平台方面提供的全力帮助。