通过增加模型的大小来加速Transformer的训练和推理

2023-11-16

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Eric Wallace

编译:ronghuaiyang

导读

你没有看错,确实是通过增大模型的大小,大家别忘了,在训练的时候,有个隐含条件,那就是模型需要训练到收敛。

模型训练会很慢

在深度学习中,使用更多的计算(例如,增加模型大小、数据集大小或训练步骤)通常会导致更高的准确性。考虑到最近像BERT这样的无监督预训练方法的成功,这一点尤其正确,它可以将训练扩展到非常大的模型和数据集。不幸的是,大规模的训练在计算上非常昂贵的,尤其是在没有大型工业研究实验室的硬件资源的情况下。因此,在实践中,我们的目标通常是在不超出硬件预算和训练时间的情况下获得较高的准确性。

对于大多数训练预算,非常大的模型似乎不切实际。相反,最大限度提高训练效率的策略是使用隐藏节点数较小或层数量较少的模型,因为这些模型运行速度更快,使用的内存更少。

大模型训练的更快

然而,在我们的最近的论文中,我们表明这种减少模型大小的常见做法实际上与最佳的计算效率训练策略相反。相反,当在预算内训练Transformer模型时,你希望大幅度增加模型大小,但是早点停止训练。换句话说,我们重新思考了模型必须被训练直到收敛的隐含假设,展示了在牺牲收敛性的同时,有机会增加模型的大小。

这种现象发生的原因是,与较小的模型相比,较大的模型在较少的梯度更新中可以收敛于较低的测试误差。此外,这种收敛速度的提高超过了使用更大模型的额外计算成本。因此,在考虑训练时间时,较大的模型可以更快地获得更高的精度。

我们在下面的两条训练曲线中展示了这一趋势。在左侧,我们绘制了预训练的验证误差RoBERTa,这是BERT的一个变体。RoBERTa模型越深,其混乱度就越低(我们的论文表明,对于更宽的模型也是如此)。这一趋势也适用于机器翻译。在右侧,我们绘制了验证BLEU分数(越高越好),当训练一个英语到法语的Transformer机器翻译模型。在相同的训练时间下,深度和宽度模型比小模型获得更高的BLEU分数。

有趣的是,对于训练前的RoBERTa来说,增加模型的宽度和/或深度都会导致更快的训练。对于机器翻译,更宽的模型比更深的模型表现得更好。因此,我们建议在深入之前尝试增加宽度。

我们还建议增加模型大小,而不是batch size大小。具体地说,我们确认一旦batch size接近临界范围,增加batch size大小只会在训练时间上提供微小的改进。因此,在资源受限的情况下,我们建议在这个关键区域内使用batch size大小,然后使用更大的模型。

测试时间怎么办呢?

尽管更大的模型具有更高的“训练效率”,但它们也增加了“推理”的计算和内存需求。这是有问题的,因为推理的总成本远远大于大多数实际应用的训练成本。然而,对于RoBERTa来说,我们证明了这种取舍可以与模型压缩相协调。特别是,与小型模型相比,大型模型对模型压缩技术更健壮。因此,人们可以通过训练非常大的模型,然后对它们进行大量的压缩,从而达到两全其美的效果。

我们使用量化和剪枝的压缩方法。量化以低精度格式存储模型权重,修剪将某些神经网络的权值设置为零。这两种方法都可以减少推理延迟和存储模型权值的内存需求。

我们首先在相同的时间内预训练不同尺寸的RoBERTa模型。然后,我们在下游文本分类任务(MNLI)中对这些模型进行微调,并使用修剪或量化。我们发现,对于给定的测试时间预算,最好的模型是那些经过大量训练然后经过大量压缩的模型。

例如,考虑最深度模型的修剪结果(左图中的橙色曲线)。不需要修剪模型,它达到了很高的精度,但是使用了大约2亿个参数(因此需要大量的内存和计算)。但是,可以对这个模型进行大量的修剪(沿着曲线向左移动的点),而不会严重影响准确性。这与较小的模型形成了鲜明的对比,如粉红色显示的6层模型,其精度在修剪后严重下降。量化也有类似的趋势(下图)。总的来说,对于大多数测试预算(在x轴上选择一个点)来说,最好的模型是非常大但是高度压缩的模型。

总结

