由浅入深详解NLP中的Adapter技术

4cdf96b37ba7090901e0fb34bcedcae5.gif

©作者 | 吴迪

单位 | UCLA

研究方向 | NLP

b194056946fef772f9287db359df0d7f.png

前言

在现代自然语言处理(NLP)的应用中,使用预训练的表征进行迁移学习是很重要的一个方法。在深度学习开始被应用之后,迁移学习最早出现在使用预训练的特征向量,以及对预训练语言模型(pre-trained language model,PLM)进行微调(fine-tuning)[1]。基于预训练模型,adapter 给出了一个新的思路,即能否在模型中插入一些少量的参数,在下游某个任务微调时只对这些参数进行训练,而保持预训练模型原有的参数不变。如果使用 adapter 可以让我们达到和微调整个模型一样的效果(或者更好),那就可以带来很多好处:

  • 参数效率更高:一个任务只需要少量参数,训练更快,占用的内存更少,对数据集较小的任务更难过拟合,也更有利于模型的存储和分发。

  • 连续学习的遗忘问题:adapter 冻结了原有模型的参数,保证了原来的知识不被遗忘。

  • 多任务学习:使用 adapter 也可以用比较少量的参数学习多个任务,和传统的多任务学习相比,好处是不同任务之间影响较少,坏处是不同任务带来的相互的监督可能会变少。

Adapter 最早由 [2] 提出,应用在了计算机视觉的模型中,后来由 [1] 引入 NLP,近些年相关的工作越来越多。最近对 adapter 在 NLP 上的应用很感兴趣,在此文中整理一些学习 adapter 时相关论文的笔记,其中的很多算法都在开源库 AdapterHub 中有实现:

https://adapterhub.ml/


b176c7124d5c13773806010ad29b98d9.png


Bottleneck Adapter

首先总结一下把 adapter 引入 NLP 的论文 [1]。本文的主要贡献就是提出了应用于 transformer 的 adapter 结构,并且展示了在经典的 NLP 任务上使用 adapter 进行参数高效的迁移学习的可行性。

网络结构:如下图所示,[1] 提出在 transformer层中插入 adapter 层。adapter 层的结构很简单,向下投射到一个较小维度,经过一层非线性激活函数,然后向上投射到原有的维度。另外,整个 adapter 层的输入和输出之间还有一个残差连接。这一类的 adapter 也被形象地称作 bottleneck adapter。以 BERT 为例,根据 bottleneck 层的大小不同,新增的参数量大致占原有模型的 0.5%-8%。

25637c3f1f09207526e953815ef0aa56.png

▲Bottleneck adapter的结构

初始化:所有的 adapter 参数都从均值为 0 标准差为 0.01 的正态分布中采样。这样可以保证刚开始训练时,adapter 主干的全连接网络的输出很小,主要由残差连接传递信息。

训练:冻结原有模型的全部参数,只训练 adapter 层的参数和 layer normalization 的参数。

实验:主要在分类任务(GLUE)和抽取式问答任务(SQuAD v1.1)上进行,比较微调整个 BERT-Large 和 BERT-Large 加 adapter 只微调 adapter 的性能。

实验发现:

  • 只微调 adapter 可以做到比较接近整个模型微调的性能,如果根据每个 task 调 adapter 的大小,可以做到掉点比较少。

  • 使用 adapter 的参数效率要高于只微调 BERT 的靠近输出的若干层,性能要高于只训练 layer normalization 的参数。

  • 推理阶段,对某层的 adapter 进行剪枝(pruning)是可行的,不会对性能产生太大影响。但是对多层进行剪枝性能会大幅下降。相比靠近输出的层(顶层)来说,靠近输入的层(底层)对剪枝更不敏感。

  • 权重初始化的分布标准差小于 0.01 的时候效果比较好,标准差过大会让效果变差。

782d4103ea0f444ec9875cfb9e2f9795.png


对Adapter结构或训练/推理流程的改进

