读《Mixtral of Experts》

摘要

稀疏混合专家(SMoE) 语言模型Mixtral 8x7B(那大概可以理解成他是一个缝合怪,把所有的任务模型缝合到一起,然后有一个类似打分投票的路由机制来针对输入问题选择任务子模型从而得到针对性的结果。)。Mixtral具有与Mistral 7B相同的架构,不同之处在于每层由8个前馈块(即专家)组成。对于每一个令牌,在每一层,路由器网络都会选择两名专家来处理当前状态并组合他们的输出。尽管每个令牌只能看到两个专家,但在每个时间步长选择的专家可能不同。结果,每个令牌都可以访问47B参数,但在推理期间仅使用13B活动参数。Mixtral是用32k个令牌的上下文大小进行训练的,在所有评估的基准中,它都优于或匹配Llama 2 70B和GPT-3.5。特别是,Mixtral在数学、代码生成和多语言基准测试方面大大优于Llama 2 70B。我们还提供了一个根据说明进行微调的模型,Mixtral 8x7B–Instruction,它在人类基准测试上超过了GPT-3.5 Turbo、Claude-2.1、Gemini Pro和Llama 2 70B–聊天模型。基本模型和指令模型都是在Apache 2.0许可证下发布的。

引言

由于Mixtral只对每个令牌使用其参数的子集,因此在低批量时可以实现更快的推理速度,在大批量时可以获得更高的吞吐量。Mixtral是一个稀疏的专家混合网络。它是一个仅解码器的模型(那就意味着它更多地在意输出,所以和bert是相反的极端,bert更侧重于完型理解,Mixtral侧重于生成),其中前馈块从一组8个不同的参数中选取。在每一层,对于每一个令牌,路由器网络选择其中两个组(“专家”)来处理令牌,并将其输出相加。这项技术增加了模型的参数数量,同时控制了成本和延迟,因为模型每个令牌只使用总参数集的一小部分。

使用32k令牌的上下文大小使用多语言数据进行预训练的

混合专家层。每个输入矢量由路由器分配给8个专家中的2个。该层的输出是两个选定专家的输出的加权和。在Mixtral中,专家是一个标准的前馈块,就像在vanilla transformer架构中一样。
在这里插入图片描述

Mixtral在数学、代码生成和需要多语言理解的任务方面表现出卓越的能力,在这些领域显著优于Llama 2 70B。实验表明,无论序列长度和信息在序列中的位置如何,Mixtral都能够成功地从其32k个令牌的上下文窗口中检索信息。我们还介绍了Mixtral 8x7B–Instruction,这是一种使用监督微调和直接偏好优化进行微调以遵循指令的聊天模型[25]。在人类评估基准上,它的性能显著超过了GPT-3.5 Turbo、Claude-2.1、Gemini Pro和Llama 2 70B聊天模型。Mixtral–Instruction还展示了减少的偏见,以及在BBQ和BOLD等基准中更平衡的情绪。

那总结一下就是:
总参数可以增多,因为实际每token利用参数少,节省复杂度成本
在数学、代码生成和多语言领域出色
Mixtral 8x7B–Instruction聊天更客观沉稳

架构细节

提到专家层的稀疏性,我的理解是这个专家门控遇到稀疏的张量会使得大部分的专家权重为0,从而避免计算这些多余的内容,从而达到门控、路由等等达到有选择有针对的效果。

至于这个专家权重的得到,

  1. 输入x会与门控网络的权重Wg相乘,得到logits。
  2. Top-K 操作会从这些 logits 中选择 K 个最大的值。这意味着只有部分专家(即得分最高的 K 个)会被选中来处理当前的 token(也就是x)
  3. 然后通过 Softmax函数将这些 Top-K 的 logits 转化为概率分布,即权重 G(x)。
  4. 接下来,模型计算每个专家网络 Ei(x)的输出,并将这些输出乘以对应的权重 G(x)i。由于大多数权重为零(即那些没有被选中的专家),模型实际上不会计算这些专家的输出,从而节省了计算资源。(所以实际利用的参数量只和k有关)
  5. 最后,模型将所有被选中的专家的加权输出相加,形成最终的输出

可以单/多GPU处理,但是多GPU分布式时需要注意均匀分配工作负载

