这个存储库包含了一个在日文维基百科数据集上训练的GPT2-small模型。
我们使用了2021年8月20日发布的 Japanese Wikipedia 个数据集来进行分词器和GPT-2模型的训练。
我们将数据集分成了训练集、验证集和测试集。分词器和模型都是在训练集上进行训练的。训练集包含大约540M个标记。
模型的架构与GPT-2小型模型相同(n_ctx:1024,n_embd 768,n_head:12,n_layer:12),只是词汇表的大小不同。词汇表的大小设置为32,000,而原始大小为50,257. 我们使用transformers.GPT2LMHeadModel进行训练。
我们使用 SentencePiece 作为此模型的分词器。
我们从训练集中利用了1,000,000个句子。词汇表的大小为32,000.由于日语单词不是用空格分隔的,所以将add_dummy_prefix选项设置为True。
训练结束后,分词器模型被导入为transformers.BERTGenerationTokenizer,因为它支持SentencePiece模型,并且默认情况下不添加任何特殊标记,这在文本生成任务中非常有用。
模型在训练集上进行了30个epochs的训练,批次大小为32。每个样本包含1024个标记。
我们使用了Adam优化器。学习率在前10,000个步骤中从0线性增加到1e-4。剪辑范数设置为1.0.
训练模型的测试集困惑度为29.13.
更多训练细节请参考 GitHub .
首先,安装依赖项。
$ pip install transformers==4.10.0 torch==1.8.1 sentencepiece==0.1.96
然后使用pipeline生成句子。
>>> import transformers >>> pipeline = transformers.pipeline("text-generation", "colorfulscoop/gpt2-small-ja") >>> pipeline("統計的機械学習でのニューラルネットワーク", do_sample=True, top_p=0.95, top_k=50, num_return_sequences=3)
注意:默认的模型配置文件config.json设置了文本生成的参数,包括do_sample=True,top_k=50,top_p=0.95. 当需要使用不同的参数时,请设置这些参数。
我们建议指定revision以加载可复现的模型。
Revision | Date of Wikipedia dump |
---|---|
20210820.1.0 | Aug 20, 2021 |
20210301.1.0 | March 1, 2021 |
您可以按以下方式指定revision。
# Example of pipeline >>> transformers.pipeline("text-generation", "colorfulscoop/gpt2-small-ja", revision="20210820.1.0") # Example of AutoModel >>> transformers.AutoModel.from_pretrained("colorfulscoop/gpt2-small-ja", revision="20210820.1.0")
此存储库中包含的所有模型均在 Creative Commons Attribution-ShareAlike 3.0 下获得许可。
免责声明:该模型有可能生成与训练数据相似的文本、不准确的文本或有偏见的文本。使用该模型需自行承担风险。Colorful Scoop对模型输出不提供任何保证或担保。Colorful Scoop对由模型输出引起的任何问题、损失或损害不承担任何责任。
作者:Colorful Scoop