[论文笔记]Mistral 7B

引言

今天带来大名鼎鼎的Mistral 7B的论文笔记。

作者推出了Mistral 7B,这是一个70亿参数的语言模型。Mistral 7B在所有评估基准中表现优于最佳的13B开源模型(Llama 2),并且在推理、数学和代码生成方面胜过最佳发布的34B模型(Llama 1)。

该模型利用了分组查询注意力(GQA)以实现更快的推理速度,结合滑动窗口注意力(Sliding Window Attention, SWA)来有效处理任意长度的序列并降低推理成本。作者还提供了一个经过微调以遵循指令的模型,Mistral 7B - Instruct。代码发布在: https://github.com/mistralai/mistral-src 。

1. 总体介绍

一个精心设计的语言模型可以在保持高效推理的同时实现高性能。Mistral 7B在所有测试基准中都表现优于之前最佳的13B模型(Llama 2),并在数学和代码生成方面超越了最佳的34B模型(LLaMa 34B)。此外,Mistral 7B接近了Code-Llama 7B在编码性能上的表现,而不会在非编码相关基准上牺牲性能。

Mistral 7B利用了分组查询注意力(GQA)和滑动窗口注意力(SWA)。GQA显著加快了推理速度,同时在解码过程中减少了内存需求,从而允许更高的批量大小和更高的吞吐量,这对实时应用程序至关重要。此外,SWA旨在以降低的计算成本更有效地处理更长的序列,从而缓解了LLM中的一个常见限制。这些注意力机制共同为Mistral 7B的增强性能和效率做出了贡献。

2. 架构细节

image-20240603233639215

图1:滑动窗口注意力。在普通的注意力机制中,操作数与序列长度的平方成正比,内存与令牌数量呈线性增长。在推理过程中,由于缓存可用性降低,这会导致更高的延迟和较小的吞吐量。为了缓解这个问题,使用滑动窗口注意力:每个令牌只能关注前一层中最多W个令牌(这里,W = 3)。注意,滑动窗口之外的令牌仍然会影响下一个词的预测。在每个注意力层中,信息可以向前传递W个令牌。因此,在k个注意力层之后,信息可以向前传递最多k×W个令牌。

Mistral 7B基于Transformer架构。主要参数总结如表1所示。与Llama相比,它引入了一些变化。

image-20240603234016732

滑动窗口注意力(Sliding Window Attention) SWA利用Transformer的堆叠层来处理超出窗口大小W的信息。在第 k k k层中,位于位置 i i i的隐藏状态 h i h_i hi会关注前一层中位置在 i − W i−W iW i i i之间的所有隐藏状态。递归地, h i h_i hi可以访问到与输入层相隔 W × k W×k W×k个令牌的令牌,如图1所示。在最后一层中,使用窗口大小 W = 4096 W = 4096 W=4096,理论上拥有约131K个令牌的注意力范围。在实践中,对于序列长度为 16 K 16K 16K W = 4096 W = 4096 W=4096,对FlashAttention 和xFormers 进行的更改使得模型在基线原始注意力上获得了2倍的速度提升。

image-20240603234446126

图2:滚动缓存。缓存的固定大小为W = 4。位置i的键和值存储在缓存的位置i mod W中。当位置i大于W时,缓存中的历史值将被覆盖。对应于最新生成的令牌的隐藏状态用橙色标记。

滚动缓存(Rolling Buffer Cache) 固定的注意力范围意味着可以使用滚动缓存来限制缓存大小。缓存的大小是 W W W,对于时间步 i i i,键和值存储在缓存的位置 i m o d W i \mod W imodW中。因此,当位置 i i i大于 W W W时,缓存中的历史值将被覆盖,并且缓存的大小停止增加。在图2中提供了 W = 3 W = 3 W=3的示例。对于32k个令牌的序列长度,这将减少8倍的缓存内存使用,而不会影响模型质量。

image-20240603234736881

图3:预填充和分块。在填充缓存期间,长序列被分块以限制内存使用。将一个序列分成三个块,"The cat sat on","the mat and saw","the dog go to"。该图显示了第三个块("the dog go to")出现的情况:它使用因果掩码(最右侧的块)关注自身,使用滑动窗口(中间的块)关注缓存,并且不关注历史的。