对于Transformer结构来说,不论是在自然语言处理(NLP)还是计算机视觉(CV)领域,它都是以一次处理整个序列的方式运行的。即使是在处理图像的时候,所有的patches(tokens)也是作为序列的一部分一起处理的。
当论文中提到“MoE layer is applied independently per token”时,并不是指物理上独立地单个处理每个token。而是指在计算过程中,每个token都会通过MoE层,并且每个token都可以独立地选择它的“专家”或参数集合。这个过程在模型的内部是并行化的,并且是由深度学习框架在后台处理的。模型并不是逐个序列化地处理每个token,而是在整个批次的tokens上并行地应用MoE层。
所以,虽然处理是“独立”于每个token的,但这并不意味着在硬件上每个token是单独处理的。在硬件上,这些操作仍然是在一个批次的数据上高度并行化的,以利用现代GPU的并行处理能力。这样的设计旨在保持Transformer模型在处理大规模数据时的高效率,同时通过MoE层引入更多的模型容量和灵活性。

结果

与llama打擂台
•常识推理(0-shot): Hellaswag [32], Winogrande [26], PIQA [3], SIQA [27], OpenbookQA [22], ARC-Easy, ARC-Challenge [8], CommonsenseQA[30]
•世界知识(5-shot): NaturalQuestions [20], TriviaQA[19]
•阅读理解(0-shot): BoolQ [7], QuAC[5]
•数学:GSM8K [9] (8-shot) with maj@8和Math [17] (4-shot) with maj@4
•代码:Humaneval [4] (0-shot)和MBPP [1] (3-shot)
•大众综合结果:MMLU16、BBH29和AGI Eval34

路由分析

专家模型的选择并没有显示出强烈的针对特定领域问题的倾向性。这意味着专家子模型并不是专门为解决某个特定领域的问题而训练的。专家并没有在某个具体问题上表现出专业化的行为,所以它们不太可能被单独摘出来单独作为针对特定问题的模型。

这样的结果可能意味着Mixtral模型的路由器在分配任务给专家时,侧重于更细粒度的特征而非整体的领域或主题。

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

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

相关文章

免费简单好用的 webshell 在线检测:支持 php、jsp、asp等多格式文件

话不多说,直接上图上链接:https://rivers.chaitin.cn/?share3d4f2e8aaec211eea5550242c0a8170c 还是比较好用的,支持 PHP、JSP 文件 webshell 检测,看官方解释文档,引擎使用静态文本特征、骨架哈希、静态语义分析、动…

uniapp使用wxml-to-canvas开发小程序保存canvas图片

微信小程序官方解决方案:wxml-to-canvas 使用wxml-to-canvas要知道一些前提条件 1、只能画view,text,image 2、每个元素必须要设置宽高 3、默认是flex布局,可以通过flexDirection: "column"来改变排列方式 4、文字 必…

Tomcat 部署

技能目标: 了解 Tomcat 熟悉 Tomcat 多虚拟主机环境 8.1 Tomcat 概述 自 2017 年 11 月编程语言排行榜 Java 占比 13% ,高居榜首, Tomcat 也一度成为 Java 开发人员的首选。其开源、占用系统资源少、跨平台等特性深受广大程序员…

Codeforces Hello 2024 A~F1

A.Wallet Exchange(思维) 题意: Alice和Bob各自拥有 a , b a,b a,b枚硬币,他们决定以Alice为先手开始比赛,比赛中每人在每轮需按顺序执行操作1和操作2: 操作1:交换两人手上拥有的硬币数量,或什么都不做 …

JS逆向实战案例2——某房地产token RSA加密

说明:仅供学习使用,请勿用于非法用途,若有侵权,请联系博主删除 作者:zhu6201976 一、 反爬分析 url1:aHR0cDovL3pmY2ouZ3ouZ292LmNuL3pmY2ovZnl4eC94a2I/c1Byb2plY3RJZD05MzBlMDQ0MmJjNjA0MTBkYTgzNzQ0MmQ…

用可视化案例讲Rust编程2. 编码的核心组成:函数

从第一天学习编程,可能大家就听说这样的组成公式: 程序算法数据结构 ——该公式出自著名计算机科学家沃思(Nikiklaus Wirth) 实际上,程序除了以上两个主要要素之外,还应当采用结构化程序设计方法进行程序设计,并且用…

SpringBoot多环境配置Maven Profile组

Maven profile组 注意切换配置时 mvn clean下 或者 clean 加install 或者compile 编译 clean之后 install下 或者compile 编译 nohup java -Xms256m -Xmx512m -Dfile.encodingUTF-8 -jar demo.jar --spring.profiles.activeprod > system.log 2>&1 &