我们已经证明了增加Transformer模型的大小可以提高训练和推理的效率,即,应该先“大模型训练”,然后再“压缩”。这一发现引出了许多其他有趣的问题,比如为什么大的模型收敛得更快,压缩得更好。在我们的论文中,我们对这一现象进行了初步的调查,然而,未来的工作仍然是需要的。此外,我们的发现目前是NLP领域独特的 —— 我们想探索如何将这些结论推广到其他领域,如计算机视觉。

论文:“Train Large, Then Compress: Rethinking Model Size for Efficient Training and Inference of Transformers”

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

—END—

英文原文:https://bair.berkeley.edu/blog/2020/03/05/compress/

请长按或扫描二维码关注本公众号

喜欢的话,请给我个好看吧

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过增加模型的大小来加速Transformer的训练和推理 的相关文章

  • java中 ‘\b‘ 回退符的使用

    退格符 b b是退格符的意思 将光标回退一个字符的位置 可以结合空白字符使用达到类似删除的效果 1 回退符 b 后面没有内容 的情况 原样输出 回退符 b后面 没有内容 则原样输出 System out println x b x 回退符后
  • FPN(Feature Pyramid Networks)网络学习

    1 FPN在MASK R CNN中 从上图可以看到 FPN在MASK R CNN中主要是应用于Featue Maps的输出 但是FPN却不是MASK R CNN所独有的 FPN是一个独立的网络 即有无FPN都可以输出Feature Maps
  • 为什么linux kernel默认的页面大小是4K,而不是4M或8M?

    相信很多人在看内核内存管理部分的时候 都有这样一个疑问 为什么物理页面的大小选择4K 而不是大一些或者小一些呢 这个问题没有固定的答案 仁者见仁智者见智 每个人的关注点不一样 所以这篇文章不是说给出一个固定的答案 更多的只是一篇讨论性的文章
  • IDEA打开一个项目时,idea左侧project模式下,不显示项目工程目录的解决方法

    在IDEA打开一个一个已有的项目chapter3时 idea左侧project模式下 左侧也没有project按钮 如下问题截图 ps 项目结构可以显示 但是src等目录不见 在网上查了一些方法 1 解决办法 方法1 找到 出错位置 修复
  • CV01-语义分割笔记和两个模型VGG & ResNet的笔记

    目录 一 语义分割 二 VGG模型 2 1 VGG特征提取部分 2 2 VGG图像分类部分 三 ResNet模型 3 1 为什么是ResNet 3 2 1 1卷积调整channel维度大小 3 3 ResNet里的BottleNeck 3
  • Mac 使用终端彻底格式化U盘

    最近U盘不知道怎么回事中毒了 不管是格式化 还是使用DiskGenius删除分区格式化都不好使 火绒等杀毒软件也败下阵来 于是高人指点 在Mac 下 用 zero 彻底覆盖所有扇区 好用了 膜拜 学习 1 插入U盘 看当前是disk几 使用
  • Altium Designer使用-----芯片焊盘之间的距离规则设定(AD6.9)

    设计 规则 Clearance 新建新规则 PadToPad 第一对象 高级的 询问 询问构建者 条件类型 Object Kind is 条件值 Pad 确定 第二对象 高级的 询问 询问构建者 条件类型 Object Kind is 条件
  • 逻辑回归中的损失函数的解释

    1 Logistic Regression 逻辑回归 逻辑回归是机器学习中的一个非常常见的模型 逻辑回归模型其实仅在线性回归的基础上 套用了一个逻辑函数 逻辑回归可以看做是两步 第一步和线性回归模型的形式相同 即一个关于输入x的线性函数 第
  • java有趣的技术分享ppt_【干货分享】盘点2020年流行的五大Java技术

    Java作为编程语言的老大 在编程语言排行榜一直占据前三地位 受到众多编程爱好者的追捧 再加上Java语言在各个领域的开发应用和高于其他行业的薪资待遇 使它成为许多零基础学习者的首选编程语言 为了帮助更多Java初学者 下面小编就和大家分享
  • 挑战利用ChatGPT写代码,真的能成功吗?

    使用姿势 1 由于ChatGPT的注册门槛较高 国内很多网站都是付费的或者有各种限制 我在 多御浏览器 中使用 无需注册就能免费体验ChatGPT 2 使用ChatGPT4 我的问题有些口水文 但是它依然能懂 设计一个表 支持树形结构 可以
  • VR原理讲解及开发入门

    本文是作者obuil根据多年心得专门为想要入门的VR开发者所写 由52VR网站提供支持 1 VR沉浸感和交互作用产生的原理 在之前 我们观看一个虚拟的创造内容是通过平面显示器的 52VR上次发布过一篇文章 一张图让你认识VR 在其中 你会看
  • python 安装scrapy是报错 building 'twisted.test.raiser' extension error: Microsoft Visual C++ 14.0 is req

    问题描述 在win7下 python 3 7 3 64位 在windows下 在dos中运行pip install Scrapy报错 building twisted test raiser extension error Microsof
  • 集群服务器安装时间同步服务(chrony)

    摘要 服务器之间的时间需要同步 但并不是所有机器可以直接连外网 这时可以用Chrony工具解决 解决方法是将其中一台设为时间服务器 然后其它服务器和这台时间服务器同步即可 chrony是两个用来维持计算机系统时钟准确性的程序 这两个程序命名
  • 表单页面美化(html、css)

    表单页面美化 html css 效果图片 实现代码 html部分就是平常的输入框 div class mainfont h1 在线预约 h1 div div class form div
  • OSW

    OSWatcher 工具 下载文档 Metalink Doc ID 301137 1 Oswatcher 主要用于监控主机资源 如CPU 内存 网络以及私有网络等 其中私有网络需要单独配置 需要说明的执行OSWatcher用户需要常见OS
  • 密码学概述

    一 密码学的起源与发展 密码学英文名称为Cryptography 密码学最为一门学科 是最近几十年开始迅速被人们重视和发展起来的 密码学往往与信息安全四个字精密的联系着 最早的密码学的 始祖 可以说是早在公元前几百年就已经出现了 当然 当时
  • 使用JDWP远程debug

    JDWP JDWP是Java Debug Wire Protocol 的缩写 它 定义了调试器 debugger 和被调试的Java虚拟机 target vm 之间的通信协议 SpringBoot debug 1 springboot框架搭
  • detr复现

    https github com IDEA Research detrex 先跑通 相关原理和代码后续解读
  • springboot不同版本整合elasticsearch

    使用springboot整合elasticsearch时候 需要注意版本的对应关系 不然问题会非常多 对应关系如下 springboot2 1整合 elasticsearch的两个方式 通过spring data es springboot
  • Typora软件下载与安装及使用技巧(保姆式教学)

    Typora的下载安装 当前 Typora 是一款支持实时预览的 Markdown 文本编辑器 深受广大程序员的喜爱 简洁明了 方便操作 下面来讲一下它的详细下载安装过程叭 下载安装过程 Typora的下载官网 https typoraio

