GPT-2 是一个 transformer 模型,以自我监督的方式在大量英语数据集上进行预训练。 这意味着它仅在原始文本上进行了预训练,没有以任何方式进行标记,,并通过自动过程从这些文本生成输入和标签。 也可以说,它被训练来猜测句子中的下一个单词。
对于训练而言,输入是一定长度的连续文本序列,目标是相同的序列,向右移动一个标记(单词或单词片段)。 该模型在内部使用掩码机制来确保对第 i 个 token 的预测仅使用从 1 到 i 的输入,不包括后续的内容。
通过这种方式,该模型学习了输入语料的内部表示,然后可用于提取对下游任务有用的特征。 这是 GPT-2 的 base 版本,有 124M 参数。
GPT-2模型使用 Transformer 的 Decoder 结构,并对 Transformer Decoder 进行了一些改动,原本的 Decoder 包含了两个 Multi-Head Attention 结构,GPT-2只保留了 Self Mask Multi-Head Attention,利用常规的语言建模优化,从左到右的自回归预训练。
本模型主要用于多种场景输入的生成和续写。比如用户可以自行尝试输入各种内容,然后让模型去回答、续写或者根据指令回复
在安装完成MaaS-lib之后即可使用GPT-2的text-generation的能力
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
text_generator = pipeline(Tasks.text_generation, model='damo/nlp_gpt2_text-generation_english-base')
result_zh = text_generator('My name is Teven and I am')
print(result_zh['text'])
模型在大量无标注的英文数据集上训练,有可能产生一些偏差,请用户自行评测后决定如何使用。
本模型采用无监督数据对GPT-2进行训练,其中无监督数据为公开可下载的语料
本模型暂不支持在 ModelScope 进行训练
如果GPT-2模型对您有帮助,请您引用该模型的相关文章:
@article{radford2019language,
title={Language Models are Unsupervised Multitask Learners},
author={Radford, Alec and Wu, Jeff and Child, Rewon and Luan, David and Amodei, Dario and Sutskever, Ilya},
year={2019}
}