license: llama3
language:
- de
library_name: transformers
Llama3-German-8B-32k(版本0.1)
此模型为长上下文扩展版本,具体说明参见下文
Llama3-German-8B-v0.1是基于Meta的Llama3-8B的大语言模型。通过对650亿高质量德语语料的持续预训练,该模型专为德语优化,延续了此前LeoLM和Occiglot模型的开发思路。
Llama3原模型虽在15万亿token上训练,但其中仅不到1万亿是多语言数据,导致其德语表现欠佳——语言能力受限且频繁出现语法错误,这促使我们进行持续预训练。基准测试显示,尽管训练过程中未采用回放机制,我们的模型在英语任务上性能衰减极小。更重要的是,Llama3-German-8B-v0.1在德语任务上显著提升,尤其在衡量语言理解与通用推理的Hellaswag基准测试中表现突出。
DiscoResearch/Llama3-German-8B-v0.1是DiscoResearch与Occiglot在DFKI(德国人工智能研究中心)和hessian.AI支持下合作的成果。Occiglot团队负责了数据预处理、过滤和去重工作(详见其最新数据集发布),并共享了hessian.AI 42超级计算机的计算资源。
使用方法
此为基座模型,建议微调后使用。参见我们的模型集获取不同微调版本及长上下文版本。
训练参数
模型在hessian.AI 42的128块GPU上训练约60小时,具体参数如下:
参数 |
值 |
序列长度 |
8192 token |
学习率 |
1.5e-5至1.5e-6(余弦调度) |
批次大小 |
4194304 token(512*8192) |
微批次大小 |
4*8192 token |
训练步数 |
15500 |
预热步数 |
155(1%) |
权重衰减 |
0.05 |
优化器 |
AdamW |
数据准备
预训练使用occiglot-fineweb-0.5中的650亿德语token。数据包含来自LLM-Datasets的精选语料及12个Common-Crawl版本(经OSCAR Ungoliant管道处理)。所有数据通过HuggingFace fine-web语言过滤器进一步清洗并全局去重。详见数据集卡片与博文。
评估结果
使用GermanBench测试套件进行评估。下图显示基座模型meta-llama/Meta-Llama3-8B与不同超参配置的对比结果(最终发布版本为1.5e-5学习率模型):

详细得分如下表:
模型 |
truthful_qa_de |
truthfulqa_mc |
arc_challenge |
arc_challenge_de |
hellaswag |
hellaswag_de |
MMLU |
MMLU-DE |
平均分 |
DiscoResearch/Llama3-German-8B |
0.49499 |
0.44838 |
0.55802 |
0.49829 |
0.79924 |
0.65395 |
0.62240 |
0.54413 |
0.57743 |
DiscoResearch/Llama3-German-8B-32k |
0.48920 |
0.45138 |
0.54437 |
0.49232 |
0.79078 |
0.64310 |
0.58774 |
0.47971 |
0.55982 |
meta-llama/Meta-Llama-3-8B-Instruct |
0.47498 |
0.43923 |
0.59642 |
0.47952 |
0.82025 |
0.60008 |
0.66658 |
0.53541 |
0.57656 |
长上下文扩展
除基座模型外,我们发布了支持65k上下文的Llama3-German-8B-32k版本。该变体在32k上下文长度上额外训练1亿token,采用1.5e6
的rope_theta值,学习率1.5e-5
,批次大小256*8192
token,其他参数与基座模型一致。
指令微调
我们提供指令微调版本:Llama3-DiscoLeo-Instruct-8B-v0.1(基于DiscoLM德语数据集),以及其长上下文版本Llama3-DiscoLeo-Instruct-8B-32k-v0.1。另可尝试我们与meta-llama/Meta-Llama3-8B-Instruct的实验性DARE融合模型Llama3-DiscoLeo-8B-DARE-Experimental。
文档打包策略
采用Ding等人论文"Fewer Truncations Improve Language Modeling"提出的"首次适应递减算法",将文档按长度排序后打包至批次(打包效率>99%)。长文档被分割为序列长度块。实验表明该方法可提升基准分数(下表为3e-5学习率下12k步的测试结果):
任务 |
原始打包 |
优化打包 |
提升百分比 |
truthfulqa_mc |
0.452648 |
0.467687 |
+3.32% |
arc_challenge |
0.517918 |
0.528157 |
+1.98% |
算法实现参见代码块。
模型版本
我们发布以下配置:
- 持续预训练基座模型
- 长上下文版本(32k)
- 基座模型指令微调版
- 长上下文指令微调版
- 与Llama3-Instruct的DARE-TIES实验性融合
- 量化版本集
调用示例
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("DiscoResearch/Llama3-DiscoLeo-Instruct-8B-v0.1")
tokenizer = AutoTokenizer.from_pretrained("DiscoResearch/Llama3-DiscoLeo-Instruct-8B-v0.1")
prompt = "撰写关于能源转型对德国经济重要性的论文"
messages = [
{"role": "system", "content": "你是有帮助的助手"},
{"role": "user", "content": prompt}
]
inputs = tokenizer.apply_chat_template(messages, return_tensors="pt").to("cuda")
outputs = model.generate(inputs, max_new_tokens=512)
print(tokenizer.decode(outputs[0][inputs.shape[1]:], skip_special_tokens=True))
致谢
模型由Björn Plüster(DiscoResearch/ellamind)训练评估,数据由Manuel Brack(DFKI/TU-Darmstadt)监督。Malte Ostendorff与Pedro Ortiz Suarez完成初始数据整理。指令微调采用Jan-Philipp Harries和Daniel Auras创建的DiscoLM德语数据集。感谢LAION团队(特别是Christoph Schuhmann和Jenia Jitsev)促成合作。
训练获42超级计算机支持(隶属hessian AI计划,由黑森州科艺部与内政部资助的AI创新实验室,以及德国联邦教研部资助的AI服务中心)。数据整理部分由德国联邦经济与气候行动部通过OpenGPT-X项目(编号68GX21007D)资助。