英文

Transfo-xl-wt103

内容目录

  • 模型细节
  • 用途
  • 风险、限制和偏见
  • 训练
  • 评估
  • 引用信息
  • 如何开始使用模型

模型细节

模型描述:Transfo-XL模型是一种具有相对定位(正弦)嵌入和可以重用先前计算的隐藏状态来处理更长上下文(记忆)的因果(单向)Transformer。该模型还使用自适应softmax输入和输出(绑定)。

  • 开发者:Zihang Dai,Zhilin Yang,Yiming Yang1,Jaime Carbonell,Quoc V. Le,Ruslan Salakhutdinov
  • 共享者:HuggingFace团队
  • 模型类型:文本生成
  • 语言:英语
  • 许可证:[需要更多信息]
  • 获取更多信息的资源:

用途

直接使用

该模型可用于文本生成。作者还提供了关于使用的词汇的附加说明,在 associated paper 中:

我们设想Transformer-XL在文本生成、无监督特征学习、图像和语音建模等领域具有有趣的应用。

不当使用和超出范围的使用

不应使用该模型有意为人们创建敌对或疏远的环境。此外,该模型的训练并不是为了成为人们或事件的真实或准确的表现,因此使用该模型生成此类内容超出了该模型的能力范围。

风险、限制和偏见

内容警告:读者应该注意,本节包含令人不安、冒犯的内容,可能会传播历史上和现在的刻板印象。

大量研究已经探讨了语言模型的偏见和公平性问题(参见,例如, Sheng et al. (2021) Bender et al. (2021) )。

训练

训练数据

作者还提供了关于使用的词汇的附加说明,在 associated paper 中:

最好的模型使用了Wikitext-103数据集进行训练。我们用Wikitext-103测试集中的512个连续令牌随机抽样的上下文初始化了Transformer-XL模型。然后,我们运行Transformer-XL生成预定义数量的令牌(我们的情况下是500个或1000个)。对于每个生成步骤,我们首先找到下一步分布的前40个概率,然后基于重新归一化的分布从前40个令牌中进行抽样。为了便于阅读,我们将上下文、生成的文本和参考文本进行解标记。

作者在该模型的预训练语料库中使用了以下内容, associated paper 中有描述:

  • WikiText-103(Merity等人,2016年),
训练过程预处理

作者还提供了关于训练过程的附加说明,在 associated paper 中:

与enwik8类似但不同,text8包含通过将文本小写并除去字母a到z之外的任何其他字符,并删除空格而创建的100M处理过的维基百科字符。由于相似性,我们只需将最佳模型和相同的超参数在enwik8上适应到text8上而无需进一步调整。

评估

结果
Method enwiki8 text8 One Billion Word WT-103 PTB (w/o finetuning)
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}
}

如何开始使用该模型

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