让大模型的训练和推理,比更快还更快!谷歌2022年终总结第四弹

虽然谷歌的Bard翻车了,但谷歌的AI实力仍然不容小觑。

自开年以来,由Jeff Dean领衔的Google Research年终总结系列「Google Research, 2022 & beyond」一直在持续更新,最近也是更新到了第四期。

本期以「提升模型效率」为主题,一起看看谷歌工程师们都想出了哪些ideas!

运行效率成关键

在过去十年里,深度学习呈现爆炸式发展,很大程度上是由于新算法和体系结构的融合、数据量的显著增加以及计算能力的提高。

相比十年前,人工智能和机器学习模型变得更加巨大、更复杂,具有更深且更复杂的网络结构、更多的参数、训练时用到了更多的数据,共同促进了机器学习历史上一些最具变革性的成果。

随着这些模型越来越多地部署在生产和业务应用程序中,模型的推理效率和运行成本已经从一个次要因素变成了一个主要的限制因素。

Google在这方面的应对措施就是继续在机器学习效率方面投入巨资,主要解决以下四个难题:

1、高效的模型架构(Efficient Architecture)

2、数据效率(Data Efficiency)

3、训练效率(Training Efficiency)

4、推理效率(Inference Efficiency)

除了效率之外,模型还面临着围绕真实性、安全性、隐私性和时效性(freshness)等诸多难题。

这篇文章将重点介绍一系列Google Research研究公司为应对上述挑战而开发的新算法。

高效的模型架构

一个最基本的问题是:是否有更好的方法来参数化模型以提高效率?

2022年,Google Research专注于新技术,通过检索上下文增强模型,混合专家,使变压器(位于大多数大型机器学习模型的核心)更有效,从而注入外部知识。

上下文增强模型(Context-augmented models)

为了追求更高的质量和效率,神经模型可以从大型数据库或可训练的记忆库中的外部context中得到增强。

通过利用检索到的上下文,神经网络不需要在其内部参数中记忆大量的世界知识,就能够获得更好的参数效率、可解释性和真实性。

在「上下文增强语言建模的解耦上下文处理」一文中,研究人员探索了一种基于解耦编解码器架构将外部上下文合并到语言模型中的简单架构。

图片

论文链接:​https://arxiv.org/abs/2210.05758​

该模型能够显著地节省计算量,同时在自回归语言建模和开放领域问题回答任务方面给出了有竞争力的结果。

预训练的大语言模型(LLM)通过对大训练集的自监督消耗了大量的信息,但目前还不清楚这些模型的「世界知识」是如何与输入的context相互作用的。

图片

通过知识感知微调(knowledge aware fine-tuning, KAFT) ,研究人员将反事实上下文和无关上下文结合到标准的监督数据集中,增强了 LLM 的可控性和鲁棒性。

探索模块化深度网络的问题之一是如何设计具有相应计算模块的概念数据库,研究人员提出了一个理论架构,将「记忆事件」(remember events)以草图(sketches)的形式存储在一个外部 LSH 表中,其中包括一个pointers模块来处理草图。

上下文增强模型的另一个难题是从大型数据库中快速检索信息的加速器。

研究人员开发了一个基于 TPU 的最近邻搜索算法,该算法与 TPU 的性能模型保持一致,并为预期召回提供分析保证,从而达到最佳性能。

搜索算法通常涉及大量的超参数和设计选择,这使得它们很难在新任务上进行优化,所以研究人员进一步提出了一种新的约束优化算法来自动调整超参数,将期望的成本或召回作为输入,该算法产生的调整在经验上非常接近速度召回的Pareto frontier,并在标准基准上给出领先的性能。

混合专家模型

混合专家(MoE, Mixture-of-experts)模型已被证明是增加神经网络模型容量而不会过度增加其计算成本的有效手段。MoEs 的基本思想是从多个专家子网络中构建一个网络,其中每个输入由一个合适的专家子网络处理。

因此,与标准的神经网络相比,MoEs 只调用整个模型的一小部分,从而提高了语言模型应用程序(如 GLaM)的效率。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

图片

