Mistral 7B | Albert Q. Jiang, Alexandre Sablayrolles, Arthur Mensch, Chris Bamford, Devendra Singh Chaplot, Diego de las Casas, Flori | 2023-10-10

Mistral 7B:70 亿参数的高效语言模型

Mistral 7B 是一款 70 亿参数的语言模型,借助分组查询注意力与滑动窗口注意力兼顾性能与推理效率,在多数评测上超过 Llama 2 13B。

背景

论文指出,自然语言处理领域追求更高性能往往依赖扩大模型规模,但参数扩张会抬高计算成本与推理延迟,给实际部署带来障碍。因此,寻找性能与效率兼顾的平衡型模型成为关键需求。作者以 Mistral 7B 为例,主张经过精心设计的语言模型可以在保持高效推理的同时实现高性能,并希望借此推动社区构建更可负担、高效、可广泛用于真实场景的语言模型。

创新点

  1. 提出 70 亿参数的 Mistral 7B 模型,在所有测试基准上超过当时最好的开源 13B 模型 Llama 2,并在数学与代码生成上超过最好的 34B 模型 Llama 1。
  2. 采用分组查询注意力(GQA)加速推理并降低解码内存,配合滑动窗口注意力(SWA)以更低成本处理任意长度序列。
  3. 给出配套的推理优化手段:滚动缓冲区缓存将 32k 序列的缓存内存降低 8 倍,预填充与分块则限制长提示处理时的内存占用。
  4. 发布经指令微调的 Mistral 7B – Instruct,在人类与自动评测上均超过 Llama 2 13B – Chat,并以 Apache 2.0 许可开源模型。

方法

模型基于 Transformer 架构。表 1 给出的主要参数为:dim 4096、n_layers 32、head_dim 128、hidden_dim 14336、n_heads 32、n_kv_heads 8、window_size 4096、context_len 8192、vocab_size 32000。相对 Llama 的主要改动体现在注意力机制上。滑动窗口注意力让第 k 层位置 i 的隐状态只关注上一层位置在 i-W 到 i 之间的隐状态,信息可逐层向前传播,因此 k 层后可覆盖约 k×W 的距离;在最后一层、W=4096 时理论注意力跨度约 131K token。作者称对 FlashAttention 与 xFormers 的改动使 16K 序列、W=4096 的设置相对普通注意力基线取得 2 倍加速。滚动缓冲区缓存将缓存固定为 W 大小,位置 i 的键值存入 i mod W 处,超过 W 后旧值被覆盖;在 32k 序列上缓存内存降低 8 倍且不影响模型质量。预填充与分块则把长提示切分为若干块,以窗口大小为块大小逐块填充缓存并计算注意力。指令微调方面,作者仅在 Hugging Face 上公开的指令数据集上微调,未使用专有数据或训练技巧,将 Instruct 版本定位为模型易于微调的初步演示。面向应用,作者还给出用于约束输出的系统提示词,以及让模型自我反思式地对提示或回答做内容分类的审核方案。

实验

作者用自己的评测流程重跑全部基准以保证公平比较。任务覆盖:常识推理(0-shot,含 HellaSwag、Winogrande、PIQA、SIQA、OpenbookQA、ARC-Easy、ARC-Challenge、CommonsenseQA)、世界知识(5-shot,NaturalQuestions、TriviaQA)、阅读理解(0-shot,BoolQ、QuAC)、数学(GSM8K 8-shot maj@8、MATH 4-shot maj@4)、代码(HumanEval 0-shot、MBPP 3-shot)以及 MMLU(5-shot)、BBH(3-shot)、AGI Eval 等汇总指标。表 2 显示,Mistral 7B 预训练模型 MMLU 60.1%、HellaSwag 81.3%、WinoG 75.3%、PIQA 83.0%、Arc-e 80.0%、Arc-c 55.5%、NQ 28.8%、TriviaQA 69.9%、HumanEval 30.5%、MBPP 47.5%、MATH 13.1%、GSM8K 52.2%,在所有指标上超过 Llama 2 13B,并在多数基准上超过 Llama 1 34B,在代码、数学与推理上优势明显,代码表现接近 Code-Llama 7B 且未牺牲非代码基准。作者以等效模型规模衡量效率:在推理、理解与 MMLU 上,Mistral 7B 相当于参数量超过其 3 倍的 Llama 2 模型;在知识类基准上压缩率仅 1.9 倍,作者推测这源于参数规模限制了可存储的知识量。作者还说明与 Llama 2 论文评测协议的两点差异:MBPP 使用人工校验子集,TriviaQA 不提供维基百科上下文。指令模型方面,表 3 显示 Mistral 7B – Instruct 在 MT-Bench 得分为 6.84±0.07,Chatbot Arena ELO 为 1031,优于全部 7B 模型并与 13B – Chat 模型相当;截至 2023 年 10 月 6 日的独立人类评测中,其输出被偏好 5020 次,而 Llama 2 13B 为 4143 次。系统提示词方面,无系统提示时 MT-Bench 为 6.84±0.07,使用 Llama 2 系统提示降至 6.38±0.07,使用 Mistral 系统提示为 6.58±0.05;在 175 条不安全提示上,配合推荐系统提示模型对有害问题 100% 拒答。自我反思式内容审核在人工构建的平衡对抗与常规提示数据集上取得 99.4% 精确率与 95.6% 召回率(以可接受提示为正类)。

局限

  • 模型参数量有限,限制了可压缩存储的知识量,因此在知识类基准上的等效压缩率仅 1.9 倍,表现与 Llama 2 13B 相当而非明显领先。
  • Instruct 版本被作者定位为简单且初步的演示,仅基于公开指令数据微调,未使用专有数据或训练技巧,其能力边界尚未充分探索。
  • 评测协议与 Llama 2 论文不完全一致(MBPP 使用人工校验子集、TriviaQA 不提供维基百科上下文),跨论文数值比较需谨慎。(解读者观点)
  • 系统提示词在提升安全性的同时会降低模型效用(MT-Bench 从 6.84 降至 6.58),需要在效用与护栏之间权衡。(解读者观点)

原文链接

AI 依据论文正文生成,经人工审核;数字与结论以原文为准。