论文 [3-5] 对 [1] 进行了改进和拓展,这些文章解决的主要问题如下:

  • AdapterFusion [3]:如何把多任务学习和 adapter 更好地结合起来,利用多任务学习的优势,避免其劣势?

  • AdapterDrop [4]:adapter 在推理阶段速度会慢多少?如何对 adapter 进行剪枝?

  • Compacter [5]:能否将 adapter 层做得更加轻量化,同时不降低性能?


3.1 AdapterFusion

想要结合来自多个任务的知识,传统的两个方法是按一定顺序微调(sequential fine-tuning)或者多任务学习(multi-task learning)。前者的一大问题是需要先验知识来确定顺序,且模型容易遗忘之前任务学到的知识,后者的问题是不同的任务互相影响,也难以平衡数据集大小差距很大的任务。Adapter 的一个优势是不用更新预训练模型的参数,而是插入比较少的新的参数就可以很好地学会一个任务。此时,adapter 的参数某种程度上就表达了解决这个任务需要的知识。受此启发,[3] 提出如果想要把来自多个任务的知识结合起来,就可以考虑把多个任务的adapter的参数结合起来。

[3] 提出的 AdapterFusion 的多任务学习框架分成两个阶段。首先,针对于每个任务,学习一组新的 adapter 参数。然后,针对于某个特定目标任务,学习一个融合模块把第一步的所有 adapter 结合起来。[3] 假设第二阶段的每个任务都被包括在第一阶段里了,不考虑第二阶段引入新的任务的情况。

网络结构:

8c1ff6cf16ce22e698a36af18f122891.png

▲AdapterFusion的结构

图中展示了 AdapterFusion 的结构(右)和在 transformer 层的放置位置(左)。单个 adapter 层(粉色)和 [1] 中没有区别,但是每个 transformer 层中只保留最顶端的一个 adapter 层,去掉了多头注意力层之后的 adapter 层。

AdapterFusion 层(蓝绿色)的结构就是一个注意力模块。Q 是原来 transformer 层中全连接层的输出,K 和 V 都是各个任务对应的 adapter 的输出。和 transformer 中的 cross attention 相似,先对 QKV 进行一层线性projection,然后 QK 点乘并计算 softmax,再用输出把 V(来自不同任务的 adapter 的输出)加权组合起来,具体公式如下。l 代表层数,t 代表序列位置,n 代表任务(一共 N 个)。抽象地说,任务 X 对应模型的每一层的 AdapterFusion就是根据上一层的输出,从众多任务的知识中选择并应用最适合任务 X 的知识。

055be6629ddaf2a5edde0aa6a6e61528.png

初始化:QK 随机初始化,V 初始化成 identity matrix 加上一些小的随机噪声。

训练:

  • 第一步:训练每个任务的adapter。作者实验了两种方式:(1)每个任务独立初始化一套 adapter 参数,只学习当前任务,不更新预训练模型的参数(ST-A);(2)把所有的 adapter 组装在一起,用多任务学习的损失函数同时训练所有 adapter,也一起微调所有预训练的参数(MT-A)。

  • 第二步:把第一步的所有 adapter 组装到一起(只针对 ST-A,MT-A 已经组装好),然后加入 AdapterFusion 层,再在目标任务上训练。数据集用第一步中使用过的相同的版本。作者也实验了在第二步使用 MT-A,作为对照。

实验:作者挑选了 16 个不同种类、不同大小的任务进行多任务学习。类别包括常识、情感分析、自然语言推理、句子相关性;数据集大小包括 40k 以上、10k 以上、5k 以上、5k 以下。预训练模型使用 BERT-base 和 RoBERTa-base。

实验发现:

  • 第一阶段训练,使用 ST-A 可以做到和整个模型微调相近或更好的表现,但是使用 MT-A 会一定程度影响性能。作者的解释是只训练 adapter 是一种正则化,可以帮助泛化。

  • 第二阶段,加入 AdapterFusion 对训练集比较小的任务提升比较明显。

  • 第一阶段使用 ST-A 并且第二阶段使用 AdapterFusion 效果最好,也有利用 adapter 的复用。第一阶段使用 MT-A,在第二阶段也要使用 MT-A 才可以有一定提升。

  • AdapterFusion 提升比较明显的任务,每一层的 AdapterFusion 层会更倾向于 attend 到其他任务的 adapter。


