XLNet论文笔记

1.简介

本文依据2020年《XLNet: Generalized Autoregressive Pretraining for Language Understanding》翻译总结而来。

Autoregressive(AR)语音模型和aotoencoding(AE)是目前最成功的两个预训练语言模型。

在这里插入图片描述

AE模型不是进行明确的概率评估,而是从破坏的输入恢复原数据。最知名的例子是BERT。给定输入,其中的一部分是被mask替换掉,模型然后被训练来恢复原数据。

XLNet两个重要改进:
1.代替使用固定的前向或者后向AR因子化顺序方法,而是基于所有可能的因子化顺序组合,最大化序列的期望概率。
2.不依靠数据损坏(AE使用的)。去除了BERT中的独立性假设。+

XLNet特点:
1.XLNet结合了AR和AE的优点,是一个一般化的AR 预训练方法。
2.XLNet因为采用Transformer-XL(优秀的AR模型)可以更加有效的处理长语句。
3.XLNet具有双向注意力机制。
4.XLNet使用组合语言模型。

XLNet在语言理解任务、阅读理解、文本识别任务、文档排行等多项领域优于BERT

2.方法

2.1AR与AE

AR模型公式如下:
在这里插入图片描述

AE模型公式如下:
在这里插入图片描述

AR\AE的区别:
1.独立性假设:如公式2,约等号表示BERT因子化时是基于独立性假设,masked tokens X ̅ 是分别独立构建的。AR模型没有独立性假设,使用乘积规则。
2.输入噪声:BERT使用损坏的输入,而AR不是。
3.上下文依赖:AR是单向的,而AE是双向的。

2.2排列语言建模

为了结合AR和AE的优点,我们提出了排列语音模型。可以双向收集信息,而又避免独立性假设和输入噪声(损坏)。

Z是长度为T的序列的所有可能排列组合。对于一个text序列X,一次只采样一个因子分解顺序z。
在这里插入图片描述

2.3双流 self-attention

在这里插入图片描述

如上图,双流一个是content 流,一个是query流。即图a和图b的结合体。公式如下:
在这里插入图片描述

部分预测:减少收敛较慢、optimization difficulty的问题。
在这里插入图片描述

2.4吸收Transformer-XL

我们的目标方程是符合AR架构的,所以可以引入优秀的AR模型-Transformer-XL。我们集成了两个重要的技术,分别是相对位置编码和分段循环机制。相对位置编码是基于原输入序列,是简单明白的。

分段循环机制是可以利用前一个分段的隐藏状态。公式如下:
在这里插入图片描述

2.5多分段

XLNet 同BERT,下游的模型支持多输入分段,例如一个问题和一个上下文段落。

BERT采用的绝对分段编码,而XLNet采用的相对分段编码,一是相对编码提升了一般化能力,二是这样更容易支持两个以上的输入分段。

2.6独立性假设讨论

如下面公式所示,在预测[New, York, is, a, city]时,BERT因为独立性假设,没有考虑(New, York)的依赖关系,而XLNet考虑了。
在这里插入图片描述

3.实验结果

3.1与BERT比较

可以看到XLNet好于BERT

在这里插入图片描述

3.2Ablation Study

Memory caching mechanism、span-based prediction 、the bidirectional input pipeline对XLNet有用。
在这里插入图片描述

### XLNet 深度学习预训练模型概述 XLNet是一种基于Transformer的自回归预训练模型,它结合了自回归语言模型的优势,在多个自然语言处理(NLP)任务中表现优异[^2]。相比于BERT和GPT-2,XLNet通过引入超长版本的Transformer特征提取器——Transformer-XL,显著提升了对长序列依赖关系的学习能力[^4]。 #### XLNet的主要特点 1. **自回归与双向上下文建模** XLNet采用了一种新的方法来克服传统自编码模型(如BERT)中的掩码策略问题。具体来说,它利用排列语言建模技术,允许模型在不使用掩码的情况下同时考虑前向和后向的上下文信息[^5]。 2. **双流注意力机制** XLNet提出了双流注意机制,分为内容流和查询流两种形式。这种设计使得模型能够在预测当前词时充分利用历史信息的同时保持灵活性。 3. **Transformer-XL 结构** 为了捕捉更远距离的信息,XLNet集成了Transformer-XL组件,这不仅增强了模型的记忆能力,还提高了其泛化性能。 --- ### XLNet的应用场景 XLNet广泛应用于各种复杂的NLP任务,包括但不限于: - **文本分类**:通过对大规模语料库进行微调,可以有效提升文本分类的效果。 - **命名实体识别(NER)**:由于其强大的上下文理解能力和长序列建模特性,XLNet非常适合用于实体抽取任务[^1]。 - **机器翻译**:借助其优秀的跨句依赖捕获能力,XLNet可进一步改善翻译质量。 - **问答系统**:支持复杂逻辑推理的任务,例如阅读理解和开放域问答。 --- ### 如何使用XLNet? 以下是关于如何高效部署XLNet的一些指导原则和技术细节: #### 加载预训练模型 可以通过PyTorch或TensorFlow框架轻松加载官方发布的XLNet权重文件。以下是一个简单的Python代码示例展示如何初始化并加载XLNet模型: ```python from transformers import XLNetTokenizer, XLNetModel tokenizer = XLNetTokenizer.from_pretrained('xlnet-base-cased') model = XLNetModel.from_pretrained('xlnet-base-cased') text = "Replace me by any text you'd like." inputs = tokenizer(text, return_tensors="pt") outputs = model(**inputs) last_hidden_states = outputs.last_hidden_state print(last_hidden_states.shape) ``` 上述脚本展示了如何从Hugging Face Transformers库获取`xlnet-base-cased`模型及其对应的分词工具,并执行基本推断操作[^3]。 #### 微调过程 当针对特定领域或者定制需求时,通常需要对基础模型做适当调整。常见的做法包括冻结部分网络层、修改顶层结构以及重新定义损失函数等。 此外,还可以应用高级技巧比如混合精度训练、分布式计算等方式加速收敛速度并节省资源消耗。 #### 推理优化 对于实际生产环境下的快速响应要求,则推荐采取如下措施完成最终部署工作: - 利用`torch.jit`模块将整个流程编译成独立运行程序; - 导出ONNX格式以便兼容更多硬件平台; - 实施量化压缩降低存储开销而不明显牺牲准确性。 --- ### 总结 综上所述,XLNet凭借独特的设计理念及卓越的技术实现成为现代NLP研究不可或缺的一部分。无论是学术探索还是工业实践均能发挥重要作用。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值