决定哪些专家应该被激活(be active)以参与到某一特定输入取决于路由功能(routing function),路由的设计非常具有挑战性,因为开发者的预期是每个专家模型都是恰如其分的,不会出现利用不足和过度的情况。

图片

在最近的一项工作中,研究人员提出了专家选择路由(Expert Choice Routing) ,一种新的路由机制,它不是将每个输入token分配给 top-k 专家,而是反过来将每个专家分配给 top-k token,可以自动调节专家的负载平衡,同时自然地允许多个专家处理输入token

图片

论文链接:​https://openreview.net/pdf?id=jdJo1HIVinI​

高效的Transformers

Transformer是当下最流行的序列到序列的模型,从视觉到自然语言的理解,在一系列具有挑战性的任务中已经展现了非常强大的性能。

这类模型的一个核心组成部分是注意力层(attention layer),通过计算「查询」(query)和「键」(key)之间的相似度来构建一个适当的「值」(value)加权组合。虽然性能强,但注意力机制的计算效率却不高,复杂度通常为输入序列长度的二次方。

随着Transformer规模的不断扩大,其中一个重要问题的研究十分有价值:是否有任何自然发生的结构或模式的学习模型,可以解了注意力有效的原理。

对此,Google Research研究了中间 MLP 层的学习嵌入,发现它们非常稀疏,比如,T5-大模型只有

图片

论文链接:​https://arxiv.org/pdf/2210.06313.pdf​

研究人员最近提出了 Treeformer模型,一种依赖于决策树的标准注意力计算的替代方案,直观地说,它可以快速识别与查询相关的一小部分键,并且只在这个集合上执行注意力操作。根据经验,Treeformer 可以使注意力层的 FLOP 减少30倍。

同时研究人员还引入了序贯注意( sequential attention),一种将注意和贪婪算法相结合的可微特征选择方法,该技术经过证明,可以直接无缝迁移到大规模模型。

另一种提升Transformer效率的方法是在注意层加速softmax的计算。

在low-rank approximation of the softmax kernel研究基础上,研究人员提出了一类新的随机特征,提供了softmax kernel的首个「positive and bounded」随机特征近似,并且在序列长度上是计算线性的。

图片

论文链接:​https://arxiv.org/abs/2205.15317​

并且还提出了首个涵盖多个注意力masking的机制,如因果编码和相对位置编码。

训练效率

有效的优化方法是现代机器学习应用的基石,在大规模环境中尤为重要。

在这种情况下,即使是像Adam这样的一阶自适应方法也往往需要大量的计算量,而且训练的稳定性也会变得非常困难。

此外,这些方法往往与神经网络的体系结构无关,没有考虑模型架构内的结构信息,导致训练效率低下,这也促使新技术能够更有效地优化现代神经网络模型。

Google Research开发了一些新的基于模型架构的训练技术,例如,用于训练Transofmre网络,包括新的规模不变的Transofmre网络和新的clipping方法,当与原版随机梯度下降(SGD)结合时,可以加快训练速度。

图片

论文链接:​https://arxiv.org/pdf/2202.00980.pdf​

使用这种方法,研究人员首次实现了仅使用简单的 SGD 就能有效地训练 BERT,而无需自适应(adaptivity)。

此外,研究人员提出了一种新的方法LocoProp,在使用与一阶优化器相同的计算和内存资源的情况下,获得类似于二阶优化器的性能。

LocoProp 通过将神经网络分解为一个层的组合,从而获得了神经网络的模块化视图。然后允许每一层都有自己的损失函数以及输出目标和重量调整器。通过这种设置,经过适当的向前向后梯度传递后,LocoProp 继续对每个层的「局部损失」执行并行更新。

图片

论文链接:​https://proceedings.mlr.press/v151/amid22a.html​

事实上,这些更新在理论上和经验上都类似于高阶优化器,在深度自编码器基准测试中,LocoProp 获得了与高阶优化器相当的性能,同时速度明显更快。

像 SGD 这样的优化器的一个关键假设是,每个数据点都是从一个分布中独立和完全相同地采样的,不过在强化学习等实际应用环境中,很难满足该假设,因为模型(或智能体)必须从根据自己的预测生成的数据中学习。

