🚀 Viking 13B
Viking 13B是一個擁有130億參數的僅解碼器變壓器模型,它在芬蘭語、英語、瑞典語、丹麥語、挪威語、冰島語和代碼數據上進行了預訓練。目前,該模型正在2萬億個標記上進行訓練(截至本次發佈時,已訓練1.3萬億個標記)。Viking 13B是一個完全開源的模型,遵循Apache 2.0許可證。
Viking由圖爾庫大學的TurkuNLP小組、Silo AI旗下的SiloGen以及高性能語言技術(HPLT)合作創建。訓練工作在LUMI超級計算機上進行,該計算機由芬蘭科學信息技術中心CSC慷慨提供計算資源。
本項目是為非英語語言(尤其是像芬蘭語這樣的低資源語言)創建開源大語言模型的持續努力的一部分。該模型能夠流利使用芬蘭語、英語和斯堪的納維亞語言,並能在這些語言之間進行基本翻譯。此外,它還能夠理解和生成代碼。
✨ 主要特性
- 支持多種語言:能夠處理芬蘭語、英語、瑞典語、丹麥語、挪威語、冰島語和代碼。
- 開源模型:完全開源,遵循Apache 2.0許可證。
- 多參數選擇:有7B、13B和33B三種參數規模可供選擇。
📚 詳細文檔
模型家族
Viking是LumiOpen發佈的第二組模型,有3種參數規模可供選擇:
模型概述
注意:這是一個基礎模型,對於大多數用例,需要進一步微調。
Viking是一個生成式預訓練變壓器模型,採用類似LLaMA的GPT架構,並使用旋轉位置嵌入和閃存注意力機制。
屬性 |
詳情 |
模型類型 |
生成式預訓練變壓器模型,採用類似LLaMA的GPT架構 |
參數數量 |
140億 |
層數 |
40 |
頭數 |
40 |
模型維度 |
5120 |
詞表大小 |
131072 |
序列長度 |
4096 |
訓練
Viking 13B在LUMI超級計算機上進行訓練,使用了512個AMD MI250X GPU。每個MI250X GPU有兩個圖形複合芯片(GCD),訓練時的全局大小為1024。訓練過程中使用了激活檢查點、微批量大小為1、梯度累積為16,以及TP=2、PP=4、DP=128的3D並行策略。
訓練於2023年9月開始,使用了Megatron-Deepspeed框架的自定義分支。
訓練超參數
超參數 |
值 |
註釋 |
精度 |
bfloat16 |
|
優化器 |
AdamW |
|
學習率 |
3e-4 |
100億標記熱身,餘弦衰減至3e-5 |
權重衰減 |
1e-1 |
|
批量大小 |
1024 |
1024個樣本 x 4096個標記 = 4194304個標記 |
分詞器
Viking使用了一個自定義的128K Bloom分詞器,該分詞器在與模型訓練相同的英語、芬蘭語、瑞典語、丹麥語、挪威語、冰島語和代碼數據集上進行了訓練。
數據集
Viking正在一個包含2萬億個標記的混合數據集上進行訓練,該數據集包含英語、芬蘭語、瑞典語、丹麥語、挪威語、冰島語和代碼。
關於確切數據集的更多詳細信息將很快公佈。
評估結果
完整的評估結果將隨最終模型一起公佈。
訓練檢查點
訓練檢查點以分支的形式在倉庫中提供。大約每1000億個標記會發布一次檢查點。主分支將始終指向最新的檢查點。以下是可用的檢查點:
你可以使用transformers庫從分支加載檢查點,示例代碼如下:
branch = "1700B"
model = transformers.AutoModelForCausalLM.from_pretrained(
"LumiOpen/Viking-13B",
torch_dtype=torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16,
revision=branch,
)
倫理考慮和侷限性
Viking 13B是一個部分訓練模型的發佈版本,使用任何輸出時都應格外小心。
Viking是一個先進的語言模型,主要針對英語、芬蘭語、瑞典語、挪威語、丹麥語、冰島語和代碼進行了優化,對其他語言沒有有意義的熟練度。與大多數人工智能驅動的系統一樣,Viking是其訓練的大量數據的產物,這些數據可能反映了更廣泛網絡的不完美、偏見和特性。Viking有時可能會產生被認為不準確、有偏見或有爭議的輸出。使用和開發Viking的用戶和開發者應謹慎行事,並考慮進行額外的評估和定製,以確保模型的響應符合他們的特定需求和道德標準。
許可證
Viking遵循Apache 2.0許可證發佈。