k8s中的基础概念

k8s可以从硬件和软件两方面来理解: 硬件: 1、节点(Node):类似于手机、平板、电脑 2、集群(Cluster):多个节点组合到一起 3、持久卷(Persistent Volumes)&…

SpringCloud 之HttpClient、HttpURLConnection、OkHttpClient切换源码

承接上文,之前已经分析过OpenFegin 的创建、发送请求源码了,接下来,分析下底层的HttpClient、HttpURLConnection、OkHttpClient切换从源码级别来看是如何做到的。 Spring Cloud OpenFegin(创建、发送请求)源码 Http…

在本地测试nginx中localhost不行,需要写成127.0.0.1

在Windows 10系统的命令提示符cmd中,执行命令ping localhost,并没有出现我与其的ip地址“127.0.0.1”,而是“[::1]”。 问题原因 在cmd中ping localhost解析出来的是ipv6的::1的原因是windows有个优先解析列表,当ipv6的优先级高于…

深度学习目标跟踪简述

深度学习目标跟踪是一个活跃的研究领域,它涉及使用深度学习技术来跟踪视频或实时摄像头中的对象。这个领域通常包括以下几个关键方面: 目标检测:在开始跟踪前,首先需要在视频的初始帧中检测到目标。这通常是通过卷积神经网络&…

基于ssm物流配送人员车辆调度管理系统的设计与实现+vue论文

摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解决一些老技术的弊端问题。因为传统物流配送人员车辆调度信息管理难度大,容错率低…

Thingsbaord采用redis缓存(自用)

在CentOS系统上,您可以通过以下步骤使用yum安装Redis: 添加EPEL仓库: 首先,需要添加EPEL(Extra Packages for Enterprise Linux)仓库,因为Redis可能不在默认的CentOS仓库中。使用以下命令添加EP…

【python】正则表达式-快速信息匹配,过滤与检测

前言 菜某的总结,希望能够帮到大家。 正则表达式的概念 简单来说就是匹配信息,创建一个规则,匹配文本中符合这个规则的内容 作用领域 单单看他的概念可能觉得他的用途也就是查找,实际上他的用途很广泛 1.信息筛选&#xff0c…

大语言模型面试问题

自己在看面经中遇到的一些面试题,结合自己和理解进行了一下整理。 transformer中求和与归一化中“求和”是什么意思? 求和的意思就是残差层求和,原本的等式为y H(x)转化为y x H(x),这样做的目的是防止网络层数的加深而造成的梯…

如何创建自己的小程序?零编程一键创建实战指南

当今瞬息万变的数字世界中,拥有一个属于自己的小程序已成为企业与个人展示、服务和互动的重要途径。无需编码知识,通过便捷的云端可视化平台,也可以轻松创建一款符合自身需求且功能丰富的小程序。下面给大家分享如何创建自己的小程序。 1、选…

消息开始事件message start event

一:bpmn 二:java repositoryService.createDeployment().name("消息事件流程").addClasspathResource("bpmn/msg_event_process.bpmn").deploy(); identityService.setAuthenticatedUserId("huihui"); ProcessInstance p…

自适应批量生成二维码源码系统:电脑+手机端自适应 支持任何类型批量生成二维码 附带完整的搭建教程

在当今数字化的时代,二维码已经成为了我们日常生活和工作中的重要组成部分。无论是分享链接、添加好友,还是支付购物,二维码都以其便捷性受到了广泛的欢迎。下面,罗峰就来给大家分享一款自适应批量生成二维码源码系统,…

最新消息:OpenAI GPT Store 正式上线,GPTs 应用商店来了!

原文链接 https://openaigptguide.com/gpt-store-and-chatgpt-team/ OpenAI推出的两款新产品和服务:GPT Store和ChatGPT Team,提供了许多全新的解决方案和功能,旨在帮助用户更轻松地使用和构建GPT工具,同时也增加了公司的收入来源…

【JaveWeb教程】(17) MySQL数据库开发之 MySQL简介、安装、数据类型、SQL通用语法 详细代码示例讲解

目录 前言1. MySQL概述1.1 安装1.1.1 版本1.1.2 安装1.1.3 连接1.1.4 企业使用方式(了解) 1.2 数据模型1.3 SQL简介1.3.1 SQL通用语法1.3.2 分类 前言 在我们讲解SpringBootWeb基础知识(请求响应案例)的时候,我们讲到在web开发中,为了应用程序职责单一&…