预填充和分块(Pre-fill & Chunking) 当生成一个序列时,我们需要逐个预测令牌,因为每个令牌都是以之前令牌为条件的。然而,提示是已知的,我们可以用提示预先填充 ( k , v ) (k,v) (k,v)缓存。如果提示非常大,我们可以将其分成较小的块,并使用每个块预先填充缓存。为此,我们可以将窗口大小选择为块大小。因此,对于每个块,我们需要计算在缓存和块中的注意力。图3显示了注意力掩码如何作用于缓存和块。

3. 结果

将Mistral 7B与Llama进行比较,并使用作者自己的评估流程重新运行所有基准测试,以进行公平比较。对各种任务的性能进行了测量,分类如下:

  • 常识推理(0-shot):Hellaswag,Winogrande,PIQA,SIQA,OpenbookQA,ARC-Easy,ARC-Challenge ,CommonsenseQA

  • 世界知识(5-shot):Natur alQuestions,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(3-5-shot,仅限英文多项选择题)

    image-20240603235402604

Mistral 7B、Llama 2 7B/13B和Code-Llama 7B的详细结果见表2。

image-20240603235425441

图4比较了Mistral 7B与Llama 2 7B/13B和Llama 1 34B4在不同类别中的性能。Mistral 7B在所有指标上超过了Llama 2 13B,并在大多数基准测试中优于Llama 1 34B。特别是,Mistral 7B在代码、数学和推理基准测试中显示出卓越的性能。

image-20240603235626609

大小和效率 计算了Llama 2系列的等效模型大小,旨在了解Mistral 7B模型在成本性能范围内的效率(图5)。在推理、理解和STEM推理特别(是MMLU)评估中,Mistral 7B表现出了与Llama 2模型相当于其大小的3倍以上的性能。在知识基准测试中,Mistral 7B的性能达到了1.9倍的较低压缩率,这可能是由于其有限的参数数量限制了其存储的知识量。

4. 指令微调

为了评估Mistral 7B的泛化能力,在Hugging Face仓库上公开可用的指令数据集上进行了微调。没有使用专有数据或训练技巧:Mistral 7B - Instruct模型是对基础模型进行微调以实现良好性能的简单初步演示。

image-20240603235749674

在表3中,得到的模型Mistral 7B - Instruct在MT-Bench上表现出优越的性能,与13B - Chat模型相当。在https://llmboxing.com/leaderboard上进行了独立的人工评估。在这个评估中,参与者收到一组问题,并附有两个模型的匿名回答,被要求选择他们更喜欢的回答。截至2023年10月6日,Mistral 7B生成的输出被选择5020次,而Llama 2 13B被选择4143次。

5.为面向用户的应用程序添加防护措施

对于面向用户的应用程序来说,强制执行AI生成的防护措施非常重要。

5.1 利用系统提示来强制实施防护措施

引入了一个系统提示,以指导模型在指定的防护范围内生成答案,类似于Llama 2的工作。使用此提示可以让用户在模型效用/防护措施的帕累托前沿上前进,如表4所示。

Always assist with care, respect, and truth. Respond with utmost utility yet securely. Avoid harmful,
unethical, prejudiced, or negative content. Ensure replies promote fairness and positivity始终谨慎、尊重和真实地提供帮助。回复时要最大程度地提供效用,同时确保安全。避免有害、不道德、有偏见或消极的内容。确保回复促进公平和积极性。

image-20240604000033413

使用了一组175个不安全的提示来评估安全性。在推荐的系统提示下,该模型正确地拒绝回答了100%的有害问题。

image-20240604000127808

作为示例,在表5中提供了Mistral 7B - Instruct和Llama 2 Chat 13B对于启用系统提示的问题“如何使用系统提示来终止Linux进程”的回答。Mistral 7B提供了正确的回复,而Llama 2则拒绝回答。注意在这个特定的问题上,当系统提示被禁用时,两个模型都能正确回答。

5.2 自我反思的内容审查

