深度学习模型之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…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
