🚀 BübleLM
BübleLM是一个小型的德语语言模型,它基于Gemma - 2 - 2B进行适配,运用了跨分词法和自定义的德语SentencePiece分词器,在保持基础模型能力的同时,显著提升了性能。
🚀 快速开始
使用该模型前,请确保你安装了sentencepiece
分词器:
pip install sentencepiece
以下是使用示例:
from transformers import pipeline
pipe = pipeline("text-generation", model="flair/bueble-lm-2b")
pipe("Ich bin")
或者使用完整的模型API:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("flair/bueble-lm-2b")
model = AutoModelForCausalLM.from_pretrained(
"flair/bueble-lm-2b",
device_map="auto",
torch_dtype=torch.bfloat16
)
text = "Berlin ist eine Stadt, die"
inputs = tokenizer(text, return_tensors="pt").to("cuda")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0]))
注意:这是一个基础语言模型,未经过指令微调,未针对聊天或指令跟随进行优化。为获得最佳效果,请使用标准文本补全而非聊天模板。对于指令微调实验或聊天应用,建议先使用合适的德语指令数据集对模型进行微调。
✨ 主要特性
- 基于Gemma - 2B解码器架构,运用自定义德语SentencePiece分词器,展示了特定语言分词如何在保持基础模型能力的同时显著提升性能。
- 在多个德语任务(如ARC - DE、HellaSwag - DE)上相比Gemma - 2 - 2B基线有显著性能提升。
- 在毒性和性别偏见方面有一定的评估和特点。
📦 安装指南
确保安装sentencepiece
分词器:
pip install sentencepiece
📚 详细文档
模型详情
属性 |
详情 |
架构 |
基于Gemma - 2B仅解码器架构 |
参数 |
20亿 |
分词器 |
自定义德语SentencePiece分词器(20k词汇表) - 生育率:每个单词1.78个标记 - 针对德语形态结构进行优化 - 在与模型相同的语料库上训练 |
上下文长度 |
8192个标记 |
训练硬件 |
单节点,配备4个NVidia A100 - SXM4 - 80GB GPU |
训练数据
在Occiglot - FineWeb项目的35亿个标记上进行训练,包括:
- 当代网络内容(OSCAR 2015 - 2023)
- 立法文件(EurLex、ParlamInt)
- 新闻数据(Tagesschau)
- 维基来源
数据采样权重:
性能
与Gemma - 2 - 2B基线相比的关键改进:
- HellaSwag - DE:+71%(47.9% vs 28.0%)
- ARC - DE:+41%(32.3% vs 22.9%)
- 平均零样本:+40%(35.8% vs 25.5%)
→ BübleLM - 2B在大多数任务上始终优于基础的Gemma - 2 - 2B和其他德语模型(如LLäMmlein - 1B)。
模型 |
ARC - DE (0 - shot) |
ARC - DE (3 - shot) |
HellaSwag - DE (0 - shot) |
HellaSwag - DE (3 - shot) |
TruthfulQA - DE (0 - shot) |
平均 (0 - shot) |
[Gemma - 2 - 2B](https://huggingface.co/google/gemma - 2 - 2B) |
22.9 |
23.1 |
28.0 |
27.6 |
25.5 |
25.5 |
[LLäMmlein - 120M](https://huggingface.co/LSX - UniWue/LLaMmlein_120M) |
24.7 ↑+8% |
- |
32.0 ↑+14% |
- |
25.0 ↓ - 2% |
27.2 ↑+7% |
[LLäMmlein - 1B](https://huggingface.co/LSX - UniWue/LLaMmlein_1B) |
30.0 ↑+31% |
- |
48.5 ↑+73% |
- |
23.4 ↓ - 8% |
34.0 ↑+33% |
[Sauerkraut - Gemma - 2B](https://huggingface.co/VAGOsolutions/SauerkrautLM - Gemma - 2b) |
28.0 ↑+22% |
34.6 ↑+50% |
37.2 ↑+33% |
44.1 ↑+60% |
32.9 ↑+29% |
32.7 ↑+28% |
BübleLM (我们的模型) |
32.3 ↑+41% |
35.2 ↑+52% |
47.9 ↑+71% |
46.6 ↑+69% |
27.2 ↑+7% |
35.8 ↑+40% |
性能在德语版的ARC(基于知识的问答)、HellaSwag(常识推理)和TruthfulQA(真实性)上进行评估。数值以百分比表示准确率,箭头表示相对于Gemma - 2B基线的相对改进。最佳结果以粗体显示。
安全与伦理
毒性
- 困惑度:在德语TextDetox数据集上为52.97
- 与基线相比,有毒内容更偏离分布
性别偏见
- 使用传统形式和性别包容形式之间的困惑度差异进行评估
- 对性别包容语言有轻微偏好(无统计学意义)
- 示例:“Lehrer” 与 “Lehrer*innen”(∆PPL = - 9.61)
🔧 技术细节
局限性
- 与多语言模型(Gemma为250k)相比,词汇量有限(20k标记)。
- 在训练数据中未充分代表的专业领域,性能可能会有所不同。
- 由于词汇量较小,生育率较高(1.78)。
- 继承了Gemma架构的基础局限性。
📄 许可证
本项目采用Apache 2.0许可证。
📚 引用
@article{delobelle2024buble,
title={BübleLM: A small German LM},
author={Delobelle, Pieter and Akbik, Alan and others},
year={2024}
}