3.2 AdapterDrop

论文 [4] 主要的贡献是:1)建立了一系列 adapter 的训练/推理速度相关的测量结果;2)提出了剪枝整个 adapter 层的方法 AdapterDrop,加快了多任务同时推理的速度;3)建立了对 AdapterFusion 进行剪枝的结果。

Adapter 的训练和推理速度。作者们在两种不同的 GPU 上测量了 [1] 和 [3] 两种 adapter 结构和整个模型微调相比的训练和推理速度,结果如下图。Adapter 的训练会比整个模型微调快 60% 左右,推理会比使用原模型慢 4%-6%。

43df2800dde37265893ffbbcb9556958.png

3.2.1 AdapterDrop

为了加快推理速度,在推理时可以对某几层的 adapter 进行剪枝。根据 [1] 的结论,靠近输入的 adapter 被剪掉后对性能影响更小。因此,AdapterDrop 的作者提出,推理时可以剪掉最下方 n 层的 adapter,也就是最靠近输入的前 n 层。为了尽可能地减小掉点,作者设计了两种训练方案:(1)specialized AdapterDrop:训练时固定 n,训练后的模型推理时也固定剪掉前 n 层;(2)robust AdapterDrop:训练时每个 batch 都随机选取 n 的大小,训练后的模型可以适应多个 n。由于原有模型其他参数是不训练的,在训练时梯度就可以只回传到保留 adapter 的最早一层即可(见下图)。

22f3c3e94404c251f30fb84fc45bd302.png

▲标准的adapter训练(中)和AdapterDrop的训练(右)

实验结果:在 GLUE 的多个任务上,两种 AdapterDrop 可以做到推理时 n=5 以下掉点都不太严重,而传统的 adapter 在 n>1 时性能下降就很快了。当去除掉五层的 adapter 时,训练速度可以加快 26%,多任务同时推理的速度可以加快 21%-42%,超过了原模型的推理速度。要注意为了更凸显 AdapterDrop 的优势,作者测量速度的场景是多任务同时推理,也就是说输入文本,模型生成多个任务的输出。

3.2.2 对 AdapterFusion 进行剪枝

作者首先测量了 AdapterFusion (AF,[3])的训练和推理时间,发现和原模型整体微调和推理相比,每层 8 个adapter 的 AF 的训练速度大约慢 47%,推理速度大约慢 62%,主要是因为 adapter 需要逐个推理。作者用 8 个 GLUE 的任务(去除 WNLI)训练了一个 AF 模型,在上面实验了两种加速 AdapterFusion 的思路:

  • 去除掉前几个 AF 层,对性能的影响不同的任务有所不同。例如对 RTE 的影响不大,但是 CoLA 十分敏感。这说明直接去除 AF 层并不是一个通用的好方法。

  • 剪掉每层中对输出贡献较小的 adapter。作者用训练集测量了每个 adapter 的平均激活水平(应该是加权之后的输出),每层只保留两个贡献最高的 adapter,模型的性能和原来基本持平,推理速度可以提高 68%。


3.3 Compacter

Compacter 这一结构来自论文 [5]。作者沿用了 [1] 的 adapter 放置位置和训练方式,只是重新设计了更加轻量化的 adapter 结构,使得只需要新增原模型大约 0.05%-0.2% 的参数量便可在 GLUE 和 SuperGLUE 这些 benchmark 上达到比较好的表现。

网络结构:

  • Compact 应用了 Kronecker 积。一个 mxf 的 A 矩阵和一个 pxq 的 B 矩阵的 Kronecker 积是

