🚀 维京 7B
维京 7B 是一个拥有 70 亿参数的仅解码器变压器模型,在芬兰语、英语、瑞典语、丹麦语、挪威语、冰岛语和代码数据上进行了预训练。它在 2 万亿个标记上进行了训练,是一个完全开源的模型,遵循 Apache 2.0 许可协议。
维京模型由图尔库大学的 图尔库自然语言处理小组、Silo AI 旗下的 SiloGen 以及 高性能语言技术(HPLT)合作创建。训练在 LUMI 超级计算机 上进行,使用了由芬兰科学信息技术中心 CSC 慷慨提供的计算资源。
本项目是为非英语语言(尤其是像芬兰语这样的低资源语言)创建开源大语言模型的持续努力的一部分。该模型能够流利使用芬兰语、英语和斯堪的纳维亚语言,并能在这些语言之间进行基本的翻译,同时也能够理解和生成代码。
✨ 主要特性
- 支持多种语言:涵盖芬兰语、英语、瑞典语、丹麦语、挪威语、冰岛语。
- 代码处理能力:能够理解和生成代码。
- 开源模型:遵循 Apache 2.0 许可协议,完全开源。
📚 详细文档
模型家族
维京是 LumiOpen 发布的第二组模型,有 3 种参数规模可供选择:
模型概述
⚠️ 重要提示
维京是一个基础模型,在大多数用例中需要进一步微调。
维京是一个生成式预训练变压器模型,采用类似 LLaMA 的 GPT 架构,并使用了旋转位置嵌入和闪存注意力机制。
属性 |
详情 |
参数量 |
75.5 亿 |
层数 |
32 |
头数 |
32 |
模型维度 |
4096 |
词表大小 |
131072 |
序列长度 |
4096 |
训练情况
维京 7B 在 LUMI 超级计算机上进行训练,使用了 256 个 AMD MI250X GPU。每个 MI250X GPU 有两个图形复合芯片(GCD),训练时的世界大小为 512。训练采用了激活检查点、微批次大小为 1、梯度累积为 16,以及 TP = 1、PP = 4、DP = 128 的 3D 并行策略。
训练于 2023 年 9 月开始,使用了 Megatron - Deepspeed 框架的自定义分支。
训练超参数
超参数 |
值 |
注释 |
精度 |
bfloat16 |
|
优化器 |
AdamW |
|
学习率 |
3e - 4 |
100 亿标记热身,余弦衰减至 3e - 5 |
权重衰减 |
1e - 1 |
|
批次大小 |
1024 |
1024 个样本 x 4096 个标记 = 4194304 个标记 |
分词器
维京使用了一个自定义的 128K Bloom 分词器,该分词器在与训练模型相同的英语、芬兰语、瑞典语、丹麦语、挪威语、冰岛语和代码数据集上进行了训练。
数据集
维京在一个包含 2 万亿标记的英语、芬兰语、瑞典语、丹麦语、挪威语、冰岛语和代码的混合数据集上进行训练。
具体数据集的更多详细信息将很快公布。
评估结果
完整的评估结果将随最终模型一起发布。
训练检查点
训练检查点以分支的形式在仓库中提供。大约每 1000 亿标记会发布一个检查点,主分支将始终指向最新的检查点。以下检查点可供使用:
使用 transformers
库可以从分支加载检查点,示例代码如下:
💻 使用示例
基础用法
branch = "2000B"
model = transformers.AutoModelForCausalLM.from_pretrained(
"LumiOpen/Viking-7B",
torch_dtype=torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16,
revision=branch,
)
伦理考量与局限性
⚠️ 重要提示
维京 7B 是一个部分训练模型的版本,使用任何输出时应格外小心。
维京是一个先进的语言模型,主要针对英语、芬兰语、瑞典语、挪威语、丹麦语、冰岛语和代码进行了优化,对其他语言没有有意义的熟练度。与大多数人工智能驱动的系统一样,维京是其训练的大量数据的产物,这些数据可能反映了更广泛网络中的不完美、偏见和特性。维京有时可能会产生被认为不准确、有偏见或有争议的输出。使用和开发维京的用户和开发者应谨慎行事,并考虑进行额外的评估和定制,以确保模型的响应符合他们的特定需求和道德标准。
📄 许可证
维京模型遵循 Apache 2.0 许可协议发布。