在bert4keras中使用混合精度和XLA加速训练
By 苏剑林 | 2022-04-28 | 27568位读者 | 引用之前笔者一直都是聚焦于模型的构思和实现,鲜有关注模型的训练加速,像混合精度和XLA这些技术,虽然也有听过,但没真正去实践过。这两天折腾了一番,成功在bert4keras中使用了混合精度和XLA来加速训练,在此做个简单的总结,供大家参考。
本文的多数经验结论并不只限于bert4keras中使用,之所以在标题中强调bert4keras,只不过bert4keras中的模型实现相对较为规整,因此启动这些加速技巧所要做的修改相对更少。
实验环境
本文的实验显卡为3090,使用的docker镜像为nvcr.io/nvidia/tensorflow:21.09-tf1-py3,其中自带的tensorflow版本为1.15.5。另外,实验所用的bert4keras版本为0.11.3。其他环境也可以参考着弄,要注意有折腾精神,不要指望着无脑调用。
顺便提一下,3090、A100等卡只能用cuda11,而tensorflow官网的1.15版本是不支持cuda11的,如果还想用tensorflow 1.x,那么只能用nvidia亲自维护的nvidia-tensorflow,或者用其构建的docker镜像。用nvidia而不是google维护的tensorflow,除了能让你在最新的显卡用上1.x版本外,还有nvidia专门做的一些额外优化,具体文档可以参考这里。
当BERT-whitening引入超参数:总有一款适合你
By 苏剑林 | 2022-05-18 | 40509位读者 | 引用在《你可能不需要BERT-flow:一个线性变换媲美BERT-flow》中,笔者提出了BERT-whitening,验证了一个线性变换就能媲美当时的SOTA方法BERT-flow。此外,BERT-whitening还可以对句向量进行降维,带来更低的内存占用和更快的检索速度。然而,在《无监督语义相似度哪家强?我们做了个比较全面的评测》中我们也发现,whitening操作并非总能带来提升,有些模型本身就很贴合任务(如经过有监督训练的SimBERT),那么额外的whitening操作往往会降低效果。
为了弥补这个不足,本文提出往BERT-whitening中引入了两个超参数,通过调节这两个超参数,我们几乎可以总是获得“降维不掉点”的结果。换句话说,即便是原来加上whitening后效果会下降的任务,如今也有机会在降维的同时获得相近甚至更好的效果了。
方法概要
目前BERT-whitening的流程是:
\begin{equation}\begin{aligned}
\tilde{\boldsymbol{x}}_i =&\, (\boldsymbol{x}_i - \boldsymbol{\mu})\boldsymbol{U}\boldsymbol{\Lambda}^{-1/2} \\
\boldsymbol{\mu} =&\, \frac{1}{N}\sum\limits_{i=1}^N \boldsymbol{x}_i \\
\boldsymbol{\Sigma} =&\, \frac{1}{N}\sum\limits_{i=1}^N (\boldsymbol{x}_i - \boldsymbol{\mu})^{\top}(\boldsymbol{x}_i - \boldsymbol{\mu}) = \boldsymbol{U}\boldsymbol{\Lambda}\boldsymbol{U}^{\top} \,\,(\text{SVD分解})
\end{aligned}\end{equation}
【个人翻译】变暖的地球对冷血动物来说过热?
By 苏剑林 | 2009-07-08 | 33502位读者 | 引用初中生活结束了(友谊地久天长)
By 苏剑林 | 2009-07-17 | 33213位读者 | 引用【NASA每日一图】本星系群远后方的星系
By 苏剑林 | 2009-09-20 | 20894位读者 | 引用爱恩斯坦的狭义相对论论文(中文/图片)
By 苏剑林 | 2009-11-07 | 30715位读者 | 引用说明:这篇文章是通过翻拍而来,请读者勿用于商业用途。如果原著作者(或者译者)认为此举侵犯了您的权利,请留言或者来信BoJone@Spaces.Ac.Cn告知,本人会尽快删除!
$$\begin{aligned}E=mc^2 \\ \sqrt{1-{v^2}/{c^2}}\end{aligned}$$
本文不是通用的相对论教程,适合已经有一定物理学基础的读者阅读。
相对论是关于时空和引力的基本理论,主要由阿尔伯特·爱因斯坦(Albert Einstein)创立,分为狭义相对论(特殊相对论)和广义相对论(一般相对论)。相对论的基本假设是相对性原理,即物理定律与参照系的选择无关。狭义相对论和广义相对论的区别是,前者讨论的是匀速直线运动的参照系(惯性参照系)之间的物理定律,后者则推广到具有加速度的参照系中(非惯性系),并在等效原理的假设下,广泛应用于引力场中。
你的CRF层的学习率可能不够大
By 苏剑林 | 2020-02-07 | 104912位读者 | 引用CRF是做序列标注的经典方法,它理论优雅,实际也很有效,如果还不了解CRF的读者欢迎阅读旧作《简明条件随机场CRF介绍(附带纯Keras实现)》。在BERT模型出来之后,也有不少工作探索了BERT+CRF用于序列标注任务的做法。然而,很多实验结果显示(比如论文《BERT Meets Chinese Word Segmentation》)不管是中文分词还是实体识别任务,相比于简单的BERT+Softmax,BERT+CRF似乎并没有带来什么提升,这跟传统的BiLSTM+CRF或CNN+CRF的模型表现并不一样。
这两天给bert4keras增加了用CRF做中文分词的例子(task_sequence_labeling_cws_crf.py),在调试过程中发现了CRF层可能存在学习不充分的问题,进一步做了几个对比实验,结果显示这可能是CRF在BERT中没什么提升的主要原因,遂在此记录一下分析过程,与大家分享。
《教材如何写》:我们需要怎样的数学教育?
By 苏剑林 | 2011-04-16 | 70521位读者 | 引用转载自:matrix67.com
注:这篇文章里有很多个人观点,带有极强的主观色彩。其中一些思想不见得是正确的,有一些话也是我没有资格说的。我只是想和大家分享一下自己的一些想法。大家记得保留自己的见解。也请大家转载时保留这段话。
我不是一个数学家。我甚至连数学专业的人都不是。我是一个纯粹打酱油的数学爱好者,只是比一般的爱好者更加执着,更加疯狂罢了。初中、高中一路保送,大学不在数学专业,这让我可以不以考试为目的地学习自己感兴趣的数学知识,让我对数学有如此浓厚的兴趣。从 05 年建立这个 Blog 以来,每看到一个惊人的结论或者美妙的证明,我再忙都会花时间把它记录下来,生怕自己忘掉。不过,我深知,这些令人拍案叫绝的雕虫小技其实根本谈不上数学之美,数学真正博大精深的思想我恐怕还不曾有半点体会。
我多次跟人说起,我的人生理想就是,希望有一天能学完数学中的各个分支,然后站在一个至高点,俯瞰整个数学领域,真正体会到数学之美。但是,想要实现这一点是很困难的。最大的困难就是缺少一个学习数学的途径。看课本?这就是我今天想说的——课本极其不靠谱。
最近评论