模型卡片:EuroLLM-9B
这是EuroLLM-9B的模型卡片。您也可以查看其指令调优版本:EuroLLM-9B-Instruct。
- 开发团队: Unbabel、里斯本高等理工学院、电信研究所、爱丁堡大学、Aveni、巴黎萨克雷大学、阿姆斯特丹大学、Naver Labs、索邦大学。
- 资助方: 欧盟。
- 模型类型: 90亿参数的多语言Transformer大语言模型。
- 支持语言(NLP): 保加利亚语、克罗地亚语、捷克语、丹麦语、荷兰语、英语、爱沙尼亚语、芬兰语、法语、德语、希腊语、匈牙利语、爱尔兰语、意大利语、拉脱维亚语、立陶宛语、马耳他语、波兰语、葡萄牙语、罗马尼亚语、斯洛伐克语、斯洛文尼亚语、西班牙语、瑞典语、阿拉伯语、加泰罗尼亚语、中文、加利西亚语、印地语、日语、韩语、挪威语、俄语、土耳其语和乌克兰语。
- 许可协议: Apache 2.0许可证。
模型详情
EuroLLM项目旨在创建一套能够理解和生成所有欧盟语言及部分其他相关语言文本的大语言模型。EuroLLM-9B是一个90亿参数的模型,训练数据覆盖4万亿token,涵盖多种语言和数据来源:网络数据、平行语料(英-xx和xx-英)以及高质量数据集。EuroLLM-9B-Instruct进一步在EuroBlocks上进行了指令调优,该数据集专注于通用指令跟随和机器翻译。
模型描述
EuroLLM采用标准的密集Transformer架构:
- 使用8个键值头的分组查询注意力(GQA),在保持下游性能的同时提高推理速度。
- 采用预层归一化和RMSNorm,提升训练稳定性且速度更快。
- 使用SwiGLU激活函数,因其在下游任务中表现优异。
- 每层均使用旋转位置嵌入(RoPE),在保持性能的同时支持上下文长度扩展。
预训练使用Marenostrum 5超级计算机的400块Nvidia H100 GPU,以恒定批次大小2,800条序列(约1200万token)进行,采用Adam优化器和BF16精度。以下是模型超参数摘要:
参数项 |
值 |
序列长度 |
4,096 |
层数 |
42 |
嵌入维度 |
4,096 |
FFN隐藏层大小 |
12,288 |
注意力头数 |
32 |
键值头数(GQA) |
8 |
激活函数 |
SwiGLU |
位置编码 |
RoPE(Θ=10,000) |
层归一化 |
RMSNorm |
绑定嵌入 |
否 |
嵌入参数量 |
0.524B |
语言模型头参数量 |
0.524B |
非嵌入参数量 |
8.105B |
总参数量 |
9.154B |
运行模型
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "utter-project/EuroLLM-9B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)
text = "English: My name is EuroLLM. Portuguese:"
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=20)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
性能表现
欧盟语言

表1: 开源大语言模型在多语言基准测试中的对比。Borda计数反映模型平均排名(参见Colombo等,2022)。Arc-challenge、Hellaswag和MMLU测试使用包含11种语言的Okapi数据集(Lai等,2023),MMLU-Pro和MUSR测试通过Tower(Alves等,2024)将英语版本翻译为6种欧盟语言。
* 由于无预训练模型公开版本,评估使用后训练版本。
表1显示EuroLLM-9B在多语言任务中优于其他欧洲开发模型(Borda计数1.0),与非欧洲模型相比也极具竞争力,性能接近Gemma-2-9B并在多数基准测试中超越其他模型。
英语

表2: 开源大语言模型在英语通用基准测试中的对比。
* 由于无预训练模型公开版本,评估使用后训练版本。
表2表明EuroLLM在英语任务中表现优异,超越多数欧洲开发模型,与Mistral-7B性能相当(Borda计数相同)。
偏见、风险与局限性
EuroLLM-9B未经过人类偏好对齐,可能生成有问题输出(如幻觉、有害内容或虚假陈述)。