如何自动搜出更好、更小、更快的NLP模型?(二)

简介: 最近读了不少神经架构搜索(NAS)的论文,把NAS的整体脉络大致摸清了。但是也发现了NAS目前还是用在CV领域居多,NLP领域和移动端优化寥寥无几。因此这里分享几篇NLP或者移动端上的NAS论文。

实验


image.pngimage.pngimage.png相同延时的情况下效果会好很多。搜出结构之后再finetune会更好。搜出结构后从头train效果很差,说明pretrain的weight是有用的。

评价


移动端部署很好用,只需要train一次,速度非常快,progressive shrinking解决了多个子网络互相影响的问题。

HAT

「[ACL 20] HAT: Hardware Aware Transformers for Efficient Natural Language Processing」

动机


Transfomer部署到不同终端,NAS费时费钱。

方法


其实就是把OFA照搬到Transformer上,这里连progressive shrinking都没用,直接uniform采样,貌似也没有用不同size的模型联合训练。

实验


image.png

评价


我感觉相比于OFA创新很小,就是设计了一下Transformer的搜索空间,其他基本差不多。

后记


目前看来,AMC、OFA和HAT是之后可以尝试的工作。

如果想不改变结构,单纯通过剪枝压缩的话,可以尝试用AMC在相同压缩率或延时的情况下达到更好的效果。

而如果想要更深一步优化延时和压缩率,可以尝试OFA的方法,这种方法只需要train一次超网络,训练过程中采用技巧防止子网络性能互相影响即可。最后针对不同设备直接搜出最优结构就行了,不需要在评估过程中重新训练。因此速度非常快,也很方便。

OFA和HAT的代码也都开源了,可以按照教程试一试,我试了在ImageNet上搜出一个比较好的模型还是非常快的。不考虑pretrain的时间,对于每个设备只需要几十秒就搜出来了。

「OFA:」

https://github.com/mit-han-lab/once-for-all

「HAT:」

https://github.com/mit-han-lab/hardware-aware-transformers

此外AMC也有两个很nice的工具包都集成进去了:

「Intel:」

https://github.com/IntelLabs/distiller/tree/master/examples/auto_compression/amc

「MicroSoft:」

https://github.com/microsoft/nni/tree/master/examples/model_compress/amc

image.png

作者简介:godweiyang知乎同名华东师范大学计算机本硕,字节跳动算法工程师,研究方向句法分析、机器翻译、模型压缩

相关文章
|
2月前
|
自然语言处理 索引
大模型开发: 解释自然语言处理(NLP)中的词嵌入。
**词嵌入技术在NLP中将文本转为数值表示,捕获词汇的语义和语法关系。过程包括:词汇索引、训练嵌入矩阵(如Word2Vec、GloVe、BERT)、文本向量化及向量输入到NLP模型(如情感分析、命名实体识别)。词嵌入是连接文本与机器理解的关键桥梁。**
32 2
|
10天前
|
JSON 自然语言处理 API
|
4月前
|
人工智能 自然语言处理 运维
NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
|
14天前
|
机器学习/深度学习 自然语言处理 数据可视化
【数据分享】R语言对airbnb数据nlp文本挖掘、地理、词云可视化、回归GAM模型、交叉验证分析
【数据分享】R语言对airbnb数据nlp文本挖掘、地理、词云可视化、回归GAM模型、交叉验证分析
|
15天前
|
机器学习/深度学习 自然语言处理 算法框架/工具
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译
|
15天前
|
人工智能 自然语言处理 Python
使用Python实现自然语言处理模型
使用Python实现自然语言处理模型
15 1
|
3月前
|
机器学习/深度学习 自然语言处理 算法
大模型在自然语言处理中的应用
大模型在自然语言处理中的应用
86 1
|
3月前
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
|
4月前
|
机器学习/深度学习 数据采集 人工智能
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
|
4月前
|
机器学习/深度学习 自然语言处理 搜索推荐
AIGC核心技术——自然语言处理(NLP)预训练大模型
【1月更文挑战第13天】AIGC核心技术——自然语言处理(NLP)预训练大模型
132 1
AIGC核心技术——自然语言处理(NLP)预训练大模型