Mixtral 8x7B:开源稀疏混合专家模型的新里程碑

news2024/9/20 18:37:30

人工智能咨询培训老师叶梓 转载标明出处

随着大模型规模的增大,计算成本和资源消耗也相应增加,这限制了它们的应用范围和效率。本论文介绍了一种新的稀疏混合专家模型(SMoE)——Mixtral 8x7B,它在保持较小计算成本的同时,实现了与更大模型相媲美的性能。

图1展示了专家混合层的工作原理。Mixtral 8x7B模型是一种具有稀疏结构的混合专家模型。与以往的模型相比,Mixtral 8x7B在每个层级上由8个前馈块(即专家)组成,通过一个路由器网络为每个token选择两个专家进行处理,并将它们的输出结合起来。尽管每个token只看到两个专家,但由于所选专家在每个时间步可以不同,因此每个token实际上可以访问到47B个参数,但在推理过程中仅使用13B个活跃参数。

Mixtral 8x7B的创新之处在于其稀疏结构设计,这使得模型在保持巨大参数量的同时,能够高效地进行计算。具体来说,Mixtral 8x7B在32k tokens的上下文大小下进行预训练,并且在多个评估基准上超越或匹配了Llama 2 70B和GPT-3.5的性能。特别是在数学、代码生成和多语言基准测试中,Mixtral 8x7B大幅超越了Llama 2 70B。

作者还提供了一个针对指令进行微调的模型——Mixtral 8x7B – Instruct,它在人类评估基准上超越了GPT-3.5 Turbo、Claude-2.1、Gemini Pro和Llama 2 70B的聊天模型。Mixtral – Instruct还在BBQ和BOLD等基准测试中显示出较低的偏见和更平衡的情感倾向。

Mixtral 8x7B模型的架构

Mixtral是基于变换器架构,并且对之前描述的模型进行了一些修改,特别是支持了32k tokens的完全密集上下文长度,并且将前馈块替换为了专家混合层(Mixture-of-Expert layers)。模型的架构参数在表1中进行了总结。

如图1所示Mixtral模型中的Mixture of Experts(MoE)层的运作机制结构中,每个输入向量(token)不是由单一的神经网络层处理,而是由多个专家(experts)中的一小部分处理。这些专家是并行的神经网络,每个都拥有独立的参数集。

门控网络(Gating Network)的作用是决定哪些专家将参与到每个token的处理中。门控网络为每个专家输出一个权重,这些权重通过softmax函数转换,以确保它们是正的并且总和为一,从而可以作为权重系数。在实践中,为了提高效率,只选择权重最高的K个专家(在Mixtral中K=2)来处理每个token,这通过Top-K操作实现,即只保留最高的K个权重,其余的权重设置为负无穷,这样在softmax操作中它们的影响就会消除。

在Mixtral模型中,SwiGLU是一种特定的前馈网络结构,用作专家网络。每个token不是由一个单一的SwiGLU网络处理,而是由两个不同的SwiGLU网络处理,这两个网络拥有不同的参数集。这两个SwiGLU网络被选中是基于门控网络的输出,即每个token的门控向量中最高的两个权重。

对于输入tokenx,MoE层的输出y 是由两个选定的SwiGLU专家网络的输出的加权和确定的,计算公式为:

这里,n 是专家的总数,表示从门控网络的输出中选取权重最高的两个专家,表示第i 个专家网络对输入x 的处理结果。这样,每个token实际上是通过两个专家的输出的加权和来更新的,权重由门控网络动态决定,从而实现了高效的参数利用和强大的模型性能。

想要掌握如何将大模型的力量发挥到极致吗?叶老师带您深入了解 Llama Factory —— 一款革命性的大模型微调工具。9月22日晚,实战专家1小时讲解让您轻松上手,学习如何使用 Llama Factory 微调模型。

加下方微信或评论留言,即可参加线上直播分享,叶老师亲自指导,互动沟通,全面掌握Llama Factory。关注享粉丝福利,限时免费录播讲解。

LLaMA Factory 支持多种预训练模型和微调算法。它提供灵活的运算精度和优化算法选择,以及丰富的实验监控工具。开源特性和社区支持使其易于使用,适合各类用户快速提升模型性能。

比较结果

在Mixtral与Llama模型的比较结果中,作者使用自己的评估管道重新运行了所有基准测试,以确保公平比较。测试涵盖了多种任务,包括常识推理、世界知识、阅读理解、数学和代码生成等。图2展示了Mixtral在各种基准测试中的性能,与不同的Llama模型相比,Mixtral在所有基准测试中都超越或匹配了Llama 2 70B,尤其是在数学和代码生成方面表现优异。

表2详细列出了Mixtral与Llama模型的比较结果。Mixtral在使用5倍更少的活跃参数进行推理的同时,超越或匹配了Llama 2 70B在几乎所有流行基准测试中的表现。图3进一步展示了Mixtral在MMLU、常识推理、世界知识和阅读理解、数学和代码方面与Llama 2模型的比较结果。Mixtral在几乎所有基准测试中都大幅超越了Llama 2 70B,除了阅读理解基准测试,同时使用的活跃参数降低了5倍。在数学和代码方面,Mixtral也大大优于Llama 2 70B。

