语言: 荷兰语
组件示例:
- 文本: "在2030年,我们将"
- 文本: "昨天当我完全沉浸于"
- 文本: "土耳其伊斯坦布尔博阿齐奇大学的学生与教师"
- 文本: "以色列曾实施严格封锁"
标签:
- gpt2-large
- gpt2
任务标签: 文本生成
数据集:
- yhavinga/mc4_nl_cleaned
基于纯净荷兰语mC4预训练的GPT2-Large模型 🇳🇱
这是一个从头开始训练的GPT2大型模型(7.62亿参数),专注于荷兰语,在纯净荷兰语mC4上的困惑度为15.1。
使用方法
可直接通过文本生成管道调用该GPT2模型:
模型目录 = 'yhavinga/gpt2-large-dutch'
from transformers import pipeline, GPT2Tokenizer, GPT2LMHeadModel
分词器 = GPT2Tokenizer.from_pretrained(模型目录)
模型 = GPT2LMHeadModel.from_pretrained(模型目录)
生成器 = pipeline('text-generation', 模型, tokenizer=分词器)
生成文本 = 生成器('西岛', max_length=100, do_sample=True, top_k=40, top_p=0.95, repetition_penalty=2.0))
示例输出:"西岛" - "泰尔斯海灵岛自古以来就有人类居住。现今居住在特赫讷的居民竭尽全力为这一物种保护他们的村庄,即:一个主要由高沙丘和低矮植被组成的自然保护区,那里交替生长着古老植物(如野生风信子),并生长着某些已形成稀有形态的草种:例如沙丘百合或蓝莓,因其色素分子等特征而闻名"
分词器
- 基于Huggingface Transformers的Flax示例脚本,针对纯净荷兰语mC4从头训练的BPE分词器。
数据集
模型训练数据来自纯净荷兰语mC4的完整配置(330亿词元),该数据集在原版mC4基础上进行了以下过滤:
- 移除了包含荷兰语和英语脏话清单中选定词汇的文档
- 删除少于3个单词的句子
- 删除包含超过1000字符单词的句子
- 移除少于5句话的文档
- 过滤含"javascript"、"lorum ipsum"、"使用条款"、"隐私政策"、"cookie政策"、"使用cookies"等关键词的文档
模型对比
简而言之:yhavinga/gpt2-medium-dutch是最佳模型。
- 步骤列中标注
a/b
表示模型训练至总步骤b中的第a步。
模型链接 |
架构 |
参数量 |
训练序列长度 |
困惑度 |
损失值 |
批量大小 |
训练轮次 |
训练步骤 |
优化器 |
学习率 |
训练时长 |
配置 |
gpt-neo-125M-dutch |
GPT Neo |
1.25亿 |
512 |
20.9 |
3.04 |
128 |
1 |
19万/55.8万 |
Adam |
2.4e-3 |
1天12小时 |
完整版 |
gpt2-medium-dutch |
GPT2 |
3.45亿 |
512 |
15.1 |
2.71 |
128 |
1 |
32万/52万 |
Adam |
8e-4 |
7天2小时 |
完整版 |
gpt2-large-dutch |
GPT2 |
7.62亿 |
512 |
15.1 |
2.72 |
32 |
1 |
110万/208万 |
Adafactor |
3.3e-5 |
8天15小时 |
大型版 |
gpt-neo-1.3B-dutch |
GPT Neo |
13亿 |
512 |
16.0 |
2.77 |
16 |
1 |
96万/304万 |
Adafactor |
5e-4 |
7天11小时 |
完整版 |
致谢
本项目得益于Google通过TPU研究云慷慨提供的计算资源。HuggingFace🤗生态系统在训练过程的各个环节都发挥了关键作用。以下资源对TPU-VM设置和模型训练提供了重要帮助:
由Yeb Havinga创建