语言: 德语
组件:
- 文本: "科学家在一项惊人发现中,于安第斯山脉偏远且此前未经探索的山谷里找到了一群栖息于此的独角兽。"
许可证: MIT
GerPT2模型
德语版GPT2大模型与小模型:
关于模型局限性与偏见的说明请参阅GPT2模型卡片,技术细节详见GPT2文档。
在CC-100数据集和德语维基百科上对GerPT2-large与dbmdz/german-gpt2进行评测:
|
CC-100 (困惑度) |
维基百科 (困惑度) |
dbmdz/german-gpt2 |
49.47 |
62.92 |
GerPT2基础版 |
24.78 |
35.33 |
GerPT2大模型版 |
16.08 |
23.26 |
评测代码详见GerPT2 GitHub仓库中的evaluate.py
脚本。
使用方式
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
tokenizer = AutoTokenizer.from_pretrained("benjamin/gerpt2-large")
model = AutoModelForCausalLM.from_pretrained("benjamin/gerpt2-large")
prompt = "<您的提示文本>"
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
print(pipe(prompt)[0]["generated_text"])
两个生成优化技巧:
output = model.generate(
torch.tensor(
[tokenizer.eos_token_id] + tokenizer.encode(prompt)
).unsqueeze(0),
do_sample=True,
bad_words_ids=[[0]],
max_length=max_length,
)[0]
print(tokenizer.decode(output))
训练细节
GerPT2-large基于CC-100语料库德语数据训练,权重初始化自英文GPT2大模型。训练参数:
- 批量大小:256
- 学习率:OneCycle策略,峰值5e-3
- 优化器:AdamW(权重衰减0.01)
- 训练轮次:2轮
- 硬件:8个TPUv3核心(耗时约12天)
完整训练步骤参见GitHub仓库:
- 下载CC-100数据并解压
- 使用
prepare/train_tokenizer.py
训练分词器(采样5%数据)
- (可选)通过
prepare/generate_aligned_wte.py
生成德语词嵌入矩阵,利用英语到德语的语义映射提升效果
- 使用
prepare/tokenize_text.py
生成训练/验证集的JSON Lines格式分词文件
- 运行
train.py
(完整训练配置见configs/tpu_large.json
)
许可协议
MIT许可证
引用格式
@misc{Minixhofer_GerPT2_German_large_2020,
author = {Minixhofer, Benjamin},
doi = {10.5281/zenodo.5509984},
month = {12},
title = {{GerPT2: 德语版GPT2大小模型}},
url = {https://github.com/bminixhofer/gerpt2},
year = {2020}
}
致谢
感谢Hugging Face提供的基础设施,特别感谢LYTiQ的Artus Krohn-Grimberghe赞助训练资源。