表3展示了Mixtral 8x7B与Llama 2 70B和GPT-3.5的性能比较。Mixtral在大多数指标上的表现都优于或等同于其他两个模型。例如,在MMLU基准测试中,尽管Mixtral的容量(47B tokens)明显小于Llama 2 70B(70B tokens),但它仍然获得了更好的性能。

与Mistral 7B相比,Mixtral在预训练期间大幅增加了多语言数据的比例。这使得Mixtral在保持英语高准确性的同时,在多语言基准测试中表现良好。表4显示了Mixtral在四种语言(法语、德语、西班牙语和意大利语)的ARC挑战、Hellaswag和MMLU基准测试中超越了Llama 2 70B。

指令微调

模型是通过在指令数据集上进行监督式微调(Supervised Fine-Tuning, SFT),然后使用直接偏好优化(Direct Preference Optimization, DPO)在成对反馈数据集上进一步训练得到的。这种训练方法使得Mixtral – Instruct在MT-Bench基准测试上达到了8.30的得分,成为截至2023年12月最好的开源权重模型。

图6展示了LMSys排行榜的截图(截至2023年12月22日),其中Mixtral 8x7B Instruct v0.1以1121的Arena Elo评分领先于Claude-2.1(1117)、所有版本的GPT-3.5-Turbo(最高1117)、Gemini Pro(1111)和Llama-2-70b-chat(1077)。这表明Mixtral在开放式模型中以较大的优势领先。

路由分析

为了探究在训练过程中,是否有专家专门化于特定领域(例如数学、生物学、哲学等),作者测量了不同子集的The Pile验证数据集中选定专家的分布。图7展示了模型的第0层、第15层和第31层的专家选择比例。结果显示,在所有层中,对于不同主题的文档(如ArXiv论文、生物学的PubMed摘要和哲学的PhilPapers文档),专家分配的分布非常相似。只有在DM Mathematics中,专家分配的分布略有不同。这种差异可能是数据集合成性质及其对自然语言覆盖范围有限的后果,特别是在与输入和输出嵌入高度相关的第一层和最后一层。

图8展示了来自不同领域(Python代码、数学和英语)的文本示例,其中每个token都以背景色突出显示,对应其选择的专家。图中显示,像Python中的‘self’和英语中的‘Question’这样的词经常通过同一个专家路由,即使它们涉及多个token。同样,在代码中,缩进token总是被分配给相同的专家,特别是在与模型的输入和输出更相关的第一层和最后一层。

图8中连续的token经常被分配给相同的专家。他们在The Pile数据集中观察到一定程度的位置局部性。表5显示了每个领域和层中连续token获得相同专家分配的比例。连续分配的重复比例显著高于随机分配,这表明在较高层次上,专家选择表现出高度的时间局部性。这种局部性对于如何优化模型以进行快速训练和推理具有重要意义。例如,具有高局部性的情况在进行专家并行处理时更可能导致某些专家的过度订阅。相反,这种局部性可以被利用于缓存。

代码:https://github.com/mistralai/mistral-src

官网:https://mistral.ai/news/mixtral-of-experts/

论文链接:https://arxiv.org/pdf/2401.04088

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

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

相关文章

【C++】c++ 11

目录 前言 列表初始化 std::initializer_list 右值引用和移动拷贝 左值和右值 左值引用和右值引用的区别 万能引用(引用折叠) 完美转发 默认成员函数控制 列表初始化 在C98中,标准允许使用花括号{}对数组或者结构体元素进行统一的列…

Gartner 成熟度曲线报告解读(一)| 2024中国IT基础设施使用趋势、影响中国IT使用的4大因素

近些年,面对数字化转型、信息化发展、政策监管与地缘政治等外部因素,以及降本增效的内部需求,不少中国企业在制定 IT 基础设施发展策略时遇到多重挑战。为帮助国内企业用户优化基础设施战略,Gartner 近日发布《中国 IT 基础设施技…

【HCIA-Datacom】华为VRP系统

| 👉个人主页:Reuuse 希望各位多多支持!❀ | 👉往期博客:网络参考模型 | 最后如果对你们有帮助的话希望有一个大大的赞! | ⭐你们的支持是我最大的动力!⭐ | 目录 1. 华为VRP系统概述VRP概念设备…

Docker-compose:管理多个容器

Docker-Compose 是 Docker 公司推出的一个开源工具软件,可以管理多个 Docker 容器组成一个应用。用户需要定义一个 YAML 格式的配置文件 docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些…

七、垃圾收集器ParNewCMS与底层三色标记算法详解

