Mistral 7B

下载 PDF

Mistral 7B

英文原始依据卡片:mistral_7b_2023.md

状态:已翻译。

元数据

计算设置

论文未列出确切的训练硬件、总训练 tokens、优化器或 batch size。它感谢 CoreWeave 提供集群帮助和 CINECA/EuroHPC Leonardo 提供资源,但未指明加速器型号。根据项目规则,硬件设置因此应仅在时代/工具链层面推断为:一个 2023 年 CUDA GPU 训练和推理环境,属于 A100/H100 世代,因为论文依赖于 FlashAttention、xFormers、vLLM 以及在 AWS、GCP 和 Azure 上的云部署路径。确切的设备数量和训练持续时间在本地来源中不受支持,不应填写。

论文在推理时结构方面要具体得多。Mistral 7B 是一个 7B 参数 Transformer,维度 4,096,32 层,32 个注意力头,head 维度 128,隐藏维度 14,336,8 个 key/value head,词典大小 32,000,上下文长度 8,192,滑动窗口大小 4,096。参考实现被设计用于使用 vLLM 和 SkyPilot 的本地或云部署。因此,该架构主要被记录为一个推理高效型 7B 模型,而非一个完全披露的预训练运行。

瓶颈

Mistral 的瓶颈是在延迟和内存约束下推理长上下文密集 Transformer。在自回归解码期间,key/value 缓存内存随生成或预取的 tokens 数量增长,且每个新 token 必须关注可用的先前上下文。论文指出普通注意力的操作数量随序列长度呈二次增长,并且随着缓存可用性缩小,推理的延迟更高、吞吐量更低。

实际瓶颈不仅仅是"7B 很小"。一个小模型仍必须保持足够的质量以替代更大的公共基线,同时必须为实时应用维持吞吐量。论文特别将分组查询注意力与更快的解码、更低的内存需求、更大的 batch size 和更高的吞吐量联系起来。滑动窗口注意力针对长上下文方面:它在允许信息跨层向前移动的同时限制了局部注意力。

推理内存算术支持这一框架。7B 模型的 BF16 权重约为 14 GB。使用 32 层、8 个 KV head、head 维度 128 和 8192 token 全上下文缓存,batch-1 KV 缓存约为 1.1 GB;在 batch 32 时约为 34 GB,大于权重。因此滚动滑动窗口缓存并非表面优化:它将缓存增长绑定到 4096 token 窗口,约将配置的 8192 token 缓存减半,并防止在更长 prompt 上的无限增长。

知识容量仍是另一个计算瓶颈。作者的"等效模型大小"讨论表明 Mistral 7B 在推理/理解/STEM 上的表现类似大得多的 Llama 2 模型,但在知识基准上的压缩率较低,可能因为 7B 模型存储事实的参数内存有限。

方法适配

Mistral 围绕推理 IO 适配 Transformer。分组查询注意力保留 32 个 query head 但仅 8 个 key/value head。这减少了在解码期间必须存储和读取的 KV 数据量,这正是批量推理的压力点。这是一项内存带宽和缓存大小的优化,而不仅是参数数量减少。

滑动窗口注意力设置窗口大小 W = 4096。每个 token 最多关注前一层中的 W 个 tokens,但由于模型有堆叠的层,信息可以每层向前移动最多 W 个 tokens。在 32 层下,论文给出约 131K tokens 的理论注意力跨度,而配置的上下文长度保持为 8192。实践中,这将全局 all-to-all 注意力替换为有界局部注意力加逐层传播。

推理实现由此而来。滚动缓冲区缓存将 keys 和 values 存储在位置 i mod W,因此一旦序列超过窗口,缓存大小停止增长。对于 32K token 序列,论文报告了 8 倍缓存内存减少且无质量影响。长 prompt 使用分块 prefill 处理:prompt 以较小的块(通常为窗口大小)处理,在当前块和缓存上进行注意力,而非一次性处理整个 prompt。论文还报告对 FlashAttention 和 xFormers 的修改在 16K 序列(W = 4096)上相对于普通注意力产生了 2 倍速度提升。

证据

架构表是主要的计算证据:32 个 head、8 个 KV head、4096 滑动窗口和 8192 上下文。论文给出了两个直接的效率结果:16K 序列长度上从 FlashAttention/xFormers 修改获得的 2 倍速度提升,以及 32K 时从滚动缓冲区缓存获得的 8 倍 KV 缓存内存减少。

基准证据支持这些推理导向的改变并未简单地制造一个弱小模型的论断。在比较公共基线的表格中,Mistral 7B 达到 MMLU 60.1%、HellaSwag 81.3%、WinoGrande 75.3%、PIQA 83.0%、ARC-Challenge 55.5%、NaturalQuestions 28.8%、TriviaQA 69.9%、HumanEval 30.5%、MBPP 47.5%、MATH 13.1% 和 GSM8K 52.2%。同一表格给出 Llama 2 13B 为 MMLU 55.6%、HellaSwag 80.7%、WinoGrande 72.9%、PIQA 80.8%、ARC-Challenge 48.8%、NaturalQuestions 29.0%、TriviaQA 69.6%、HumanEval 18.9%、MBPP 35.4%、MATH 6.0% 和 GSM8K 34.3%。因此 7B 模型在几乎所有列出的指标上击败了 Llama 2 13B,在 NaturalQuestions 上大致持平。

对于指令调优,Mistral 7B-Instruct 报告 MT-Bench 6.84 +/- 0.07,高于表中 Llama 2 13B Chat 的 6.65。截至 2023 年 10 月 6 日的人类偏好对比,Mistral 7B 输出被偏好 5,020 次,Llama 2 13B 为 4,143 次。这些不是训练效率数字,但它们显示了为什么更低的推理占用很重要。

历史影响

Mistral 7B 使面向推理的架构成为开源 LLM 竞争中的一个可见部分。LLaMA 已经强调更小模型训练更长时间;Mistral 进一步表明,小型密集模型可以从注意力/缓存设计以及预训练规模中获得实际优势。GQA 和滑动窗口注意力成为面向低成本推理、在有用上下文长度上部署模型的公共配方的一部分。

论文还锐化了模型能力、训练成本和推理成本之间的三重权衡。其结论明确主张该领域不应仅将能力与训练成本相关联。从历史上看,这就是 Mistral 7B 之所以重要:它使 7B 检查点感觉像一个部署目标,而不仅是一个研究玩具。

局限

本阅读卡的最大限制是披露。论文未列出训练硬件、加速器数量、训练 tokens、训练持续时间、优化器设置或完整数据混合。任何关于训练集群的精确声明在本地来源中都将不受支持。

架构也有局限。滑动窗口减少了注意力成本,但也限制了对远过去 tokens 的直接访问;长程信息必须通过层传播,而非在每层全局关注。作者声称在其报告设置中滚动缓存无质量影响,但论文并未详尽测试所有长上下文检索行为。最后,7B 参数数量限制了事实存储,而 guardrail/self-reflection 部分是一个轻量级基于 prompt 的演示,而非完整的安全训练方法。

链接

  • 计算范式:history/compute_regimes/hyperscale_dense_llm_training/README.md
  • 来源 PDF 和抽取文本见上方元数据。
  • Queue 状态:read_complete
  • 方法索引:transformer
  • 对照更新:compute bottlenecks