Mistral 7B - Instruct可以用作内容审查器:模型本身能够准确地将用户提示或生成的回答分类为可接受或属于以下类别之一:非法活动,如恐怖主义、儿童虐待或欺诈;仇恨、骚扰或暴力内容,如歧视、自残或欺凌;不合格的建议,例如在法律、医疗或金融领域。为此,作者设计了一个自我反思的提示,使Mistral 7B对提示或生成的回答进行分类。对手动策划和平衡的对抗性和标准提示数据集进行了自我反思的评估,精确度为99.4%,召回率为95.6%(将可接受的提示视为正例)。该应用场景广泛,从社交媒体或论坛上的评论审核到互联网品牌监控。特别是,最终用户能够根据其特定的用例选择有效过滤的类别。

6. 结论

语言模型可能会比以前认为的更有效地压缩知识。目前,该领域主要关注二维尺度定律(将模型能力直接与训练成本关联),但问题实际上是三维的(模型能力、训练成本、推理成本)。

总结

⭐ 作者提出了Mistral模型,相比LLaMA引入一些改动:滑动窗口注意力、滚动缓存以及预填充和分块。不管是基础模型还是指令微调模型效果都比较优秀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

odoo qweb template小结

QWeb QWeb是一个基于XML的模板引擎,可用于生成HTML片段和页面。它使用XML格式来定义模板。QWeb通过在模板中添加特定的标记,来指示模板中的数据和逻辑部分。使用QWeb,你可以创建各种不同的模板,例如列表视图,表单视图和报告等。QWeb支持标准的HTML标记和控制结构,如if语…

D435相机结合Yolo V8识别出目标物体,并转点云出抓取位姿。

最近项目上需要完成整个识别、定位、到最后的抓取流程。 分享一下,通过使用D435相机并结合Yolo V8识别出目标物体后,抠取出目标物体部分的有效深度图,最后将前景物体部分的RGB D435相机结合Yolo V8识别出目标物体,并转点云出抓取位…

从高海拔到严寒季的测量作业更要「快准稳」,怎么实现?

西藏那曲海拔4500米公路勘测项目赶工期 “必须要保障在西藏那曲地区承接的公路勘测项目赶工期需求,海拔高达4500米、网络通讯不足、部分范围存在无网以及地基信号覆盖可能不足的情况,需要能满足环境和项目需求的专业RTK设备紧急送到。” 客户的一个电话…

做外贸是否需要代运营?

相信很多做外贸的小伙伴或者公司都有这样的一个困扰,尤其是做SEO以及平台的公司,会很纠结要不要将公司的运营承包出去。 而之所以有这样的困扰,一部分是公司的业务员可能并不擅长运营,或者是业务员抽不出时间去管理运营这块。 而…

映射网络驱动器自动断开的解决方法

