🚀 Transfo-xl-wt103
Transfo-xl-wt103 是一个用于文本生成的模型,它基于 Transformer-XL 架构,能够利用相对位置嵌入和记忆机制处理长文本上下文,在文本生成任务中表现出色。
🚀 快速开始
以下是使用该模型的示例代码:
from transformers import TransfoXLTokenizer, TransfoXLModel
import torch
tokenizer = TransfoXLTokenizer.from_pretrained("transfo-xl-wt103")
model = TransfoXLModel.from_pretrained("transfo-xl-wt103")
inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
outputs = model(**inputs)
last_hidden_states = outputs.last_hidden_state
✨ 主要特性
- 长上下文处理:Transformer-XL 模型采用相对定位(正弦)嵌入和记忆机制,可重用先前计算的隐藏状态,以处理更长的上下文。
- 自适应软max:该模型使用自适应软max输入和输出(绑定),有助于提高效率。
📚 详细文档
模型详情
用途
直接用途
该模型可用于文本生成。作者在 相关论文 中还提到了关于词汇使用的额外说明:
我们设想 Transformer-XL 在文本生成、无监督特征学习、图像和语音建模等领域有有趣的应用。
误用和超出范围的使用
该模型不应被用于故意为人们创造敌对或疏远的环境。此外,该模型并非用于对人物或事件进行事实性或真实性的表达,因此使用该模型生成此类内容超出了其能力范围。
风险、限制和偏差
⚠️ 重要提示
读者应注意,本节包含令人不安、冒犯性的内容,可能会传播历史和当前的刻板印象。
大量研究已经探讨了语言模型的偏差和公平性问题(例如,参见 Sheng 等人 (2021) 和 Bender 等人 (2021))。
训练
训练数据
作者在 相关论文 中提供了关于词汇使用的额外说明:
最佳模型在 Wikitext-103 数据集上进行训练。我们用从 Wikitext-103 测试集中随机采样的最多 512 个连续标记作为上下文来初始化我们的 Transformer-XL。然后,我们运行 Transformer-XL 来生成预定义数量的标记(在我们的例子中是 500 或 1000 个)。对于每个生成步骤,我们首先找到下一步分布的前 40 个概率,并根据重新归一化的分布从前 40 个标记中采样。为了便于阅读,我们对上下文、生成的文本和参考文本进行去标记化处理。
作者在 相关论文 中描述了用于该模型的以下预训练语料库:
- WikiText-103(Merity 等人,2016)
训练过程
预处理
作者在 相关论文 中提供了关于训练过程的额外说明:
与 enwik8 类似但不同,text8 包含 1 亿个经过处理的维基百科字符,这些字符是通过将文本转换为小写并去除除字母 a 到 z 和空格之外的任何字符而创建的。由于相似性,我们直接将 enwik8 上的最佳模型和相同的超参数应用于 text8,而无需进一步调整。
评估
结果
方法 |
enwiki8 |
text8 |
One Billion Word |
WT-103 |
PTB(未微调) |
Transformer-XL |
0.99 |
1.08 |
21.8 |
18.3 |
54.5 |
引用信息
@misc{https://doi.org/10.48550/arxiv.1901.02860,
doi = {10.48550/ARXIV.1901.02860},
url = {https://arxiv.org/abs/1901.02860},
author = {Dai, Zihang and Yang, Zhilin and Yang, Yiming and Carbonell, Jaime and Le, Quoc V. and Salakhutdinov, Ruslan},
keywords = {Machine Learning (cs.LG), Computation and Language (cs.CL), Machine Learning (stat.ML), FOS: Computer and information sciences, FOS: Computer and information sciences},
title = {Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context},
publisher = {arXiv},
year = {2019},
copyright = {Creative Commons Attribution Non Commercial Share Alike 4.0 International}
}