XLNet 预训练模型

XLNet 是由 Google Brain 和 CMU 于 2019 年提出的一种强大的预训练语言模型,旨在克服 BERT 的局限性,结合自回归和自编码的优点,取得了更好的性能。

一、什么是 XLNet?

属性内容
模型名称XLNet
提出机构Google Brain + CMU
发布时间2019 年
基础架构Transformer-XL(带有相对位置编码)
最大特点Permutation Language Modeling(排列语言建模)
主要目标结合 BERT(MLM)和 GPT(Auto-regressive)的优点

二、XLNet 与 BERT 的对比

特性BERTXLNet
预训练方式Masked Language Model(MLM)Permutation Language Model(PLM)
输入遮盖15% token 被 Mask,预测原始词不遮盖,重新排列 token 顺序后,预测任意 token
训练效率较快,简单的 Mask 操作较慢,需要多次排列组合
依赖未来信息有(因为 mask 的 token 看不到右边信息)无(自回归特性,允许上下文建模)
保留词序是(Transformer-XL 中使用相对位置编码)
下游性能很强通常优于 BERT,尤其在排序类任务(QA/文本分类)

三、核心思想:Permutation Language Modeling

传统自回归语言模型(如 GPT)从左到右预测:

P(x1) * P(x2|x1) * P(x3|x1,x2) * ...

XLNet 的创新之处在于使用 所有 token 顺序的排列组合 进行训练,例如:

x3, x1, x2 的顺序:P(x3) * P(x1|x3) * P(x2|x3,x1)

通过多种 token 预测顺序,模型可以捕捉更丰富的上下文特征,同时具备双向建模能力。

四、Transformer-XL 的优势

XLNet 基于 Transformer-XL,带来了以下优势:

  • 支持长文本建模(缓存历史隐藏状态)

  • 使用 相对位置编码(增强顺序感知)

  • 避免 BERT 中的固定窗口限制

五、模型结构概览

  1. 输入序列重排列(多个可能顺序)

  2. 基于 Transformer-XL 处理每种顺序

  3. 预测其中一个 token,依赖其前置 token

  4. 重复操作,训练获得整体语言建模能力

六、PyTorch 示例:使用 Hugging Face 加载 XLNet

pip install transformers
from transformers import XLNetTokenizer, XLNetModel
import torch

tokenizer = XLNetTokenizer.from_pretrained("xlnet-base-cased")
model = XLNetModel.from_pretrained("xlnet-base-cased")

inputs = tokenizer("XLNet is a powerful transformer model.", return_tensors="pt")
outputs = model(**inputs)

print(outputs.last_hidden_state.shape)  # torch.Size([1, sequence_length, hidden_size])

七、在哪些任务上表现优异?

XLNet 在下列任务上超越 BERT:

  • 自然语言推理(MNLI、RTE)

  • 问答任务(SQuAD 1.1 / 2.0)

  • 情感分类(SST-2)

  • 文本相似度(STS-B)

其原因是:

  • 上下文建模能力更强

  • 能捕捉长距离依赖

  • 相对位置编码更适应变长输入

八、总结

项目内容
模型类型自回归 + 自编码混合型 Transformer
特点Permutation LM、Transformer-XL 架构
优势保留词序、无信息泄露、捕捉更丰富上下文
应用效果多数 NLP 基准任务优于 BERT
开源地址Hugging Face: xlnet-base-cased, xlnet-large-cased

九、是否选择 XLNet?

场景是否推荐使用 XLNet
英文问答 / 分类任务✅ 非常适合,优于 BERT
中文 NLP 应用❌ 中文预训练 XLNet 较少
推理 / 相似度任务✅ 优势显著
长文本建模任务✅ 可通过 Transformer-XL 支持
训练资源有限 / 实时推理要求高❌ 相比 BERT 更重

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

00&00

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值