a0ac1bb073de645f0b07227ef2a82fb4.png

  • 假设模型 hidden state 大小是 k,bottleneck 大小是 b,[1] 中的 adapter 层就包含两个 kxb 的矩阵。Compacter首先借用了 parameterized hypercomplex multiplication layers 的理念,把每个 adapter 的参数表达成一个 nxn 的矩阵 A 和一个 (k/n)x(d/n) 的矩阵 B 的 Kronecker 积,这样参数量就被大大缩减了。

  • 在此之上,要求所有 adapter 共享矩阵 A。

  • 另外,把矩阵 B 再次分解成 n 组两个低秩矩阵的积,两个矩阵的大小分别是 (k/n)xr 和 rx(d/n)。为了减少参数量,作者把 r 固定为 1。

  • Compacter 层结构如下图所示。图中展示了两个 compacter 层,彩色的是需要训练的参数。把 [1] 中的 adapter 层中的参数用这种形式表达就得到了 compacter 的结构。

fe049f13320f615f7f8e964105af54e0.png

▲Compacter的结构

实验:作者主要使用了 T5-base 在 GLUE 和 SuperGLUE 的任务上进行了实验。对比了 Compacter,整个模型微调,以及一系列参数高效的方法。对 compacter,作者实验了无低秩分解的版本进行对照,也实验了类似 [3] 每个transformer层只保留靠近输出的一个 adapter 的结构(称作 compacter++)。

实验结果:

  • 在 T5-base 上,[3] 的adapter层的效果比 [1] 要好。AdapterDrop 或者仅仅对 adapter 层进行低秩分解的性能都比整个模型微调要差。

  • Compacter 的三个创新使得只训练 0.1% 上下的新参数就可以和全模型微调的表现相近。

  • 和全模型微调相比,Compacter 在训练集较小(0.1k-4k)的时候表现要更好。


1044304b96dee78596ddf54c1afafc74.png


Adapter的应用和针对应用的改进

这里的几篇论文 [6-12] 都利用了 adapter 设计了一些特定问题的解决方案,有的方法重在参数高效,有的方法重在对原模型的效果进行进一步提升。篇幅限制,这部分对每篇论文只做简略介绍。

4.1 Bapna & Firat(2019)

本篇论文 [6] 主要应用了 adapter 来解决两个机器翻译(NMT)的问题:(1)域适应(domain adaptation)和(2)大规模多语种 NMT。作者主要采用的框架是先预训练一个基础模型,再根据每个目标任务插入一个新的 adapter 进行微调。文章主要的贡献是展现了在 NMT 任务上 adapter 类的方法可以做到和整个模型微调达到相似性能,同时更加参数高效。另外,多语种 NMT 任务上可以做到单个模型同时在资源少和多的语言上表现良好。

  • Adapter 结构:本文和 [3] 使用了类似结构(但是本文的工作在 [3] 之前),每个 transformer 层只在最后插入一个 adapter 层。另外,作者重新初始化了 layer norm 的参数(和 [1] 不同,[1] 是直接用预训练的 layer norm 参数继续训练)。

  • 域适应:作者在 WMT En-Fr 上训练,然后冻结参数,插入 adapter,分别迁移到 IWSLT'15 和 JRC。模型性能好于 LHUC [7],和全模型微调比较接近。

  • 多语种 NMT:作者首先训练了一个英语 <=>102 种其他语言的模型,然后冻结参数,再针对每组(源语言,目标语言)的组合分别插入一个 adapter 进行微调。主要比较的基线方法是只用(源语言,目标语言)的数据训练的模型。结果显示英语是源语言时,大部分目标语言的表现相比基线都持平或有所提升;但是英语是目标语言时,主要在训练数据较少的语言上有较大提升,在训练数据比较多的语言上效果有所下降。


4.2 K-Adapter

本篇论文 [8] 主要的贡献是用 adapter 以一种模块化的方式向预训练语言模型中插入知识,来解决一些知识密集型的 NLP 任务(关系分类、实体类型识别、问答等等)。作者通过训练两个 adapter 来把两种类型的知识引入 RoBERTa:(1)事实性知识,(2)语言学类的知识。两个 adapter 分别训练,互不影响。

  • 模型结构:K-Adapter 不再改动原有的 transformer 层,而是变成在两个 transformer 层之间插入 adapter 层。每个 adapter 层内,在向下和向上 project 的全连接层之间加入了两层 transformer 层(下图左),增加了模块的表达能力。每个 adapter 层的输入可以看到上一个 adapter 和邻近的上一个 transformer 层的输出(下图右)。

