模型简介
模型特点
模型能力
使用案例
🚀 芬兰语版GPT - 2
这是一个基于因果语言建模(CLM)目标,在芬兰语数据上预训练的GPT - 2模型。它能学习芬兰语的内在表示,可用于文本生成等下游任务。
🚀 快速开始
你可以使用此模型直接进行文本生成,也可以将其微调用于下游任务。若想寻找针对特定任务微调后的版本,可查看模型中心。
✨ 主要特性
- 自监督学习:在大量芬兰语数据上以自监督方式进行预训练,仅使用原始文本,无需人工标注。
- 文本生成能力:擅长根据提示生成文本,能学习到芬兰语的内在表示,可用于提取对下游任务有用的特征。
📦 安装指南
文档未提及安装步骤,暂不提供相关内容。
💻 使用示例
基础用法
你可以使用管道直接进行文本生成:
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model='Finnish-NLP/gpt2-finnish')
>>> generator("Teksti√§ tuottava teko√§ly on", max_length=30, num_return_sequences=5)
[{'generated_text': 'Tekstiä tuottava tekoäly on kuin onkin hyvin pieni. Sitä voi käyttää myös hyvin nopeasti ja myös täysin automatisoituna, eikä sitä tarvitse käydä läpi. Se'},
{'generated_text': 'Teksti√§ tuottava teko√§ly on saanut jalansijaa, mutta Suomessa se on jo ehtinyt hajota k√§siin, koska sen avulla ei pystyt√§ tuottamaan t√§ysin ajantasaisia'},
{'generated_text': 'Tekstiä tuottava tekoäly on tehnyt työtä kymmenien vuosien ajan ja ottanut käyttöön jo yli kahden vuosikymmenen ajan tekoälyn ratkaisuja. Tekoäly on jo pitkään tehnyt työtä'},
{'generated_text': 'Tekstiä tuottava tekoäly on tekoälyn sovellus, jota käytetään esimerkiksi liiketoiminnan ja päätöksenteon tukena. Työhön liittyy data-analyysin ohella tekoälyn avulla esimerkiksi tekoäl'},
{'generated_text': 'Tekstiä tuottava tekoäly on juuri nyt erityisen hyödyllinen, koska se tunnistaa käyttäjän tietokoneen ruudulla olevat ilmoitukset, kuten näytän värin ja osoittimet ilman välkyn'}]
高级用法
以下是在PyTorch中使用该模型获取给定文本特征的方法:
from transformers import GPT2Tokenizer, GPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('Finnish-NLP/gpt2-finnish')
model = GPT2Model.from_pretrained('Finnish-NLP/gpt2-finnish')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中的使用方法:
from transformers import GPT2Tokenizer, TFGPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('Finnish-NLP/gpt2-finnish')
model = TFGPT2Model.from_pretrained('Finnish-NLP/gpt2-finnish', from_pt=True)
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 详细文档
模型描述
芬兰语版GPT - 2是一个基于Transformer架构的模型,以自监督方式在大量芬兰语数据上进行预训练。这意味着它仅在原始文本上进行预训练,无需人工进行任何标注(因此可以使用大量公开可用的数据),并通过自动流程从这些文本中生成输入和标签。更确切地说,它被训练用于预测句子中的下一个单词。
具体而言,输入是一定长度的连续文本序列,目标是相同的序列,但向右移动一个标记(单词或单词片段)。模型内部使用掩码机制,确保对标记 i
的预测仅使用从 1
到 i
的输入,而不使用未来的标记。
通过这种方式,模型学习到芬兰语的内在表示,可用于提取对下游任务有用的特征。不过,该模型最擅长的还是其预训练的任务,即根据提示生成文本。
预期用途与限制
你可以使用原始模型进行文本生成,或对其进行微调以用于下游任务。查看模型中心,寻找针对你感兴趣的任务进行微调后的版本。
限制和偏差
该模型的训练数据包含大量来自互联网的未经过滤的内容,这些内容远非中立。因此,模型的预测可能存在偏差。这种偏差也会影响该模型的所有微调版本。
与所有语言模型一样,很难提前预测芬兰语版GPT - 2对特定提示的响应,并且可能会在没有警告的情况下出现冒犯性内容。我们建议在发布输出之前,由人工进行审核或过滤,以审查不良内容并提高结果的质量。
训练数据
这个芬兰语版GPT - 2模型在六个数据集的组合上进行了预训练:
- mc4_fi_cleaned:mC4数据集是Common Crawl网络爬取语料库的多语言、经过清理的版本。我们使用了mC4数据集中的芬兰语子集,并使用我们自己的文本数据清理代码对其进行了进一步清理(查看数据集仓库)。
- wikipedia:我们使用了维基百科(2021年8月)数据集中的芬兰语子集。
- Yle Finnish News Archive 2011 - 2018
- Yle Finnish News Archive 2019 - 2020
- Finnish News Agency Archive (STT)
- The Suomi24 Sentences Corpus
原始数据集经过清理,以过滤掉质量不佳和非芬兰语的示例。这些清理后的数据集总共约有84GB的文本。
训练过程
预处理
文本使用字节级的字节对编码(BPE)(用于Unicode字符)进行分词,词汇表大小为50,257。输入是由512个连续标记组成的序列。
预训练
该模型在由Google TPU Research Cloud慷慨提供计算资源的TPUv3 - 8虚拟机上进行了300k步的训练(略超过2个epoch,批量大小为256)。使用的优化器是一种称为Distributed Shampoo的二阶优化方法,学习率为1e - 4,学习率在4000步内进行预热,之后学习率呈余弦衰减。
起初,尝试使用常用的Adam优化器,但即使尝试了多种不同的学习率,模型收敛仍存在显著问题。因此,将Adam优化器替换为Distributed Shampoo,效果要好得多。
评估结果
使用mc4_fi_cleaned数据集的验证分割,以困惑度(分数越小越好)作为评估指标进行评估。从下表可以看出,该模型(表格第一行)的表现不如我们更大的模型变体。
模型名称 | 困惑度 |
---|---|
Finnish - NLP/gpt2 - finnish | 44.19 |
Finnish - NLP/gpt2 - medium - finnish | 34.08 |
Finnish - NLP/gpt2 - large - finnish | 30.74 |
🔧 技术细节
该模型基于GPT - 2架构,在芬兰语数据上进行预训练。使用字节级的BPE分词方法,词汇表大小为50,257。输入序列长度为512个标记。在TPUv3 - 8虚拟机上进行训练,使用Distributed Shampoo优化器,学习率为1e - 4,学习率在4000步内进行预热,之后呈余弦衰减。
📄 许可证
本项目采用Apache - 2.0许可证。
致谢
如果没有Google通过TPU Research Cloud慷慨提供的计算资源,这个项目是不可能完成的。
团队成员
- Aapo Tanskanen,Hugging Face个人资料,领英个人资料
- Rasmus Toivanen,Hugging Face个人资料,领英个人资料
如有更多细节问题,请随时与我们联系。