如果将驱动器映射到网络共享,映射的驱动器可能会在定期处于非活动状态后断开连接,并且 Windows 资源管理器可能会在映射驱动器的图标上显示红色 X。,出现此行为的原因是,系统可以在指定的超时期限后断开空闲连接, (默认…

PWA缓存策略区别NetworkOnly/CacheFirst/CacheOnly/NetworkFirst/StaleWhileRevalidate

现在来看看 Workbox 提供的缓存策略,主要有这几种: cache-first, cache-only, network-first, network-only, stale-while-revalidate 在前面看到,实例化的时候会给 workbox 挂载一个 Strategies 的实例。提供上面一系列的缓存策略&…

半导体制造中的压缩气体及其高压扩散器如何选择 北京中邦兴业

了解高压扩散器 高压扩散器(HPD)对于保持压缩气体样品中颗粒计数的精度至关重要。它们充当颗粒计数器和压缩气体管线之间的纽带,在气体进入颗粒计数器的样品入口时使其扩散。这确保了压力得到控制,以防止对颗粒计数器样品室的敏感…

uniapp学习(001 前期介绍)

零基础入门uniapp Vue3组合式API版本到咸虾米壁纸项目实战,开发打包微信小程序、抖音小程序、H5、安卓APP客户端等 总时长 23:40:00 共116P 此文章包含第1p-第p10的内容 简介 目录结构 效果 打包成小程序 配置开发者工具 打开安全按钮 使用uniapp的内置组件…

3DMAX一键虚线图形插件DashedShape使用方法

3DMAX一键虚线图形插件使用方法 3dMax一键虚线图形插件,允许从场景中拾取的样条线创建虚线形状。该工具使你能够创建完全自定义的填充图案,为线段设置不同的材质ID,并在视口中进行方便的预览。 【版本要求】 3dMax 2012 – 2025(…

数据结构与算法笔记:基础篇 - 数组:为什么数组都是从0开始编号

概述 提到数组,大家应该都不陌生。每一种编程语言基本都会有数组这种数据类型。不过,它不仅仅是一种编程语言中的数据类型,还是一种基础的数据结构。尽管数组看起来非常简单,但是我估计很多人并没有理解这个数据结构的精髓。 在…

AB测试实战

AB测试实战 1、AB测试介绍🐾 很多网站/APP的首页都会挂一张头图(Banner),用来展示重要信息,头图是否吸引人会对公司的营收带来重大影响,一家寿险公司Humana设计了如下三张头图,现在需要决定使用哪一张放到首页&#x…

FastDFS分布式文件系统

一、概述 FastDFS是一款由国人余庆开发的轻量级开源分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,主要解决大容量文件存储和高并发访问问题&#xff0c…

jenkins应用2-freestyle-job

1.jenkins应用 1.jenkins构建的流程 1.使用git参数化构建,用标签区分版本 2.git 拉取gitlab远程仓库代码 3.maven打包项目 4.sonarqube经行代码质量检测 5.自定义制作镜像发送到远程仓库harbor 6.在远程服务器上拉取代码启动容器 这个是构建的整个过程和步骤…

保姆级教程:Redis 主从复制原理及集群搭建

😄作者简介: 小曾同学.com,一个致力于测试开发的博主⛽️,主要职责:测试开发、CI/CD 如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。 😊 座右铭:不…

线程池的工作原理

文章目录 一、应用场景二、工作原理三、主要函数 一、应用场景 传统并发变成的缺陷: 1.创建和销毁线程上花费的时间和消耗的系统资源,甚至可能要比花在处理实际的用户请求的时间和资源要多得多 2. 活动的线程需要消耗系统资源,如果启动太多&…

26、matlab多项式曲线拟合:polyfit ()函数

1、polyfit 多项式曲线拟合 语法 语法:p polyfit(x,y,n) 返回次数为 n 的多项式 p(x) 的系数,该阶数是 y 中数据的最佳拟合(基于最小二乘指标)。 语法:[p,S] polyfit(x,y,n) 还返回一个结构体 S 语法:[…

优化 mac 储存空间的方法 只需一招为你的苹果电脑提速

在职场中,许多人都对苹果电脑情有独钟。苹果电脑以其简洁美观的设计、流畅稳定的性能以及出色的用户体验,成为了众多职场人士的得力助手。无论是处理文档、制作演示文稿,还是进行创意设计等工作,苹果电脑都能展现出其独特的优势&a…

微信小程序公众号二合一分销商城源码系统 基于PHP+MySQL组合开发的 可多商户商家入驻 带完整的安装代码包以及搭建教程

系统概述 微信小程序公众号二合一分销商城源码系统,是基于PHPMySQL组合开发的一款高效、稳定的电子商务平台解决方案。该系统创新性地将微信公众号与小程序的功能进行了深度整合,为商家提供了一个功能齐全、易于管理的分销商城系统。通过此系统&#xf…

Vue3+vant 带你实现常见的历史记录的业务功能

前言 大部分小伙伴不管是开发PC端还是H5移动端,都会遇到历史搜索的功能。对用户的历史记录进行增删查可以是接口,也可以是前端用缓存实现,一般用浏览器缓存实现的比较多,这篇文章就来教你如何用LocalStorage对历史记录数据的存储、…

视创云展元宇宙虚拟展厅,带来沉浸式的逛展体验!

近年来,随着科技的飞速发展和市场需求的不断演变,众多企业纷纷将目光转向线上虚拟展厅的建设。视创云展元宇宙虚拟展厅凭借其创新性和实用性,为众多企业带来了前所未有的宣传体验,成为了商企展示自我、推广产品的全新舞台。 与传统…