9966aac6be735de95b21481119a1c212.png

▲K-Adapter的结构(左)和训练方式(右)

  • 预训练:插入 adapter 层,把原模型参数固定,把原模型最后一层的输出和最后一个 adapter 的输出 concat 起来作为 feature,然后在特定的预训练任务上学习。

    • 事实性知识:在关系分类任务上训练,共 430 个类,5.5M 个句子。通过学习预测实体和实体之间的关系,模型可以学到一些基本事实和常识。

    • 语言学类知识:在依存关系分类任务上训练,作者用斯坦福的 parser 准备了共约 1M 个训练样本。通过学习预测每个 token 对应的 head 的位置,模型可以学到一些和句法/语义相关的知识。

  • 下游微调:把每个任务新增的参数接在最后一个 adapter 层的输出上进行训练。如果同时使用多个 adapter,就把他们的输出 concat 起来作为特征。另外,原来预训练模型的参数也跟着一起微调。

    • 下游任务主要涵盖关系分类、实体类型识别、问答。

    • 基线模型除了之前效果比较好的语言模型 + 知识的模型外,还有原 RoBERTa 模型、原 RoBERTa 模型 + 随机初始化的 adapter 参数、原 RoBERTa 模型进一步在两个任务上多任务学习得到的模型。实验结果发现同时使用两个 adapter 时可以获得最好的效果。对后两个下游任务来说事实性知识帮助更大,对第一个任务语言学类的知识帮助更大。


4.3 MAD-X

和前文总结过的 AdapterFusion 以及 K-Adapter 类似,MAD-X [9] 这篇论文的目标也是用 adapter 来学习和存储模块化的知识,做到“即插即用”。AdapterFusion 的目标是让小训练集的任务使用大训练集的任务的知识,而 MAD-X 的目标是在同一个任务下让低资源的语言使用高资源的语言的知识。

为了解耦语言和任务,作者提出分别训练相对应的 adapter,这样想要解决一个低资源语言 L 的任务 T 时,可以使用对应语言 L 的 adapter,搭配上在其他语言 L' 上训练的任务 T 的 adapter。在这个框架的基础上,作者还设计了 invertible adapter 作为学习语言知识的 adapter 的一部分。

网络结构:仍然是在每个 transformer 层中插入 adapter(下图),其中 language adapter 和 task adapter 沿用 AdapterFusion 的网络结构,invertible adapter 是一个 token 层面的映射函数,和 language adapter 一起训练,可以理解成在 multilingual embedding 上再为每种语言学习一个专用的 embedding 函数,但是比每种目标语言重新训练 embedding 更加参数高效。

131c0d4ba99d81753239cd57bc6fec1f.png

▲MAD-X中三类adapter的放置方式(左)和invertible adapter的结构(右)

训练和推理:首先为每种语言训练 language adapter 和 invertible adapter,用的任务是 MLM。然后再插入某任务专用的 adapter,配合源语言的 language adapter 和 invertible adapter 在源语言的训练集上训练。推理时,使用目标语言的 language adapter 和 invertible adapter,再配合源语言的 task adapter。

实验和发现:

1. 作者主要在命名实体识别、问答、因果常识推理上进行跨语言迁移的实验,选取了 16 种来自各种语系并且训练集资源大小不一的语言两两配对进行实验。作者在 XLM-R 上加入 adapter,对比的基线模型包括 mBERT 和 XLM-R,还有在目标语言上进行预训练过的 XLM-R。

2. 对于预训练阶段没有出现过的语言,XLM-R 和只使用 task adapter 的 MAD-X 表现都很差,在目标语言进行预训练之后,XLM-R 效果有很大提升。

3. NER 任务上,language adapter 和 invertible adapter 都对性能影响很大。MAD-X 对高资源向低资源语言的迁移帮助最大。

