模型简介
模型特点
模型能力
使用案例
🚀 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。



