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

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

前言


最近读了不少神经架构搜索(NAS)的论文,把NAS的整体脉络大致摸清了。

但是也发现了NAS目前还是用在CV领域居多,NLP领域和移动端优化寥寥无几。因此这里分享几篇NLP或者移动端上的NAS论文。

刚入门,很多不懂,理解有误或者有更多推荐的相关论文都可以评论区留言。

AMC

「[ECCV 18] AMC: AutoML for Model Compression and Acceleration on Mobile Devices」

动机


以往的压缩策略或者说剪枝率都是人工调的,而本文提出了一直基于强化学习的剪枝方法,每层剪枝率可以单独调。

方法


image.png从最下面一层开始,编码整个网络的状态。然后用强化学习生成下一层的剪枝率,更新状态。最后的reward可以是压缩率、延时、FLOPs等等。actor用的是DDPG,action定义为(0, 1]之间的稀疏率。image.png上面是剪枝和状态更新过程。

应用场景分为两种,一种是资源受限条件下寻找效果最高的模型,这种情况reward就直接定义为效果就行了,而资源的限制设定在了action空间里,就是上图伪代码做的事情。另一种是效果不变的情况下,压缩的尽量小,这种情况就要改reward,本文设定为了 ,这里改成FLOPs也是可以的,因为参数量前面加了,所以参数量的下降产生的奖励非常小,这就能一定程度上防止效果下降过多。延时的话本文认为和FLOPs基本正相关,因此直接优化FLOPs就行了(其实很多地方不是这样,比如考虑到并行等)。

实验


image.png相同稀疏率情况下,效果更好。

评价

可以针对不同设备,自动搜出最佳的压缩策略,对于


平衡效果和压缩率/加速比非常友好。

TextNAS

「[AAAI 20] TextNAS: A Neural Architecture Search Space Tailored for Text Representation」

动机


大多数NAS方法集中在搜索策略的设计上,但是本文重点在定义了一个很好的搜索空间,包含了文本处理里面常用的一些操作符。

方法


本文发现NLP领域cell搜索不如直接搜整个网络效果好。搜索空间定义为了卷积层、池化层、双向循环结构(GRU)、注意力层。搜索算法就是用的ENAS,并且每个layer只能选择前面k=5个layer作为输入,这样可以减小搜索空间,但其实这样也丢失了长距离的残差连接。

实验


image.png这篇是做效果提升的,因此可以看到在很多数据集上效果都超过了之前的模型。

评价


感觉上和ENAS差别不是很大,就是搜索空间针对NLP任务做了一些扩展。此外搜索目标只是效果,并没有考虑到延时等条件。

ET

「[ICML 19] The Evolved Transformer」

动机


这篇是想搜出一个效果更好的Transformer结构。

方法


image.png搜索空间也是cell堆叠,每个cell里面encoder有6个block,decoder有8个,这样是为了初始化的时候能重现Transformer结构。

演化算法初始个体就用的是Transformer结构,这样收敛的更快一点。为了加快搜索速度,采用了Progressive Dynamic Hurdles的方法,过程是这样的:初始种群全部训练到一定步数后early stop,算出平均适应度。接下来后代训练到相同步数后,适应度高于平均值的继续训练一定步数后early stop,其余的直接early stop。然后更新这个early stop的步数和对应的适应度平均值,继续演化出后代。

相关文章
|
1月前
|
自然语言处理 索引
大模型开发: 解释自然语言处理(NLP)中的词嵌入。
**词嵌入技术在NLP中将文本转为数值表示,捕获词汇的语义和语法关系。过程包括:词汇索引、训练嵌入矩阵(如Word2Vec、GloVe、BERT)、文本向量化及向量输入到NLP模型(如情感分析、命名实体识别)。词嵌入是连接文本与机器理解的关键桥梁。**
29 2
|
3月前
|
人工智能 自然语言处理 运维
NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
NLP国内外大模型汇总列表[文心一言、智谱、百川、星火、通义千问、盘古等等]
|
2天前
|
人工智能 自然语言处理 Python
使用Python实现自然语言处理模型
使用Python实现自然语言处理模型
12 1
|
2月前
|
机器学习/深度学习 自然语言处理 算法
大模型在自然语言处理中的应用
大模型在自然语言处理中的应用
78 1
|
2月前
|
人工智能 自然语言处理 机器人
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
如今,大模型层出不穷,这为自然语言处理、计算机视觉、语音识别和其他领域的人工智能任务带来了重大的突破和进展。大模型通常指那些参数量庞大、层数深、拥有巨大的计算能力和数据训练集的模型。 但不能不承认的是,普通人使用大模型还是有一定门槛的,首先大模型通常需要大量的计算资源才能进行训练和推理。这包括高性能的图形处理单元(GPU)或者专用的张量处理单元(TPU),以及大内存和高速存储器。说白了,本地没N卡,就断了玩大模型的念想吧。 其次,大模型的性能往往受到模型调优和微调的影响。这需要对模型的超参数进行调整和优化,以适应特定任务或数据集。对大模型的调优需要一定的经验和专业知识,包括对深度学
自然语言开发AI应用,利用云雀大模型打造自己的专属AI机器人
|
3月前
|
机器学习/深度学习 数据采集 人工智能
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
【NLP】Datawhale-AI夏令营Day3打卡:Bert模型
|
3月前
|
机器学习/深度学习 自然语言处理 搜索推荐
AIGC核心技术——自然语言处理(NLP)预训练大模型
【1月更文挑战第13天】AIGC核心技术——自然语言处理(NLP)预训练大模型
123 1
AIGC核心技术——自然语言处理(NLP)预训练大模型
|
3月前
|
自然语言处理 算法
自然语言处理第3天:Word2Vec模型
自然语言处理第3天:Word2Vec模型
50 1
|
3月前
|
机器学习/深度学习 自然语言处理 数据格式
训练你自己的自然语言处理深度学习模型,Bert预训练模型下游任务训练:情感二分类
训练你自己的自然语言处理深度学习模型,Bert预训练模型下游任务训练:情感二分类
55 0
|
4月前
|
机器学习/深度学习 自然语言处理 算法
19ContraBERT:顶会ICSE23 数据增强+对比学习+代码预训练模型,提升NLP模型性能与鲁棒性:处理程序变异(变量重命名)【网安AIGC专题11.15】
19ContraBERT:顶会ICSE23 数据增强+对比学习+代码预训练模型,提升NLP模型性能与鲁棒性:处理程序变异(变量重命名)【网安AIGC专题11.15】
82 1