4. 因果常识推理任务上,MAD-X 和目标语言上预训练的 XLM-R 表现类似;问答任务上,后者似乎在比 MAD-X 表现更好。但是 MAD-X 训练的参数更少。


4.4 其他应用

  • UDapter [10]:用 adapter 训练参数高效的多语言的依存分析模型。

  • Philip et al.(2020)[11]:和 [6] 类似,关注多语言机器翻译任务,但是给每个语言引入 adapter 参数,而不是像 [6] 一样给每对语言引入一个 adapter。

  • Lauscher et al.(2020)[12]:和 [8] 类似,使用 adapter 模块化地引入知识。


41923293942dc615dd2800a083cc5680.png


类似Adapter的结构

下面列举了思路和 adapter 相近,但是网络结构设计不同的文章,这里就不详细介绍了,也推荐 ICLR 2022 的文章 [16](或者何俊贤大大亲自讲解的视频)。

  • BERT and PAL [13]

  • Prefix Tuning [14]

  • LoRA [15]

809dda16dd5cf04b05615d92f57e36db.png

▲三种 adapter 类的结构(adapter,prefix tuning,LoRA),图片来自 [16]。

outside_default.png

参考文献

outside_default.png

[1] Houlsby, N., Giurgiu, A., Jastrzebski, S., Morrone, B., Laroussilhe, Q. D., Gesmundo, A., Attariyan, M., & Gelly, S. (2019). Parameter-Efficient Transfer Learning for NLP. Proceedings of the 36th International Conference on Machine Learning, 2790–2799. https://proceedings.mlr.press/v97/houlsby19a.html

[2] Rebuffi, S. A., Bilen, H., & Vedaldi, A. (2017). Learning multiple visual domains with residual adapters. Advances in neural information processing systems,30. https://proceedings.neurips.cc/paper/2017/file/e7b24b112a44fdd9ee93bdf998c6ca0e-Paper.pdf

[3] Pfeiffer, J., Kamath, A., Rücklé, A., Cho, K., & Gurevych, I. (2021). AdapterFusion: Non-Destructive Task Composition for Transfer Learning. Proceedings of the 16th Conference of the European Chapter of the Association for Computational Linguistics: Main Volume, 487–503. https://doi.org/10.18653/v1/2021.eacl-main.39

[4] Rücklé, A., Geigle, G., Glockner, M., Beck, T., Pfeiffer, J., Reimers, N., & Gurevych, I. (2021). AdapterDrop: On the Efficiency of Adapters in Transformers. Proceedings of the 2021 Conference on Empirical Methods in Natural Language Processing, 7930–7946. https://doi.org/10.18653/v1/2021.emnlp-main.626

[5] Karimi Mahabadi, R., Henderson, J., & Ruder, S. (2021). Compacter: Efficient Low-Rank Hypercomplex Adapter Layers. Advances in Neural Information Processing Systems, 34, 1022–1035. https://proceedings.neurips.cc/paper/2021/hash/081be9fdff07f3bc808f935906ef70c0-Abstract.html

[6] Bapna, A., & Firat, O. (2019). Simple, Scalable Adaptation for Neural Machine Translation. Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), 1538–1548. https://doi.org/10.18653/v1/D19-1165
[7] Vilar, D. (2018). Learning Hidden Unit Contribution for Adapting Neural Machine Translation Models. Proceedings of the 2018 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 2 (Short Papers), 500–505. https://doi.org/10.18653/v1/N18-2080

[8] Wang, R., Tang, D., Duan, N., Wei, Z., Huang, X., Ji, J., Cao, G., Jiang, D., & Zhou, M. (2021). K-Adapter: Infusing Knowledge into Pre-Trained Models with Adapters. Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021, 1405–1418. https://doi.org/10.18653/v1/2021.findings-acl.121

[9] Pfeiffer, J., Vulić, I., Gurevych, I., & Ruder, S. (2020). MAD-X: An Adapter-Based Framework for Multi-Task Cross-Lingual Transfer (arXiv:2005.00052). arXiv. http://arxiv.org/abs/2005.00052