随机推荐

  • 微信小程序云开发上传图片无法预览显示

    这是图片无法预览显示的情况 而且文件格式显示也不显示为图片格式 不要忘记要在起完名字后加上你希望的图片格式后缀名 加完之后就可以正常显示了
  • Linux链接脚本lds概述

    一 概论 ld 用来把一定量的目标文件跟档案文件链接在一起 并重新定位它们的数据 链接符号引用 一般编译一个程序时 最后一步就是运行ld进行链接 每一个链接过程都由链接脚本 linker script 一般以lds作为文件的后缀名 控制 链
  • 说说你对Object.defineProperty()的理解

    代码在最后 定义 Object defineProperty 方法会直接在一个对象上定义一个新属性 或者修改一个对象的现有属性 并返回此对象 Object defineProperty obj prop descriptor obj 要定义
  • Python糖尿病人预测是否患癌症

    Python糖尿病人预测是否患癌症 统计回归分析的任务 就在于根据x1 x2 x3 xp线性回归和Y的观察值 去估计函数f 寻求变量之间近似的函数关系 我们常用的是 假定f函数的数学形式已知 其中若干个参数未知的观察值去估计未知的参数值 这
  • 网马解密初级篇

    一 网页挂马的概念 网页挂马是指 在获取网站或者网站服务器的部分或者全部权限后 在网页文件中插入一段恶意代码 这些恶意代码主要是一些包括IE等漏洞利用代码 用户访问被挂马的页面时 如果系统没有更新恶意代码中利用的漏洞补丁 则会执行恶意代码程
  • nodejs egg框架统一错误信息返回封装

    use strict app middleware error handler js module exports gt return async function errorHandler ctx next try await next
  • ubuntu内网安装软件

    在生产环境中很少有连接外网的服务器 这里以ansible内网安装为例来介绍 1 安装ansible 有外网 1 ansible的安装包存在于ansible的PPA中 如果要下载PPA 个人软件包存档 就必须要使用apt add reposi
  • C++三角函数计算及弧度制角度制转换

    c 中所有三角函数计算里都是弧度制 用acos算出的弧度t转化为角度的时候 需要t 180 Pi 相对应的 角度换弧度需要t Pi 180 反三角函数 double acos double asin double atan
  • linux怎么看sdb1里面的文件,linux – 什么是sda,sdb,dm-0,dm-1的文档

    如果我运行iostat 我得到了 sda0 sda1 我知道那些是 硬盘 那么有dm 0 dm 1 我想查看文档 我的mount命令也显示了这个 dev mapper VolGroup lv root ext4 usrjquota quot
  • 数据库系统概论(章节重点)

    单词错误 有些地方说的也不是很严谨 大家稍微参考一下即可 祝大家期末顺利 数据库考试重点 题型 30分客观题 20选择10填空或反过来 覆盖面大 关系代数 70分主观题 简答 4 6个理论部分例如简述数据库设计步骤 编程 20 30分 设计
  • input的onchange事件实际触发条件与解决方法

    input中onchange事件已经属于元老级别了 并且现在同onclick一样使用频率很高 然而onchange的机制实际上有很多童鞋并不清楚 我们通过实例来分析这个事件的特征 触发onchange 首先页面有一个input标签 并且已绑
  • python 多线程 线程池的四种实现方式

    python 线程池的四种实现方式 线程简述 一个程序运行起来后 一定有一个执行代码的东西 这个东西就是线程 一般计算 CPU 密集型任务适合多进程 IO密集型任务适合多线程 一个进程可拥有多个并行的 concurrent 线程 当中每一个
  • 【转】开发基于ASP.NET WebService的图片验证码服务

    原文地址 http www webjx com htmldata 2006 01 21 1137824356 html 最近 工作中接到一项任务 开发一个页面验证码功能 查阅了一些网上的资料 并结合以前的绘图方面的知识 实现了如下的解决方案
  • CodeFun如期而至

    背景 将设计稿转代码是前端工程师日常不断重复的工作 这部分工作复杂度较低但工作占比较高 往往又比较枯燥繁琐 有时候开发迭代周期短 静态页面又多 常常让有些前端开发苦不堪言 那么 有没有一款设计稿自动生成代码的工具 减少前端工程师的工作量 提
  • node.js

    node js 关于报错及解决方案 问题一 问题二 问题三 一 Node js基础 1 认识Node js 2 开发环境搭建 3 模块 包 commonJS 4 Npm Yarn 5 内置模块 6 路由 二 Express 1 特色 2 安
  • hadoop 学习笔记

    基于hadoop的贝叶斯文本分类器实现过程 贝叶斯基础理论 这个东西的项目概览 对这个工程总体的流程可以参考这个文献里面的做法即可 参考文献1 远程原件目录 user coderlau input hadoop文件系统命令行主要是hdfs
  • android 电视安装apk文件夹,智能电视无法识别apk文件怎么办?简单几招教你搞定...

    在双十一购买完智能电视后 安装自己喜欢的软件 或许是在正常不过的事情了 但有时候我们会碰到一些APK无法识别 这个时候还以为会认为自己买的是假货 但实际上 这并不是电视的问题 而今天小编就教大家 一旦碰倒APK无法识别时应该如何解决 帮助你
  • 常用语言单元测试框架入门

    本文主要介绍Python java go C OC常用单元测试框架 用于了解各种语言单测 一 python单元测试Pytest 1 Pytest主要功能 pytest是python的一种单元测试框架 同自带的Unittest测试框架类似 相
  • 2023 最新互联网大厂Java面经分享:25 分类、1000 道 Java 面试真题(50w 字解析)

    作为 Java 程序员 选择学习什么样的技术 什么技术该不该学 去招聘网站上搜一搜 看看岗位要求就十分清楚了 自己具备的技术和能力 直接影响到你工作选择范围和能不能面试成功 如果想进大厂 那就需要在 Java 核心技术栈上面好好准备了 具体
  • 通过增加模型的大小来加速Transformer的训练和推理

    点击上方 AI公园 关注公众号 选择加 星标 或 置顶 作者 Eric Wallace 编译 ronghuaiyang 导读 你没有看错 确实是通过增大模型的大小 大家别忘了 在训练的时候 有个隐含条件 那就是模型需要训练到收敛 模型训练会