深度学习模型之BERT的24个小模型源码与预训练紧凑模型的重要性
原始信息
- 论文: Well-Read Students Learn Better: On the Importance of Pre-training Compact Models
- 作者:Iulia Turc, Ming-Wei Chang, Kenton Lee, Kristina Toutanova
- 地址:arxiv.org/pdf/1908.08…
- 中文:阅读良好的学生学得更好:关于预训练紧凑模型的重要性
- 源码:见
微小BERT模型的源码地址
章节
目前24个较小的BERT模型的发布版本,现在只有英语,采用WordPiece掩码。
笔者翻译水平有限,有误之处请指正,万分感激。
摘要
自然语言表征模型的最新发展伴随着庞大而昂贵的模型,这些模型通过自监督的预训练的方式来利于通用领域文本。 由于应用此模型的下任务的成本,关于预训练的语言表征模型的几个压缩技术已经被提及(Sun等.,2019a;Sanh,2019) 。 然而,令人惊讶的是仅预先训练和微调紧凑型模型的简单基线已经被忽视。 在文本中,我们首先展示了较小体系架构中保留预训练的重要性,而且微调预先训练的紧凑模型可以与并行工作中提出的更精细的方法相竞争。 从预训练凑型模型开始,我们将探索通过标准知识提取从大的微调模型中转移任务知识,由此产生的简单、有效且通用的算,将给预训练提取带来更多的提升。通过广泛的实验,我们更加普遍的探索了在两个研究不足的变量(模型大小与未标记任务的数据属性)下在预训练与提取之间的相互作用。我们有一个让人吃惊的发现,即使是按序给相同的数据,他们仍然会产生复合效应。为了加快未来的研究,我们公开了24个预训练的微小BERT模型.
介绍
在通用领域文本语料库上的自监督学习,最终任务学习是实现基于深度和广度Transforme网络的两阶段训练方法(Vaswani等.,2017)来促进语言理解(Devlin等,2018;Sun等,019b;Sun等,2019b;Liu等,2019)。然而,最先进的模型有数亿个参数,计算成本很高。我们的目标是在有限的内存和延迟预算下有收获。我们寻求一个性能良好,通用且简单的训练方法,能够利用额外的资源,例如未标记的任务数据。
在考虑压缩技术之前,我们先从以下问题开始:我们能使用同样的两阶段方法训练较小模型么?换一句话说,我们探索了将语言模型预训练和任务微调直接应用于紧凑模型的想法。到目前为止,这个简单的基线一直被NLP社区所忽视,这可能潜在于这样的一个假设,当焦点集中在最终任务而不是通用语言模型的目标时有限能力的紧凑模型会得到更好的资本化。与我们一起提出了标准预训练+微调程序的变体的也有,但通用性有限(Sun等人,2019a;Sanh,2019)。我们惊喜的发现,在最初的公式中进行预训练+微调是构建紧凑模型的一种有竞争力的方法。
从这里开始,我们把它称为预训练提取(PD) 如上图。PD优于预训练+微调(PF)基线,尤其是在存在用于蒸馏的大转移集的情况下。特别是在提取大型转移设置的情况下。 在一项对照研究中,遵循并行工作中的数据和模型架构设置,我们展示了预训练蒸馏优于或具有更精细方法的竞争力,这些方法使用更复杂的任务知识提取(Sun等,2019a)或从未标记文本中进行更复杂的预训练(Sanh,2019)时。前者从中级教师激活中提取任务知识,从启发式初始化的学生开始。后者在更大的LM教师的帮助下,对在未标记文本上预先训练的紧凑模型进行微调。
本论文中最值得注意的贡献之一是:就预训练提取及其基线在各种条件下的表现 进行了广泛的实验。我们调查先前工作中研究不足的两个要点:模型大小和未标记数据的数量/质量。在对24个不同尺寸(4m至110m参数)的模型进行实验时深度/宽度的权衡,我们观察到,经过预训练的学生更好地利用深度而非宽度,这个属性对于随机初始化的模型是不可见的。对于第二点,我们改变了未标记数据的数量,以及它与标记集的相似性。有趣的是,预训练的取比标准提取对传递集中的这些变化更具鲁棒性。
最后,为了深入了解LM预训练和任务特定提取之间的相互作用,我们在同一数据集上依次进行了这些操作。在这个实验中,尽管单个操作数据集用于这两个步骤,这种复合效应令人惊讶,表明预训练和蒸馏是学习数据的互补方面。在这个实验中,尽管两个步骤都使用了单个数据集,但这两个操作链接起来的性能比单独应用的任何一个都要好。这种复合效应令人惊讶,表明预训练和提取是学习数据的互补方面。
结论
我们进行了大量的实验,以了解知识提炼和预训练+微调算法是如何单独工作的,以及它们如何交互。我们发现他们好处的复合,并且揭示训练训提取的力量。 这是一种简单且有效的方法,可以最大限度的利于可用:一个强大的老师,复合数据源(他们的好处是复合的,并揭示了预训练蒸馏的力量,这是一种简单而有效的方法,可以最大限度地利用所有可用的资源:一个强大的老师,以及多个数据源(标记集、未标记转移集和未标记LM集)。
章节说明
- INTRODUCTION:介绍(已译)
- PROBLEM STATEMENT:问题描述
- PRE-TRAINED DISTILLATION:预训练提取
- COMPARISON TO CONCURRENT WORK:与并行工作的比较
- ANALYSIS SETTINGS:配置分析
- ANALYSIS:实验分析
- RELATED WORK: 相关工作
- CONCLUSION:结论(已译)
微小BERT模型的源码地址
H=128 | H=256 | H=512 | H=768 | |
---|---|---|---|---|
L=2 | 2/128 (BERT-Tiny) | 2/256 | 2/512 | 2/768 |
L=4 | 4/128 | 4/256 (BERT-Mini) | 4/512 (BERT-Small) | 4/768 |
L=6 | 6/128 | 6/512 | 2/512 | 6/768 |
L=8 | 8/128 | 8/256 | 8/512 (BERT-Medium) | 8/768 |
L=10 | 10/128 | 10/256 | 10/512 | 10/768 |
L=12 | 12/128 | 12/256 | 12/512 | - |
GLUE分数
相关阅读
深度学习经典模型之BERT(上)
深度学习经典模型之BERT(下)
[参考]
- 见原论文
- 部分数据来源于官方源码站 github.com/google-rese…
如果您也对AI大模型感兴趣想学习却苦于没有方向👀
小编给自己收藏整理好的学习资料分享出来给大家💖
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码关注免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉如何学习AI大模型?👈
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
相关文章:

深度学习模型之BERT的24个小模型源码与预训练紧凑模型的重要性
原始信息 论文: Well-Read Students Learn Better: On the Importance of Pre-training Compact Models作者:Iulia Turc, Ming-Wei Chang, Kenton Lee, Kristina Toutanova地址:arxiv.org/pdf/1908.08…中文:阅读良好的学生学得更…...

【HarmonyOS】深入理解@Observed装饰器和@ObjectLink装饰器:嵌套类对象属性变化
【HarmonyOS】深入理解Observed装饰器和ObjectLink装饰器:嵌套类对象属性变化 前言 之前就Observed和ObjectLink写过一篇讲解博客【HarmonyOS】 多层嵌套对象通过ObjectLink和Observed实现渲染更新处理! 其中就Observe监听类的使用,Object…...

Java笔试面试题AI答之设计模式(1)
文章目录 1. 简述什么是设计模式 ?2. 叙述常见Java设计模式分类 ?3. Java 设计模式的六大原则 ?4. 简述对 MVC 的理解, MVC 有什么优缺点?MVC 的三个核心部分:MVC 的优点:MVC 的缺点:…...
java调用opencv部署到centos7
1、官网下载opencv https://opencv.org/releases/ 2、下载opencv并解压 unzip opencv-3.4.7.zip cd opencv-3.4.7 mkdir build cd build/ 3、安装cmake yum remove cmake -y ; yum install -y gcc gcc-c make automake openssl openssl-devel wget https://cmake.org/files/…...
【python qdrant 向量数据库 完整示例代码】
测试一下python版本的dqrant向量数据库的效果,完整代码如下: 安装库 !pip install qdrant-client>1.1.1 !pip install -U sentence-transformers导入 from qdrant_client import models, QdrantClient from sentence_transformers import SentenceT…...

初识C语言(三)
感兴趣的朋友们可以留个关注,我们共同交流,相互促进学习。 文章目录 前言 八、函数 九、数组 (1)数组的定义 (2)数组的下标和使用 十、操作符 (1)算数操作符 (2ÿ…...

用通义灵码如何快速合理解决遗留代码问题?
本文首先介绍了遗留代码的概念,并对遗留代码进行了分类。针对不同类型的遗留代码,提供了相应的处理策略。此外,本文重点介绍了通义灵码在维护遗留代码过程中能提供哪些支持。 什么是遗留代码 与过时技术相关的代码: 与不再受支持的…...

新书推荐——《Python贝叶斯深度学习》
在过去的十年中,机器学习领域取得了长足的进步,并因此激发了公众的想象力。但我们必须记住,尽管这些算法令人印象深刻,但它们并非完美无缺。本书旨在通过平实的语言介绍如何在深度学习中利用贝叶斯推理,帮助读者掌握开…...

数据结构-3.1.栈的基本概念
一.栈的定义: 栈和线性表的区别:栈只能在表尾一端进行插入或者删除的操作,而线性表可以在任意一个地方进行插入或者删除 二.有关栈的关键术语: 三.栈的基本操作: 1.回顾线性表的基本操作: 2.栈的基本操作&…...

关于 NLP 应用方向与深度训练的核心流程
文章目录 主流应用方向核心流程(5步)1.选定语言模型结构2.收集标注数据3.forward 正向传播4.backward 反向传播5.使用模型预测真实场景 主流应用方向 文本分类文本匹配序列标注生成式任务 核心流程(5步) 基本流程实现的先后顺序…...
linux如何启用ipv6随机地址
简介 在 IPv6 中,临时随机地址(Temporary IPv6 Address)是一种为了提高隐私和安全而设计的功能。通常,默认的 IPv6 地址是基于设备的 MAC 地址生成的,容易导致跟踪和识别设备。启用临时 IPv6 地址可以避免这个问题&am…...
探索 Android DataBinding:实现数据与视图的完美融合
在 Android 开发中,数据与视图的交互一直是一个关键的问题。为了更好地实现数据的展示和更新,Google 推出了 DataBinding 库,它为开发者提供了一种简洁、高效的方式来处理数据与视图之间的绑定关系,大大提高了开发效率和代码的可读…...
Java 编码系列:线程基础与最佳实践
引言 在多任务处理和并发编程中,线程是不可或缺的一部分。Java 提供了丰富的线程管理和并发控制机制,使得开发者可以轻松地实现多线程应用。本文将深入探讨 Java 线程的基础知识,包括 Thread 类、Runnable 接口、Callable 接口以及线程的生命…...

《深度学习》—— ResNet 残差神经网络
文章目录 一、什么是ResNet?二、残差结构(Residual Structure)三、Batch Normalization(BN----批归一化) 一、什么是ResNet? ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获…...

针对考研的C语言学习(定制化快速掌握重点3)
1.数组常见错误 数组传参实际传递的是数组的起始地址,若在函数中改变数组内容,数组本身也会发生变化 #include<stdio.h> void change_ch(char* str) {str[0] H; } int main() {char ch[] "hello";change_ch(ch);printf("%s\n&q…...

pikachu XXE(XML外部实体注入)通关
靶场:pikachu 环境: 系统:Windows10 服务器:PHPstudy2018 靶场:pikachu 关卡提示说:这是一个接收xml数据的api 常用的Payload 回显 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY …...
shell脚本定时任务通知到钉钉
shell脚本定时任务通知到钉钉 1、背景 前两天看了一下定时任务,垃圾清理、日志相关、系统巡检这些,有的服务器运行就有问题,或者不运行,正好最近在做运维标准重制运维手册,顺便把自动化这块优化一下,所…...

2.4K star的GOT-OCR2.0:端到端OCR 模型
GOT-OCR2.0是一款新一代的光学字符识别(OCR)技术,标志着人工智能在文本识别领域的重大进步。作为一款开源模型,GOT-OCR2.0不仅支持传统的文本和文档识别,还能够处理乐谱、图表以及复杂的数学公式,为用户提供…...

【JavaEE】——线程的安全问题和解决方式
阿华代码,不是逆风,就是我疯,你们的点赞收藏是我前进最大的动力!!希望本文内容能够帮助到你! 目录 一:问题引入 二:问题深入 1:举例说明 2:图解双线程计算…...

初步认识了解分布式系统
背景认识:我们要学习redis,还是得了解一下什么是分布式。为什么呢?因为redis只有在分布式系统中才能发挥它最大的作用,也就是领域展开,所以接下来我们就简单过一下什么是分布式系统 一些术语认识: &#x…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
如何为服务器生成TLS证书
TLS(Transport Layer Security)证书是确保网络通信安全的重要手段,它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书,可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Psychopy音频的使用
Psychopy音频的使用 本文主要解决以下问题: 指定音频引擎与设备;播放音频文件 本文所使用的环境: Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
PAN/FPN
import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...