[10] Üstün, A., Bisazza, A., Bouma, G., & van Noord, G. (2020). UDapter: Language Adaptation for Truly Universal Dependency Parsing. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), 2302–2315. https://doi.org/10.18653/v1/2020.emnlp-main.180

[11] Philip, J., Berard, A., Gallé, M., & Besacier, L. (2020). Monolingual Adapters for Zero-Shot Neural Machine Translation. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), 4465–4470. https://doi.org/10.18653/v1/2020.emnlp-main.361

[12] Lauscher, A., Majewska, O., Ribeiro, L. F. R., Gurevych, I., Rozanov, N., & Glavaš, G. (2020). Common Sense or World Knowledge? Investigating Adapter-Based Knowledge Injection into Pretrained Transformers. Proceedings of Deep Learning Inside Out (DeeLIO): The First Workshop on Knowledge Extraction and Integration for Deep Learning Architectures, 43–49. https://doi.org/10.18653/v1/2020.deelio-1.5

[13] Stickland, A. C., & Murray, I. (2019). BERT and PALs: Projected Attention Layers for Efficient Adaptation in Multi-Task Learning. Proceedings of the 36th International Conference on Machine Learning, 5986–5995. https://proceedings.mlr.press/v97/stickland19a.html

[14] Li, X. L., & Liang, P. (2021). Prefix-Tuning: Optimizing Continuous Prompts for Generation. Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), 4582–4597. https://doi.org/10.18653/v1/2021.acl-long.353

[15] Hu, E. J., Shen, Y., Wallis, P., Allen-Zhu, Z., Li, Y., Wang, S., Wang, L., & Chen, W. (2021). LoRA: Low-Rank Adaptation of Large Language Models (arXiv:2106.09685). arXiv. http://arxiv.org/abs/2106.09685

[16] He, J., Zhou, C., Ma, X., Berg-Kirkpatrick, T., & Neubig, G. (2022). Towards a Unified View of Parameter-Efficient Transfer Learning (arXiv:2110.04366). arXiv. http://arxiv.org/abs/2110.04366

更多阅读

4f56594fa000002383296156c6a8c5e2.png

a581a02dacc70df5f684dd795d0cd733.png

0b5b5cb18015b01b5c870a2de17fae7f.png

59141f39928fa0121bacdc0f139d46e2.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

4f962be252194f2d15f5c2b843bcfd2b.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

8bc1bfc9a3c61bc2e9e5284b2fcab1aa.jpeg

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用自然语言处理(NLP技术来解析文本,您可以采取以下步骤: 1. 分词(Tokenization):将文本划分为单个单词或标记的序列。这是NLP处理的第一步,可以使用现有的NLP库或工具来实现分词。 2. 词性标注(Part-of-Speech Tagging):标注每个词的词性,例如名词、动词、形容词等。这有助于理解文本不同词语的含义和作用。 3. 命名实体识别(Named Entity Recognition):识别文本的命名实体,如人名、地名、组织机构等。这对于从文本提取特定信息非常有用。 4. 依存句法分析(Dependency Parsing):分析句子单词之间的依存关系,例如主谓关系、修饰关系等。这有助于理解句子的结构和语义。 5. 关键词提取(Keyword Extraction):从文本提取出最重要的关键词或短语。这可以帮助您理解文本的主题或重点。 6. 情感分析(Sentiment Analysis):确定文本的情感倾向,如积极、消极或性。这有助于了解文本的情感色彩。 7. 文本分类(Text Classification):将文本归类到预定义的类别。这可以用于文本过滤、主题分类等任务。 8. 实体关系抽取(Entity Relationship Extraction):从文本识别并提取出实体之间的关系。这有助于发现文本的关联信息。 以上仅是NLP技术的一些常见任务,您可以根据具体需求和情况选择适合的技术和工具。有许多开源的NLP库和工具可供使用,如NLTK、spaCy、Stanford CoreNLP等,您可以根据自己的喜好和需求进行选择和实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值