可图大模型 可图大模型

可图大模型(Kolors)是快手大模型团队自研打造的文生图AI大模型

可图大模型 32 查看详情 可图大模型

研究人员提出了一种新的算法方法,称为带有反向经验重放的 SGD,可以在线性动力系统(linear dynamical system)、非线性动力系统和强化学习的 Q 学习等几种情况下找到最优解。

图片

论文链接:​https://arxiv.org/abs/2103.05896​

此外,这种方法的一个改进版本IER ,经过实验被证明是最先进的,并且是各种流行的 RL 基准测试上最稳定的经验重播技术。

数据效率

深度神经网络严重依赖于大型数据集,随之而来的还有存储成本和潜在的安全/隐私问题,在这些数据集上训练现代深度神经网络也会带来很高的计算成本。

解决这个问题的一个有前景的方法是数据子集选择,其中学习器的目标是从大量的训练样本中找到信息量最大的子集,以接近(甚至改进)整个训练集的训练。

研究人员分析了一个子集选择框架设计工作与任意模型族在一个实际的batch设置,在这种设置下,学习器可以一次采样一个样本,访问上下文和真实标签,但为了限制开销,一旦选择了足够大的一批样本,只能更新其状态,即,进一步训练模型权重。

并基于此开发了一种称为 IWeS 的算法,该算法通过重要抽样来选择样本,其中分配给每个样本的抽样概率是基于对先前选定的批次训练的模型的熵。文中提供了一个理论分析,证明了泛化和抽样率的界限。

图片

论文链接:​https://arxiv.org/pdf/2301.12052.pdf​

训练大型网络的另一个问题是,它们可能对部署时看到的训练数据和数据之间的分布变化高度敏感,特别是在处理数量有限的训练数据时,这些数据可能不包括所有的部署时间情景。

最近的一项研究假设「极端简单性偏差」是神经网络这种脆弱性背后的关键问题,其最新工作使这一假设成为可行,导致了两种新的互补方法DAFT 和 FRR ,结合起来提供了显著更强大的神经网络。特别是,这两种方法使用对抗微调以及逆特征预测,提升了学习网络的健壮性。

图片

论文链接:​https://arxiv.org/pdf/2006.07710.pdf​

推理效率

增加神经网络的规模已被证明在提高其预测准确性方面有惊人的效果,然而,在现实世界中利用这些优势是具有挑战性的,因为大型模型的推理成本可能过高了,该问题也促使策略提高服务效率,而不牺牲准确性。

研究人员提出了实现该目标的不同策略,特别是基于知识蒸馏和自适应计算的策略。

蒸馏

蒸馏是一种简单而有效的模型压缩方法,极大地扩展了大型神经模型的潜在适用性,并且在广告推荐等一系列实际应用中被证明是非常有效的。

大多数蒸馏的用例都涉及到将基本模型直接应用到给定的领域,对于何时以及为什么应该这样做只有有限的理解。Google的研究着眼于根据特定的环境对蒸馏进行裁剪,并系统性地研究了决定蒸馏成功的因素。

在算法方面,通过仔细建模教师模型提供的标签中的噪声,研究人员开发了一个原则性的方法来重新加权的训练例子,和一个稳健的方法来抽样的数据子集有教师标签。

图片

论文链接:https://arxiv.org/abs/2210.06711

在「教师指导训练」的过程中,研究人员提出了一个新的蒸馏框架: 不是被动地使用教师来标注一个固定的数据集,而是主动地使用教师来指导信息样本的选择来进行标注,这使得蒸馏过程在有限的数据或长尾设置中更有效。

图片

论文链接:​https://arxiv.org/abs/2208.06825​

同时还研究了从交叉编码器(dual-encoder, 例如 BERT)到因子双编码器(dual-encoder)的新方法,这也是对(query, document)对的相关性进行评分的重要设置。

图片

论文链接:https://proceedings.mlr.press/v162/menon22a/menon22a.pdf

文中研究了交叉编码器和双重编码器之间性能差距的原因,指出这可能是泛化的结果,而非双编码器的容量限制。

