模型概述
模型特點
模型能力
使用案例
🚀 GaMS-9B-Instruct模型
GaMS-9B-Instruct是基於Google的Gemma 2系列的模型,針對斯洛文尼亞語、英語及部分克羅地亞語、塞爾維亞語和波斯尼亞語語料進行持續預訓練。該模型可用於文本生成、聊天機器人、文本摘要等自然語言處理任務。
🚀 快速開始
這是 cjvt/GaMS-9B-Instruct 模型的GGUF版本,為盧布爾雅那大學計算機與信息科學學院的網絡信息提取與檢索課程轉換而來。
GaMS-2B、GaMS-9B和GaMS-27B是GaMS(斯洛文尼亞語生成模型)系列的新改進和更大規模的模型。這些模型基於Google的Gemma 2系列,並在斯洛文尼亞語、英語以及部分克羅地亞語、塞爾維亞語和波斯尼亞語語料上進行了持續預訓練。
這是GaMS-9B模型的SFT版本。
✨ 主要特性
- 多語言支持:支持斯洛文尼亞語、英語、克羅地亞語、波斯尼亞語和塞爾維亞語等多種語言。
- 持續預訓練:在多種語料上進行持續預訓練,提升模型性能。
- SFT版本:經過監督微調,更適合特定任務。
📦 安裝指南
該模型可通過pipeline
API運行,以下是示例代碼:
單GPU推理
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="cuda" # 若在Mac設備上運行,將其替換為 "mps"
)
# 響應生成示例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("Model's response:", response[0]["generated_text"][-1]["content"])
# 對話鏈示例
new_message = response[0]["generated_text"]
new_message.append({"role": "user", "content": "Lahko bolj podrobno opišeš ta dogodek?"})
response = pipeline(new_message, max_new_tokens=1024)
print("Model's response:", response[0]["generated_text"][-1]["content"])
多GPU推理
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="auto"
)
# 響應生成示例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("Model's response:", response[0]["generated_text"][-1]["content"])
# 對話鏈示例
new_message = response[0]["generated_text"]
new_message.append({"role": "user", "content": "Lahko bolj podrobno opišeš ta dogodek?"})
response = pipeline(new_message, max_new_tokens=1024)
print("Model's response:", response[0]["generated_text"][-1]["content"])
💻 使用示例
基礎用法
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="cuda" # 若在Mac設備上運行,將其替換為 "mps"
)
# 響應生成示例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("Model's response:", response[0]["generated_text"][-1]["content"])
高級用法
# 多GPU推理示例
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="auto"
)
# 對話鏈示例
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
new_message = response[0]["generated_text"]
new_message.append({"role": "user", "content": "Lahko bolj podrobno opišeš ta dogodek?"})
response = pipeline(new_message, max_new_tokens=1024)
print("Model's response:", response[0]["generated_text"][-1]["content"])
📚 詳細文檔
基本信息
屬性 | 詳情 |
---|---|
開發者 | 盧布爾雅那大學計算機與信息科學學院的研究團隊。團隊成員包括:Domen Vreš、Iztok Lebar Bajec、Tjaša Arčon、Gašper Jelovčan和Marko Robnik-Šikonja。 |
支持語言 | 斯洛文尼亞語、英語(主要)、克羅地亞語、波斯尼亞語和塞爾維亞語(次要)。該模型可能也適用於Gemma 2支持的其他語言,儘管未在這些語言上進行持續預訓練。 |
基礎模型 | cjvt/GaMS-9B |
許可證 | Gemma |
數據
CPT數據
模型的持續預訓練分兩個階段進行。第一階段使用平行的英 - 斯(某些情況下包括克羅地亞語)語料庫來對齊語言。第二階段,模型在單獨的英語、斯洛文尼亞語、克羅地亞語、波斯尼亞語和塞爾維亞語語料庫上進行訓練。
平行對齊語料庫
語料庫 | 對齊級別 | 標記數 | 百分比 |
---|---|---|---|
KAS Abstracts | 文檔級別 | 31 M | 1.65 % |
DGT | 單獨文檔 | 697 M | 36.56 % |
MaCoCu Parallel | 單獨文檔 | 430 M | 22.53 % |
CC-News | 段落級別 | 749 M | 39.25 % |
總計 | 1.91 B |
各對齊級別的解釋:
- 文檔級別:平行文檔連接成單個文檔。
- 單獨文檔:平行文檔未明確對齊。
- 段落級別:平行文檔的段落連接(斯洛文尼亞語/英語文檔的第一段之後是另一種語言的第一段,然後是第一種語言的第二段,依此類推)。
第二階段語料庫
語料庫 | 語言 | 標記數 | 百分比 |
---|---|---|---|
KAS | 斯洛文尼亞語 | 2.77 B | 20.34 % |
MetaFida* | 斯洛文尼亞語 | 4.66 B | 34.18 % |
Wikipedia-En (日期:2025年1月23日) | 英語 | 5.45 B | 39.99 % |
Wikipedia-Sl (日期:2025年1月1日) | 斯洛文尼亞語 | 0.16 B | 1.19 % |
Wikipedia-Hr (日期:2025年1月1日) | 克羅地亞語 | 0.15 B | 1.13 % |
Wikipedia-Bs (日期:2025年1月1日) | 波斯尼亞語 | 0.07 B | 0.50 % |
Wikipedia-Sr-Latin* | 塞爾維亞語 | 0.36 B | 2.68 % |
總計 | 13.62 B |
備註:
- 以下語料庫從MetaFida中排除:dgt15_sl、classlawiki_sl、tweet_sl、janes_tweet、janes_forum、janes_news。
- 塞爾維亞語維基百科從西裡爾字母轉換為拉丁字母。
SFT數據
我們的SFT訓練數據包括約25,000個訓練示例和1,500個驗證示例。數據集是以下數據集的混合:
- GaMS-Instruct-GEN 1.0
- GaMS-Instruct-DH 1.0:從該數據集中隨機選擇3000個示例。
- GaMS-Instruct-MED 1.0:從該數據集中隨機選擇3000個示例。
- Parallel corpus EN-SL RSDO4 2.0:對該語料庫進行了額外過濾。首先使用NeMo Curator運行FastText語言識別,僅保留源語言檢測為英語、目標語言檢測為斯洛文尼亞語的示例。然後運行COMET模型評估翻譯,僅保留COMET分數高於0.945的示例(約8000個示例)。
- Aya Dataset:僅從該數據集中選取英語和塞爾維亞語示例。塞爾維亞語示例從西裡爾字母轉換為拉丁字母。
- 數學競賽:我們獲取了2001年至2010年斯洛文尼亞全國數學競賽的PDF文件。使用olmOCR從PDF中提取文本,並手動糾正提取的文本。這為我們提供了約150個已解決的數學問題。
訓練
模型在Leonardo HPC的Booster分區上進行訓練。
CPT
我們使用NVIDIA NeMo 2.0框架對模型進行持續預訓練。模型在BF16混合精度下使用張量並行(跨4個GPU)、序列並行和激活重計算進行訓練。模型在32個節點上進行訓練,每個節點包含4個A100 64GB GPU。平行對齊訓練約需4小時,第二階段約需40小時。
模型使用帶有線性預熱的餘弦學習率調度器進行訓練,超參數如下:
平行對齊:
- 預熱步數:150
- 最小學習率:5e-6
- 最大學習率:2e-5
- 恆定步數:0
- 批量大小:512(400萬個標記)
第二階段:
- 預熱步數:500
- 最小學習率:5e-6
- 最大學習率:5e-5
- 恆定步數:100
- 批量大小:512(400萬個標記)
SFT
對於監督微調,我們使用帶有DeepSpeed ZeRO-3的Transformers庫。模型在BF16精度下使用管道並行在4個GPU上進行訓練。模型在一個包含4個A100 64GB GPU的節點上進行訓練。我們對優化器使用CPU卸載。
模型使用帶有線性預熱的餘弦學習率調度器進行微調,超參數如下:
- 訓練輪數:訓練進行了5輪,但根據驗證損失,最佳性能模型在第二輪後獲得,因此我們保留了該模型。
- 批量大小:128
- 預熱步數:150
- 最小學習率:1e-7
- 最大學習率:5e-6
- 恆定步數:0
評估
模型使用Slovene SuperGLUE分類任務集合在SloBench上進行評估。模型的指令版本還在英語到斯洛文尼亞語和斯洛文尼亞語到英語的翻譯任務上進行了評估。此外,我們在Slovenian-LLM-Eval上評估了我們的模型。
評估代碼:
Slovenian-LLM-Eval結果
下圖展示了GaMS模型、基礎Gemma 2模型和SlovenianGPT(基於Mistral 7B的斯洛文尼亞語開源模型)在0-shot場景下的評估比較。
Slobench結果
GaMS 2B、9B和27B模型在3-shot場景下進行評估,MultiRC和翻譯任務除外,這些任務使用0-shot。GaMS-9B-Instruct在所有任務上均在0-shot場景下進行評估。我們使用引導解碼以確保響應格式正確。
斯洛文尼亞語SuperGLUE
排名 | 模型名稱 | 平均得分 | BoolQ準確率 | CB準確率 | CB F1得分 | CB平均得分 | COPA準確率 | MultiRC EM | MultiRC F1a得分 | MultiRC平均得分 | RTE準確率 | WSC準確率 |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | GaMS-27B | 0.7601 | 0.8333 | 0.6440 | 0.5864 | 0.6152 | 0.9540 | 0.3904 | 0.7504 | 0.5704 | 0.7931 | 0.7945 |
2 | PrešernGPT 0.1 | 0.7568 | 0.8333 | 0.8520 | 0.5868 | 0.7194 | 0.9740 | 0.4985 | 0.8061 | 0.6523 | 0.8276 | 0.5342 |
3 | Gemma 2 27B | 0.7546 | 0.8333 | 0.6680 | 0.5972 | 0.6326 | 0.9140 | 0.4174 | 0.7295 | 0.5735 | 0.8276 | 0.7466 |
4 | GaMS-9B | 0.7309 | 0.7000 | 0.8400 | 0.7955 | 0.8178 | 0.9000 | 0.3243 | 0.6551 | 0.4897 | 0.7931 | 0.6849 |
5 | GaMS-9B-Instruct | 0.6997 | 0.8000 | 0.7960 | 0.7128 | 0.7544 | 0.8140 | 0.0721 | 0.6174 | 0.3447 | 0.7931 | 0.6918 |
6 | Gemma 2 9B | 0.6980 | 0.8333 | 0.8240 | 0.5683 | 0.6962 | 0.8700 | 0.2282 | 0.5310 | 0.3796 | 0.7241 | 0.6849 |
8 | CroSloEngual BERT | 0.6078 | 0.7333 | 0.7920 | 0.7437 | 0.7679 | 0.5720 | 0.0931 | 0.5241 | 0.3086 | 0.6552 | 0.6096 |
11 | SlovenianGPT-Chat | 0.5078 | 0.7333 | 0.3920 | 0.3829 | 0.3874 | 0.6840 | 0.2432 | 0.4944 | 0.3688 | 0.5172 | 0.3562 |
12 | Gemma 2 2B | 0.4876 | 0.6333 | 0.4520 | 0.2123 | 0.3321 | 0.5180 | 0.1471 | 0.4419 | 0.2945 | 0.5862 | 0.5616 |
13 | GaMS-2B | 0.4790 | 0.5667 | 0.6080 | 0.4880 | 0.5480 | 0.5240 | 0.0631 | 0.5234 | 0.2932 | 0.5517 | 0.3904 |
14 | GaMS-1B | 0.4604 | 0.5000 | 0.6200 | 0.4565 | 0.5382 | 0.4920 | 0.1351 | 0.2675 | 0.2013 | 0.4828 | 0.5479 |
15 | GaMS-1B-Chat | 0.4570 | 0.8000 | 0.4880 | 0.3023 | 0.3951 | 0.4840 | 0.1081 | 0.2428 | 0.1755 | 0.5172 | 0.3692 |
英語到斯洛文尼亞語翻譯(基準測試前11名模型)
排名 | 模型名稱 | BERT得分 | BLEU(平均) | METEOR(平均) | CHRF(平均) | BLEU(語料庫) | CHRF(語料庫) |
---|---|---|---|---|---|---|---|
1 | DeepL Translator | 0.8812 | 0.3153 | 0.5902 | 0.6205 | 0.3599 | 0.6205 |
2 | gemini-1.5-pro | 0.8791 | 0.3124 | 0.5895 | 0.6176 | 0.3569 | 0.6176 |
3 | Sonnet 3.5 | 0.8789 | 0.3059 | 0.5783 | 0.6204 | 0.3442 | 0.6204 |
4 | gpt-4o | 0.8784 | 0.2958 | 0.5811 | 0.6138 | 0.3379 | 0.6138 |
5 | EuroLLM-9B-Instruct | 0.8741 | 0.2927 | 0.5792 | 0.6055 | 0.3273 | 0.6055 |
6 | seamless-m4t-v2-large | 0.8731 | 0.2780 | 0.5599 | 0.5947 | 0.3085 | 0.5947 |
7 | GaMS-9B-Instruct | 0.8713 | 0.2773 | 0.5616 | 0.5928 | 0.3209 | 0.5928 |
8 | Zlatorog | 0.8706 | 0.2834 | 0.5633 | 0.6014 | 0.2903 | 0.6014 |
9 | RSDO-DS4-NMT 1.2.2 | 0.8705 | 0.2794 | 0.5634 | 0.5956 | 0.3226 | 0.5956 |
9 | META LLAMA 3.1 405B | 0.8705 | 0.2637 | 0.5497 | 0.5930 | 0.3063 | 0.5930 |
11 | RSDO-DS4-NMT 1.2 | 0.8698 | 0.2781 | 0.5602 | 0.5970 | 0.3177 | 0.5970 |
斯洛文尼亞語到英語翻譯(基準測試前10名模型)
排名 | 模型名稱 | BERT得分 | BLEU(平均) | METEOR(平均) | CHRF(平均) | BLEU(語料庫) | CHRF(語料庫) |
---|---|---|---|---|---|---|---|
1 | gpt-4o | 0.9496 | 0.3161 | 0.6655 | 0.6297 | 0.3496 | 0.6297 |
2 | gemini-1.5-pro | 0.9489 | 0.3117 | 0.6560 | 0.6237 | 0.3502 | 0.6237 |
3 | gpt-4o-mini | 0.9466 | 0.2976 | 0.6493 | 0.6197 | 0.3328 | 0.6197 |
4 | GaMS-9B-Instruct | 0.9454 | 0.2821 | 0.6275 | 0.6018 | 0.3141 | 0.6018 |
5 | ChatGPTv1 | 0.9449 | 0.2852 | 0.6415 | 0.6096 | 0.3171 | 0.6096 |
6 | RSDO-DS4-NMT 1.2.4 | 0.9434 | 0.2839 | 0.6227 | 0.5967 | 0.3290 | 0.5967 |
7 | RSDO-DS4-NMT 1.2.6 | 0.9433 | 0.2832 | 0.6207 | 0.5944 | 0.3295 | 0.5944 |
8 | RSDO-DS4-NMT 1.2.2 | 0.9431 | 0.2785 | 0.6184 | 0.5933 | 0.3240 | 0.5933 |
8 | RSDO-DS4-NMT 1.2 | 0.9431 | 0.2805 | 0.6201 | 0.5941 | 0.3231 | 0.5941 |
10 | eTranslation SLEN | 0.9414 | 0.2729 | 0.6175 | 0.5913 | 0.3119 | 0.5913 |
使用和限制(取自Gemma 2)
這些模型有一些用戶應瞭解的限制。
預期用途
開放大語言模型(LLM)在各個行業和領域有廣泛應用。以下潛在用途列表並不全面。此列表的目的是提供有關模型創建者在模型訓練和開發過程中考慮的可能用例的上下文信息。
- 內容創作和交流
- 文本生成:這些模型可用於生成創意文本格式,如詩歌、腳本、代碼、營銷文案和電子郵件草稿。
- 聊天機器人和對話式AI:為客戶服務、虛擬助手或交互式應用程序提供對話界面。
- 文本摘要:生成文本語料庫、研究論文或報告的簡潔摘要。
- 研究和教育
- 自然語言處理(NLP)研究:這些模型可作為研究人員試驗NLP技術、開發算法和推動該領域發展的基礎。
- 語言學習工具:支持交互式語言學習體驗,輔助語法糾正或提供寫作練習。
- 知識探索:通過生成摘要或回答特定主題的問題,幫助研究人員探索大量文本。
限制
- 訓練數據
- 訓練數據的質量和多樣性顯著影響模型的能力。訓練數據中的偏差或差距可能導致模型響應的侷限性。
- 訓練數據集的範圍決定了模型能有效處理的主題領域。
- 上下文和任務複雜性
- LLM更擅長能用清晰提示和說明構建的任務。開放式或高度複雜的任務可能具有挑戰性。
- 模型的性能可能受提供的上下文量影響(在一定程度上,更長的上下文通常會導致更好的輸出)。
- 語言歧義與細微差別
- 自然語言本質上很複雜。LLM可能難以理解微妙的細微差別、諷刺或比喻語言。
- 事實準確性
- LLM根據從訓練數據中學到的信息生成響應,但它們不是知識庫。它們可能生成不正確或過時的事實陳述。
- 常識
- LLM依賴語言中的統計模式。它們可能在某些情況下缺乏應用常識推理的能力。
倫理考慮與風險
大語言模型(LLM)的開發引發了一些倫理問題。在創建開放模型時,我們仔細考慮了以下方面:
- 偏差與公平性
- 在大規模真實世界文本數據上訓練的LLM可能反映訓練材料中嵌入的社會文化偏差。這些模型經過了仔細審查,本卡片中描述了輸入數據預處理和後續評估。
- 錯誤信息與濫用
- LLM可被濫用來生成虛假、誤導或有害的文本。
- 提供了模型負責任使用的指南,請參閱[負責任生成式AI工具包][rai-toolkit]。
- 透明度與問責制
- 本模型卡片總結了模型的架構、能力、限制和評估過程的詳細信息。
- 負責任開發的開放模型為跨AI生態系統的開發者和研究人員提供了共享創新的機會,使LLM技術更易獲取。
已識別的風險及緩解措施:
- 偏差的延續:鼓勵在模型訓練、微調及其他用例中進行持續監控(使用評估指標、人工審查)並探索去偏技術。
- 有害內容的生成:內容安全機制和指南至關重要。鼓勵開發者根據其特定產品政策和應用用例謹慎行事並實施適當的內容安全保障措施。
- 惡意用途的濫用:技術限制以及對開發者和最終用戶的教育有助於減輕LLM的惡意應用。提供了教育資源和用戶舉報濫用的機制。Gemma模型的禁止用途在[Gemma禁止使用政策][prohibited-use]中列出。
- 隱私侵犯:模型在過濾掉個人身份信息(PII)的數據上進行訓練。鼓勵開發者遵守隱私法規並採用隱私保護技術。
🔧 技術細節
模型基於Google的Gemma 2系列,使用NVIDIA NeMo 2.0框架進行持續預訓練,在BF16混合精度下使用張量並行、序列並行和激活重計算進行訓練。監督微調使用帶有DeepSpeed ZeRO-3的Transformers庫。
📄 許可證
本模型使用Gemma許可證。
致謝
該模型是在PoVeJMo研究項目(使用大語言模型的自適應自然語言處理)的框架內開發的,特別是在名為SloLLaMai的研究項目中 - 斯洛文尼亞語的開放訪問計算高效模型。該項目由斯洛文尼亞研究與創新局(ARIS)和NextGenerationEU在恢復和韌性計劃的框架內資助。作者還感謝斯洛文尼亞研究與創新局的財政支持(研究核心資助編號P6 - 0411 - 斯洛文尼亞語的語言資源和技術)。
我們感謝所有參與數據收集和準備工作的人員,使我們能夠訓練我們的模型。特別感謝Nikola Ljubešić、Taja Kuzman、Tjaša Arčon、Jaka Čibej、Simon Krek、Tomaž Erjavec、Iztok Kosem和Tomaž Savodnik。



