🚀 維京 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 許可協議發佈。