精心构造的蒸馏损耗函数可以缓解这种情况,缩小交叉编码器和双编码器之间的性能差距。

随后,在 EmbedDistil进一步研究了通过匹配来自教师模型的嵌入来进一步改进双编码器精馏。该策略还可用于从大到小的双编码器模型中提取信息,继承和冻结教师的文档嵌入被证明是非常有效的。

图片

论文链接:​https://arxiv.org/abs/2301.12005​

在理论方面提供了一个新的视角,通过监督复杂性的蒸馏,衡量学生如何能够预测教师的标签。

图片

论文链接:​https://arxiv.org/abs/2301.12245​

利用神经正切核(NTK)理论得出了一些概念性的结论,比如,能力差距可能会影响蒸馏,因为这样的教师的标签可能出现类似于纯粹的随机标签的学生。

图片

论文链接:​https://arxiv.org/abs/2301.12923​

同时进一步证明,蒸馏导致学生欠拟合的点也是对于教师模型比较难的问题,从直觉上讲,这可能有助于学生将其有限的能力集中在那些可以合理建模的样本上。

自适应计算

虽然蒸馏是降低推理成本的有效方法,但它在所有样本中的作用是一致的(uniformly),直观地说,一些「简单」的样本可能本质上需要比相对更「难」样本更少的计算。

自适应计算的目标是设计能够进行这种依赖于样本的计算的机制。

Confident Adaptive Language Modeling(CALM)为 T5等基于Transformer的文本生成器引入了受控的早期退出功能。

图片

论文链接:​https://arxiv.org/abs/2207.07061​

在这种形式的自适应计算中,模型动态修改每个解码步骤使用的Transformer层数,其中early-exit gate使用带有决策阈值的置信度量,该置信度量经过校准以满足统计性能保证。

这样,模型只需要为最具挑战性的预测计算完整的解码器层堆栈,更简单的预测只需要计算几个解码器层。在实践中,该模型平均使用约三分之一的层进行预测,在保持同等水平的生成质量的同时,产生2-3倍的加速。

一个常用的自适应计算机制包括两个或多个基本模型的级联,其关键问题是决定是简单地使用当前模型的预测,还是将预测推迟到下游模型,学习何时推迟需要设计一个合适的损失函数,它可以利用适当的信号作为推迟决策的监督。

Google Research系统性地研究了现有的损失函数,证明由于标签平滑的隐式应用,它们可能不适合训练样本,文中还展示了可以通过延迟规则的事后训练来缓解这种情况,这种训练不需要以任何方式修改模型内部。

图片

论文链接:​https://openreview.net/pdf?id=_jg6Sf6tuF7​

对于检索应用程序,标准的语义搜索技术对大型模型生成的每个嵌入使用固定的表示,也就是说,不管下游任务及其相关的计算环境或约束,表示的大小和能力大多是固定的。

Matryoshka 表示学习引入了根据部署环境调整表示的灵活性,强制表示在它的坐标中有一个自然的排序,这样对于资源受限的环境,只使用表示的最高的几个坐标;而对于更丰富和精度关键的设置,可以使用表示的更多坐标。

图片

论文链接:​https://openreview.net/pdf?id=9njZa1fm35​

当结合标准近似最近邻搜索技术,如扫描神经网络,MRL 能够提供多达16倍的低计算相同的召回率和准确度量。

总结

大型机器学习模型在多个领域都展现出具有变革性的结果,但训练和推理的效率正在成为使这些模型在现实世界中切实可行的关键需求。

通过开发新的基础技术,Google Research已经在使大型机器学习模型高效方面进行了大量投资,这也需要持续性的努力,未来将继续探索核心挑战,使机器学习模型更加健壮和高效。

以上就是让大模型的训练和推理,比更快还更快!谷歌2022年终总结第四弹的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/568275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 04:34:21
下一篇 2025年11月10日 04:43:57

