🚀 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。