license: gemma
language:
- 斯洛文尼亚语
- 英语
- 克罗地亚语
- 塞尔维亚语
- 波斯尼亚语
base_model:
- cjvt/GaMS-9B-Instruct
pipeline_tag: 文本生成
这是cjvt/GaMS-9B-Instruct模型的GGUF版本,专为卢布尔雅那大学计算机与信息科学学院的"网络信息提取与检索"课程转换而成。
GaMS-9B-Instruct模型卡
GaMS-2B、GaMS-9B和GaMS-27B是GaMS(斯洛文尼亚生成模型)系列中全新升级的大规模模型。这些模型基于Google的Gemma 2系列,并持续在斯洛文尼亚语、英语及部分克罗地亚语、塞尔维亚语和波斯尼亚语语料库上进行预训练。
此为GaMS-9B模型的监督微调(SFT)版本

致谢
本模型是在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。
基本信息
- 开发团队:卢布尔雅那大学计算机与信息科学学院研究团队。成员包括Domen Vreš、Iztok Lebar Bajec、Tjaša Arčon、Gašper Jelovčan和Marko Robnik-Šikonja。
- 支持语言:斯洛文尼亚语、英语(主要),克罗地亚语、波斯尼亚语和塞尔维亚语(次要)。虽然未针对Gemma 2支持的其他语言进行持续预训练,但模型可能仍适用。
- 基础模型:cjvt/GaMS-9B
- 许可证:Gemma
使用方式
可通过pipeline
API运行模型:
from transformers import pipeline
model_id = "cjvt/GaMS-9B-Instruct"
pline = pipeline(
"text-generation",
model=model_id,
device_map="cuda"
)
message = [{"role": "user", "content": "Kateri je najpomembnejši dogodek v slovenski zgodovini?"}]
response = pipeline(message, max_new_tokens=512)
print("模型响应:", 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("模型响应:", response[0]["generated_text"][-1]["content"])
多GPU推理设置device_map
为auto
:
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("模型响应:", 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("模型响应:", response[0]["generated_text"][-1]["content"])
数据
持续预训练数据
模型通过两阶段持续预训练。第一阶段使用平行双语语料对齐语言特征,第二阶段分别在单语语料上训练。
平行对齐语料
语料库 |
对齐级别 |
词元数 |
占比 |
KAS摘要 |
文档级 |
3100万 |
1.65% |
DGT |
独立文档 |
6.97亿 |
36.56% |
MaCoCu平行语料 |
独立文档 |
4.30亿 |
22.53% |
CC-News |
段落级 |
7.49亿 |
39.25% |
总计 |
|
19.1亿 |
|
对齐级别说明:
- 文档级:平行文档被拼接为单一文档
- 独立文档:平行文档未显式对齐
- 段落级:平行文档段落交替拼接
第二阶段语料
备注:
- MetaFida中排除的语料:dgt15_sl, classlawiki_sl, tweet_sl, janes_tweet, janes_forum, janes_news
- 塞尔维亚语维基百科已从西里尔字母转为拉丁字母
监督微调数据
SFT训练数据包含约25,000个训练样本和1,500个验证样本,混合以下数据集:
训练
模型在Leonardo HPC的Booster分区训练。
持续预训练
使用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万词元)
监督微调
使用Transformers库和DeepSpeed ZeRO-3,在BF16精度下通过4 GPU流水线并行训练。单节点4张A100 64GB GPU完成,优化器采用CPU卸载。
训练参数:
- 训练轮次:5轮(根据验证损失选择第2轮模型)
- 批大小:128
- 预热步数:150
- 最小学习率:1e-7
- 最大学习率:5e-6
- 恒定步数:0
评估
模型在SloBench平台的斯洛文尼亚SuperGLUE分类任务集、英译斯洛文尼亚和斯洛文尼亚译英翻译任务以及Slovenian-LLM-Eval上进行评估。
评估代码:
Slovenian-LLM-Eval结果
下图展示GaMS模型、基础Gemma 2模型与基于Mistral 7B的斯洛文尼亚开源模型SlovenianGPT在零样本场景下的对比:

SloBench结果
GaMS 2B/9B/27B模型采用三样本评估(MultiRC和翻译任务除外),GaMS-9B-Instruct在所有任务上使用零样本评估,通过引导解码确保响应格式正确。
斯洛文尼亚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 |
...(其余模型数据省略)... |
|
|
|
|
|
|
|
|
|
|
|
|
5 |
GaMS-9B-Instruct |
0.6997 |
0.8000 |
0.7960 |
0.7128 |
0.7544 |
0.8140 |
0 |
|
|
|
|