相关推荐

  • 如何用HTML插入标签云组件_HTML CSS3变换与随机颜色生成算法

    使用HTML构建标签结构,CSS3添加旋转与过渡效果,JavaScript生成随机HSL颜色并设置字体大小,实现动态交互的标签云组件。 要在网页中实现一个动态的标签云组件,结合 HTML、CSS3 变换和随机颜色生成算法,可以按照以下步骤操作。这个组件不仅能提升页面视觉效果,还能通过色彩和旋转增加交…

    2025年12月23日
    000
  • 如何在Go Gin应用中集成前端JavaScript模块(如Sentry)

    本文探讨了在Go Gin框架下,通过HTML模板服务前端页面时,如何有效集成JavaScript模块(如Sentry)。针对浏览器不直接支持Node.js模块导入语法的问题,文章详细阐述了利用CDN引入Sentry SDK的解决方案,并提供了具体的代码示例,帮助开发者实现前端错误监控功能,避免了复杂…

    2025年12月23日
    000
  • html官网浏览入口_html网站设计免费平台

    html官网浏览入口在https://www.codepen.io,该平台支持实时预览代码、创建Pen项目、Fork开源示例,可添加外部资源,具备点赞评论收藏等社区互动功能,设有挑战活动与作品集分类,开放API接口,界面简洁适合初学者,在线编写无需配置环境,支持多种预处理器和响应式测试。 html官…

    2025年12月23日
    000
  • html如何修改日期样式

    在html中,可以使用“::-webkit-datetime-edit”伪元素选择器来修改日期格式,只需要用该选择器选中元素,在设置具体样式即可,具体语法为“::-webkit-datetime-edit{属性:属性值}”。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月21日
    100
  • 单选框的type属性值为什么

    单选框的type属性值为“radio”。html type属性可以规定要显示的输入框“”元素的类型;值为“radio”时显示为单选框、“checkbox”时显示为复选框、“select”时显示为下拉式选框等等。 本教程操作环境:windows7系统、HTML5版、Dell G3电脑。 在HTML中,…

    2025年12月21日
    000
  • HTML中type是什么意思

    在HTML中,type是类型的意思,是一个标签属性,主要用于定义标签元素的类型或文档(脚本)的MIME类型;例在input标签中type属性可以规定input元素的类型,在script标签中type属性可以规定脚本的MIME类型。 本教程操作环境:windows7系统、html5版、Dell G3电…

    2025年12月21日
    000
  • HTML中ul标签如何去掉点?HTML无序列表的样式实例解析

    本篇文章主要讲述的是关于html中的ul标签的默认小点给取消掉,还有关于html的无序列表ul标签的样式解释,给出了ul标签中的type属性三种值的介绍。现在就让我们一起来看本篇文章吧 首先这篇文章一开始我们就开始介绍在html中是怎么把ul标签的点给去掉的: 大家应该都使用过ul无序列表标签,ul…

    2025年12月21日 好文分享
    000
  • html中的ol标签如何去掉标号呢?标签的使用方法总结

    本篇文章介绍了html的ol标签是怎么去掉序号标号的,这里还有代码的详细解释,还有介绍了关于html ol有序列表标签如何更改序号,下文介绍了三种序号,大家也可以自己去想填写怎样的序号。现在来看这篇文章吧 一、我们先看看html中的ol标签是如何去掉标号的呢: 我们都知道html的ol标签是个有序列…

    2025年12月21日 好文分享
    000
  • HTML ul标签的什么意思?HTML ul标签的作用详解

    本篇文章主要的为大家讲解了关于html ul标签的三种重要的用法,还有关于html ul标签的解释,包含li标签的还有type属性对ul标签的使用情况,好了,下面大家一起来看文章吧 首先让我们先来解释一下HTML ul标签的意思: ul标签定义的是表格当中无序列表,表格当中的无序列表都是在 标签之中…

    2025年12月21日
    000
  • html的盒模型详解

    这次给大家带来html的盒模型详解,使用html盒模型的注意事项有哪些,下面就是实战案例,一起来看一下。 1.1. 盒的内容区的尺寸— content width和content height —取决于几个因素: –生成该盒的元素是否设置了’width’或&#82…

    好文分享 2025年12月21日
    000
  • javascript框架和库是什么_如何选择React、Vue或Angular?

    JavaScript框架与库分别提供按需调用的功能集合和约束性开发结构;React是UI组件库,生态灵活但需自行整合工具;Vue渐进式易上手,兼顾原型与工程化;Angular是全功能TypeScript框架,适合强规范企业级项目。 JavaScript框架和库是封装好的代码集合,用来简化前端开发——…

    2025年12月21日
    000
  • React应用生产环境环境变量配置深度指南

    本文针对react应用在生产环境中无法读取`.env`文件配置的环境变量问题,深入剖析其工作原理、常见原因及排查方法。通过详细的步骤和示例代码,指导开发者正确配置和使用环境变量,解决api调用层面的`null`响应问题,确保应用在生产环境下的稳定运行。 在React应用开发中,环境变量(如API密钥…

    2025年12月21日
    000
  • JS注解怎么实现文档化_ JS注解生成开发文档的流程与工具

    JSDoc是一种JavaScript结构化注释规范,通过@param、@returns等标签描述代码元素,并借助工具生成HTML文档,结合IDE支持和CI/CD可提升团队协作效率。 JavaScript本身不支持原生注解(Annotation)像Java那样的语法,但通过约定的注释格式和配套工具,可…

    2025年12月21日
    000
  • JS注解怎么标注联合类型_ JS联合类型的注解书写与使用技巧

    在JavaScript中可通过JSDoc使用联合类型注解,如string|number表示多类型支持,结合@param、@typedef等标签提升代码可读性与编辑器提示,适用于函数参数、返回值等场景。 在JavaScript中,虽然原生不支持类型注解,但在使用JSDoc配合现代编辑器(如VS Cod…

    2025年12月21日
    000
  • VS Code主题开发:告别JSON,拥抱脚本化生成

    vs code主题扩展最终需json格式定义,但开发者可通过javascript或typescript等脚本语言生成此json文件。这种方法有效解决了大型json文件难以维护、不支持注释等问题,并能实现颜色动态计算,显著提升主题开发的灵活性与效率。 为什么选择脚本化生成VS Code主题? 在开发V…

    2025年12月20日
    000
  • 如何用Quasar框架开发一个跨平台应用?

    Quasar基于Vue.js用一套代码构建多平台应用,支持响应式网站、PWA、移动App和桌面应用。通过quasar create创建项目,利用模式(SPA、PWA、Electron等)切换目标平台,使用Quasar组件库编写通用UI,配合Pinia管理状态,最后通过不同构建命令发布到各平台,实现高…

    2025年12月20日
    000
  • 怎么利用JavaScript进行前端代码覆盖率统计?

    答案:利用JavaScript进行前端代码覆盖率统计的核心是通过Istanbul/nyc等工具对代码插桩,结合测试框架收集执行数据并生成报告。具体流程包括:在代码执行前通过Babel或Webpack插件(如babel-plugin-istanbul)插入计数器实现插桩;运行测试时记录哪些代码被执行;…

    2025年12月20日
    100
  • typescript中的参数分享

    TypeScript 中的参数共享允许组件间共享参数,实现跨组件状态维护和数据变更共享。通过 @Input 装饰器传递父组件参数,使用 @Output 装饰器定义子组件事件,以便在子组件状态改变时通知父组件。参数共享提高复用性,简化状态管理,允许子组件向父组件发出通知,但应谨慎使用,避免大量数据共享…

    2025年12月19日
    000
  • 手机如何运行typescript方法

    要在手机上运行 TypeScript 方法,可以使用 TypeScript 编译器或第三方库:TypeScript 编译器: 将 TypeScript 代码编译成 JavaScript,然后集成到移动应用程序中。第三方库: 如 React Native 或 NativeScript,允许使用 Typ…

    2025年12月19日
    000
  • typescript用来干嘛_typescript的作用

    TypeScript 是一种用于构建大型复杂应用程序的开源编程语言,它扩展了 JavaScript 的功能,具有以下作用:类型系统:编译时检查类型错误,提高代码可靠性。面向对象编程特性:支持类、接口、抽象类,增强代码组织性和维护性。模块系统:分解程序为可重用模块,提升可维护性和可扩展性。全面的类型推…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信