🚀 Poro 2 8B 指令模型卡片
Poro 2 8B Instruct 是一个遵循指令的聊天机器人模型,它通过对 Poro 2 8B 基础模型进行监督微调(SFT)和直接偏好优化(DPO)而创建。该模型专为芬兰语和英语的对话式 AI 应用程序和指令遵循而设计。它在精心策划的英语和芬兰语指令数据混合集上进行训练,随后进行偏好调整以提高回复质量。
Poro 2 是由 AMD Silo AI、图尔库大学的 TurkuNLP 小组 以及 高性能语言技术(HPLT)合作创建的。训练在 LUMI 超级计算机 上进行,使用了芬兰 CSC - 科学信息技术中心慷慨提供的计算资源。
该模型展示了如何通过持续预训练和指令调整,在现有模型中高效添加新的语言能力,同时在原始语言和目标语言中保持强大的对话能力。
有关我们的训练和数据生成流程的更多详细信息,请查看我们的 持续预训练手册。
✨ 主要特性
Poro 2 模型家族
Poro 2 模型家族包括 8B 和 70B 两种模型,并且 Poro 2 模型发布了三个不同版本:基础模型、仅经过训练后 SFT 的检查点,以及最终的指令模型(即 SFT 模型加上一轮 DPO)。
“Poro” 是什么意思? “Poro” 在芬兰语中是驯鹿的意思!🦌 这些动物原产于芬兰,在芬兰的文化和历史中具有重要地位。
模型概述
Poro 2 8B Instruct 基于 Llama 3.1 8B 架构,并针对指令遵循和对话式 AI 应用进行了微调。该模型支持英语和芬兰语对话。
属性 |
详情 |
模型参数数量 |
80.3 亿 |
层数 |
32 |
头数 |
32 |
KV 头数 |
8 |
模型维度 |
4096 |
词表大小 |
128256 |
最大序列长度 |
8192 |
基础模型 |
Llama-3.1-8B |
📚 详细文档
训练过程
持续预训练
Poro 2 8B 基础模型是通过在 1650 亿个芬兰语、英语、代码和数学数据的标记上进行持续预训练而创建的。
监督微调(SFT)
SFT 阶段使用了 140 万个英语和芬兰语的指令遵循示例,包括:
- 带有 Llama-3.3-70B-Instruct 回复的英语和芬兰语 Tulu 3 提示
- 使用 Magpie 方法生成的多轮对话
- OASST2 和 Avoin Avustaja 数据集中评分最高的对话
- 来自 EuroParl 的翻译样本
我们还发布了 Poro 2 指令集。
直接偏好优化(DPO)
最终模型使用 HelpSteer3 数据集进行了偏好调整,以提高回复质量和对齐度。
训练后超参数
SFT
超参数 |
值 |
训练轮数 |
2 |
全局批次大小 |
64 |
学习率 |
5e-6 |
学习率调度器 |
线性 |
热身比例 |
0.03 |
最大序列长度 |
4096 |
DPO
超参数 |
值 |
训练轮数 |
3 |
全局批次大小 |
64 |
Beta |
0.01 |
学习率 |
5e-7 |
学习率调度器 |
余弦 |
热身比例 |
0.1 |
最大长度 |
4096 |
评估结果
与 Llama 3.1 8B Instruct 相比,Poro 2 8B Instruct 在芬兰语指令遵循能力方面有显著提升,同时在英语方面保持了较强的性能。
芬兰语指令遵循
评估指标 |
Poro 2 8B Instruct |
Llama 3.1 8B Instruct |
I FEval 芬兰语 |
66.54 |
47.31 |
MTBench 芬兰语 |
6.75 |
4.10 |
AlpacaEval 2 芬兰语 |
28.89 |
2.05 |
英语指令遵循
评估指标 |
Poro 2 8B Instruct |
Llama 3.1 8B Instruct |
I FEval |
79.29 |
79.48 |
MTBench |
7.33 |
7.70 |
AlpacaEval 2 |
35.30 |
32.70 |
成对比较(MTBench)
- 芬兰语:与 Llama 3.1 8B Instruct 相比,胜率为 85%
- 芬兰语:与 Llama 3.3 70B Instruct 相比,胜率为 51%
- 英语:与 Llama 3.1 8B Instruct 相比,胜率为 49%
总体而言:在保持英语性能的同时,芬兰语指令遵循基准测试平均提高了约 24%。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_name = "LumiOpen/Poro-2-8B-Instruct"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto"
)
messages = [
{"role": "user", "content": "Kerro minulle Suomen historiasta."}
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
)
outputs = model.generate(
inputs,
max_new_tokens=500,
temperature=0.7,
do_sample=True,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(response)
预期用途
Poro 2 8B Instruct 旨在用于以下方面:
- 芬兰语和英语的对话式 AI 应用程序
- 问答和信息检索
- 内容生成和创意写作
- 教育应用程序
- 客户服务和支持应用程序
- 芬兰语和英语之间的翻译
伦理考量和局限性
Poro 2 8B Instruct 是一个针对英语和芬兰语指令遵循进行优化的高级对话式 AI 模型。与大多数 AI 驱动的系统一样,该模型可能反映出其训练数据中存在的不完美、偏差和特性。
主要局限性:
- 除英语和芬兰语外,对其他语言的掌握有限
- 偶尔可能会生成有偏差、不适当或事实错误的内容
- 在专业或技术领域的表现可能会有很大差异
- 上下文窗口限制为 8192 个标记
- 可能难以处理近期事件(知识截止限制)
⚠️ 重要提示
用户应独立验证重要的事实陈述。在没有人工监督的情况下,该模型不得用于提供医疗、法律或财务建议。在敏感语境中,应审查回复的适当性。
📄 许可证
基于 Llama 构建
Poro 2 8B Instruct 根据 Llama 3.3 社区许可证发布。请在使用前查看许可证条款。
引用
@misc{poro2_2025,
title={Poro 2: Continued Pretraining for Language Acquisition},
author={Elaine Zosa and Jouni Louma and Kai Hakala and Antti Virtanen and Mika Koistinen and Risto Luukkonen and Akseli Reunamo and Sampo Pyysalo and Jonathan Burdge},
year={2025},
howpublished={LumiOpen}
}
致谢
我们感谢芬兰的 CSC - 科学信息技术中心提供对 LUMI 超级计算机的访问权限。这项工作得到了高性能语言技术(HPLT)项目的支持,并与图尔库大学的 TurkuNLP 合作开展。该项目获得了欧盟 “地平线欧洲” 研究与创新计划的资助,资助协议编号为 101070350。