🚀 EuroLLM - 9B模型卡片
EuroLLM - 9B是一個強大的多語言大語言模型,旨在理解和生成多種歐洲語言及其他相關語言的文本。該模型由多個知名機構聯合開發,獲得歐盟資助,具有廣泛的應用前景。你還可以查看其指令微調版本:EuroLLM - 9B - Instruct。
🚀 快速開始
運行模型
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))
✨ 主要特性
- 多語言支持:支持保加利亞語、克羅地亞語、捷克語、丹麥語、荷蘭語、英語、愛沙尼亞語、芬蘭語、法語、德語、希臘語、匈牙利語、愛爾蘭語、意大利語、拉脫維亞語、立陶宛語、馬耳他語、波蘭語、葡萄牙語、羅馬尼亞語、斯洛伐克語、斯洛文尼亞語、西班牙語、瑞典語、阿拉伯語、加泰羅尼亞語、中文、加利西亞語、印地語、日語、韓語、挪威語、俄語、土耳其語和烏克蘭語等多種語言。
- 先進架構:採用標準的密集Transformer架構,使用分組查詢注意力(GQA)、預層歸一化、RMSNorm、SwiGLU激活函數和旋轉位置嵌入(RoPE)等技術,提高了推理速度和下游任務性能。
📦 安裝指南
文檔未提及具體安裝步驟,可參考transformers
庫的官方安裝文檔進行安裝。
💻 使用示例
基礎用法
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))
📚 詳細文檔
模型詳情
EuroLLM項目旨在創建一套能夠理解和生成所有歐盟語言以及一些其他相關語言文本的大語言模型。EuroLLM - 9B是一個具有90億參數的模型,在4萬億個標記上進行訓練,這些標記分佈在考慮的語言和多個數據源中,包括網絡數據、平行數據(英語 - 其他語言和其他語言 - 英語)和高質量數據集。EuroLLM - 9B - Instruct在EuroBlocks上進行了進一步的指令微調,EuroBlocks是一個專注於通用指令遵循和機器翻譯的指令微調數據集。
模型描述
EuroLLM使用標準的密集Transformer架構:
- 分組查詢注意力(GQA):使用8個鍵值頭,在保持下游性能的同時提高了推理速度。
- 預層歸一化:採用RMSNorm,提高了訓練穩定性並加快了計算速度。
- SwiGLU激活函數:在下游任務中取得了良好的效果。
- 旋轉位置嵌入(RoPE):在每一層都使用,允許擴展上下文長度並取得了良好的性能。
訓練信息
在預訓練過程中,使用了Marenostrum 5超級計算機的400個Nvidia H100 GPU,以2800個序列的恆定批量大小(約1200萬個標記)訓練模型,使用Adam優化器和BF16精度。以下是模型超參數的總結:
屬性 |
詳情 |
序列長度 |
4,096 |
層數 |
42 |
嵌入大小 |
4,096 |
FFN隱藏大小 |
12,288 |
頭數 |
32 |
KV頭數(GQA) |
8 |
激活函數 |
SwiGLU |
位置編碼 |
RoPE (\Theta = 10,000) |
層歸一化 |
RMSNorm |
綁定嵌入 |
否 |
嵌入參數 |
0.524B |
LM頭參數 |
0.524B |
非嵌入參數 |
8.105B |
總參數 |
9.154B |
結果
歐盟語言
表1:開放權重的大語言模型在多語言基準測試中的比較。博爾達計數對應於模型的平均排名(見 (Colombo et al., 2022))。對於Arc - challenge、Hellaswag和MMLU,我們使用Okapi數據集(Lai et al., 2023),其中包括11種語言。對於MMLU - Pro和MUSR,我們使用Tower(Alves et al., 2024)將英語版本翻譯成6種歐盟語言。
* 由於沒有預訓練模型的公開版本,我們使用後訓練版本進行評估。
表1的結果顯示,EuroLLM - 9B在多語言任務上的性能優於其他歐洲開發的模型(博爾達計數為1.0),並且與非歐洲模型具有很強的競爭力,取得了與Gemma - 2 - 9B相當的結果,在大多數基準測試中超過了其他模型。
英語
表2:開放權重的大語言模型在英語通用基準測試中的比較。
* 由於沒有預訓練模型的公開版本,我們使用後訓練版本進行評估。
表2的結果表明,EuroLLM在英語任務上表現出色,超過了大多數歐洲開發的模型,與Mistral - 7B的性能相當(獲得相同的博爾達計數)。
🔧 技術細節
架構選擇
- 分組查詢注意力(GQA):通過減少鍵值頭的數量,在不顯著損失性能的情況下提高了推理速度。
- 預層歸一化和RMSNorm:提高了訓練的穩定性和計算效率。
- SwiGLU激活函數:在非線性變換中表現良好,有助於模型學習更復雜的模式。
- 旋轉位置嵌入(RoPE):允許模型處理更長的上下文,同時保持良好的性能。
訓練設置
- 硬件資源:使用400個Nvidia H100 GPU進行預訓練。
- 批量大小:恆定批量大小為2800個序列,約1200萬個標記。
- 優化器:使用Adam優化器。
- 精度:採用BF16精度。
📄 許可證
本模型採用Apache License 2.0許可證。
重要提示
⚠️ 重要提示
EuroLLM - 9B未針對人類偏好進行對齊,因此模型可能會生成有問題的輸出(例如,幻覺、有害內容或虛假陳述)。
💡 使用建議
在使用模型時,建議對生成的內容進行審核和驗證,以確保其準確性和安全性。