文章目录 垃圾收集算法分代收集理论标记-复制算法标记-清除算法标记-整理算法 垃圾收集器1.1 Serial收集器(-XX:UseSerialGC -XX:UseSerialOldGC)1.2 Parallel Scavenge收集器(-XX:UseParallelGC(年轻代),-XX:UseParallelOldGC(老年代))1.3 ParNew收集器(-XX:UseParNewGC)1.4 C…

POSIX信号量以及利用POSIX信号量实现基于循环队列的高效生产者消费者模型

🍑个人主页:Jupiter. 🚀 所属专栏:Linux从入门到进阶 欢迎大家点赞收藏评论😊 目录 🍁POSIX信号量 🍁信号量的相关接口介绍*初始化信号量**销毁信号量**等待信号量**发布信号量* 🍁&…

YOLOv9 简介

YOLO v9 是目前表现最佳的目标检测器之一,被视为现有 YOLO 变体(如 YOLO v5、YOLOX 和 YOLO v8)的改进版本。 YOLOv9 在实时目标检测领域取得了重大进展,引入了诸如可编程梯度信息(PGI)和通用高效层聚合网…

后端开发刷题 | 打家劫舍

描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家,就不能再偷第二家;如果偷了第二家&#xff0…

Dina靶机详解

靶机下载 https://www.vulnhub.com/entry/dina-101,200/ 靶机配置 默认是桥接模式,切换为NAT模式后重启靶机 主机发现 arp-scan -l 端口扫描 nmap -sV -A -T4 192.168.229.157 发现80端口开启,访问 访问网站 目录扫描 python dirsearch.py -u http…

1.2 交换技术

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言一、电路交换1. 定义与原理2. 工作过程3. 优点与局限 二、分组交换1. 定义与原理2. 工作过程3. 优点与局限 三、报文交换1. 定义与原理2. 工作过程3. 优点与局限 四、比较…

改进RRT*的路径规划算法

一、RRT算法 RRT 算法是一种基于随机采样的快速搜索算法。该算法的主要思想是通过随机采样来创建一个快速探索的树,从而生长出一条从起点到终点的路径。如图为随机树的生长过程。 初始化。首先,初始化起始点和目标点位置,并将起点作为根节点…

printf()函数的全面介绍及用法——简单易懂

printf()函数介绍 目录 printf()函数介绍 一:头文件 二:格式控制字符串 1.格式字符。 2.转义字符。 3.普通字符。 三:格式字符输出示例 1. %c-----------输出字符 2. %s-----------输…

Linux中断实操-概念

1、裸机中的中断处理方法: (1)使能中断、初始化相应寄存器 (2)注册中断服务函数,向irqTable数组的指定标号处写入中断服务函数 (3)中断发生后进入IRQ中断服务函数,执行对…

【0~1】实现一个精简版的Tomcat服务器

真正的勇气,是在知道生活的真相之后,依然热爱生活。 《To Kill a Mockingbird》 01 Tomcat 介绍 Tomcat 是一个开源的 Java 应用服务器,主要用来运行基于 Servlet 和 JSP 技术的 Web 应用。Tomcat 实现了 Servlet 规范和 JSP 规范&#xff0…

一次RPC调用过程是怎么样的?

注册中心 RPC(Remote Procedure Call)翻译成中文就是 {远程过程调用}。RPC 框架起到的作用就是为了实现,调用远程方法时,能够做到和调用本地方法一样,让开发人员更专注于业务开发,不用去考虑网络编程等细节…

【开源免费】基于SpringBoot+Vue.JS企业客户管理系统(JAVA毕业设计)

本文项目编号 T 036 ,文末自助获取源码 \color{red}{T036,文末自助获取源码} T036,文末自助获取源码 目录 一、系统介绍1.1 管理员角色1.2 普通员工角色1.3 系统特点 二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内…

苹果手机备份照片怎么删除

在数字时代,备份照片是保护我们珍贵记忆不受意外丢失影响的一种重要方式。苹果手机用户通常利用iCloud或iTunes来备份他们的照片,确保数据的安全。然而,随着时间的推移,这些备份可能会积累大量不再需要的照片,占用宝贵…

鸿蒙开发之ArkTS 基础二

ArkTS常用的基础数据类型 1.字符串 关键字是string 2.数字 关键字是number 3.布尔 关键字是boolean 语法格式是:let 变量名:变量类型 变量值 其中let是关键表示变量,可以修改,可以改变一只对应的是const 修饰,常量不能修改,…

Python画笔案例-050 绘制天空之眼

1、绘制天空之眼 通过 python 的turtle 库绘制 天空之眼,如下图: 2、实现代码 绘制 天空之眼,以下为实现代码: """天空之眼.py """ import math import turtledef draw_square(length,level):if l…

idea同时装了两个版本,每次打开低版本都需要重新激活破解

问题描述: idea同时装了两个版本,每次打开低版本都需要重新激活破解。低版本是2021.1,高版本是2023.1 解决方案: 找到idea的配置路径,比如我的是:C:\Users\Administrator\AppData\Roaming\JetBrains 2021…