许可证:apache-2.0
任务标签:文本生成
支持语言:
标签:
基础模型:
- sapienzanlp/Minerva-7B-base-v1.0
数据集:
- HuggingFaceH4/ultrafeedback_binarized
- Babelscape/ALERT
- efederici/evol-dpo-ita
推理参数:
示例输入:
库名称:transformers
Minerva-7B-instruct-v1.0 模型卡
Minerva是由Sapienza NLP在未来人工智能研究(FAIR)项目背景下开发的首个完全基于意大利语预训练的大语言模型家族,合作方包括CINECA以及Babelscape和CREATIVE PRIN项目的额外贡献。
值得注意的是,Minerva模型是真正开放的(数据和模型)意大利语-英语大语言模型,其中近一半的预训练数据包含意大利语文本。
模型描述
这是Minerva-7B-instruct-v1.0的模型卡,该模型拥有70亿参数,训练数据接近2.5万亿token(意大利语1.14万亿,英语1.14万亿,代码2000亿)。
该模型属于Minerva大语言模型家族:
偏差、风险与限制
本节列举可预见的危害与误解。
这是一个对话基础模型,经过模型对齐和安全风险缓解策略处理。但模型仍可能:
- 过度代表某些观点而低估其他观点
- 包含刻板印象
- 含有个人信息
- 生成:
- 种族主义和性别歧视内容
- 仇恨、侮辱或暴力语言
- 歧视性或偏见性语言
- 可能不适合所有场景的内容(包括性相关内容)
- 产生错误,包括输出错误信息或将历史事实虚构化
- 生成无关或重复内容
我们意识到当前预训练大语言模型存在的偏见和潜在问题/毒性内容:具体而言,作为(意大利语和英语的)概率模型,它们反映并放大了训练数据中的偏见。更多信息请参阅我们的调研报告:
如何使用Hugging Face transformers运行Minerva
import transformers
import torch
model_id = "sapienzanlp/Minerva-7B-instruct-v1.0"
pipeline = transformers.pipeline(
model=model_id,
model_kwargs={"torch_dtype": torch.bfloat16},
device_map="auto",
)
input_conv = [{"role": "user", "content": "意大利的首都是哪里?"}]
output = pipeline(
input_conv,
max_new_tokens=128,
)
output
输出示例:
[{'generated_text': [{'role': 'user', 'content': "意大利的首都是哪里?"}, {'role': 'assistant', 'content': "意大利的首都是罗马。"}]}]
模型架构
Minerva-7B-base-v1.0是基于Mistral架构的Transformer模型。具体超参数配置请查看模型配置文件。
Minerva大语言模型家族规格:
模型名称 |
训练token数 |
层数 |
隐藏层大小 |
注意力头数 |
KV头数 |
滑动窗口 |
最大上下文长度 |
Minerva-350M-base-v1.0 |
700亿 |
16 |
1152 |
16 |
4 |
2048 |
16384 |
Minerva-1B-base-v1.0 |
2000亿 |
16 |
2048 |
16 |
4 |
2048 |
16384 |
Minerva-3B-base-v1.0 |
6600亿 |
32 |
2560 |
32 |
8 |
2048 |
16384 |
Minerva-7B-base-v1.0 |
2.48万亿 |
32 |
4096 |
32 |
8 |
无 |
4096 |
模型训练
Minerva-7B-base-v1.0使用MosaicML的llm-foundry 0.8.0进行训练。超参数如下:
模型名称 |
优化器 |
学习率 |
betas |
eps |
权重衰减 |
调度器 |
预热步数 |
批次大小(token) |
总步数 |
Minerva-350M-base-v1.0 |
Decoupled AdamW |
2e-4 |
(0.9,0.95) |
1e-8 |
0.0 |
Cosine |
2% |
400万 |
16,690 |
Minerva-1B-base-v1.0 |
Decoupled AdamW |
2e-4 |
(0.9,0.95) |
1e-8 |
0.0 |
Cosine |
2% |
400万 |
47,684 |
Minerva-3B-base-v1.0 |
Decoupled AdamW |
2e-4 |
(0.9,0.95) |
1e-8 |
0.0 |
Cosine |
2% |
400万 |
157,357 |
Minerva-7B-base-v1.0 |
AdamW |
3e-4 |
(0.9,0.95) |
1e-5 |
0.1 |
Cosine |
2000 |
400万 |
591,558 |
SFT训练
SFT模型使用Llama-Factory训练。数据混合比例如下:
数据集 |
来源 |
代码 |
英语 |
意大利语 |
Glaive-code-assistant |
链接 |
100,000 |
0 |
0 |
Alpaca-python |
链接 |
20,000 |
0 |
0 |
...(后续数据集表格内容类似,此处省略翻译)... |
|
|
|
|
更多技术细节请查看我们的技术博客。
在线DPO训练
本模型卡针对DPO优化版本。直接偏好优化(DPO)是一种基于用户反馈改进模型的方法,类似于人类反馈强化学习(RLHF),但无需强化学习的复杂性。在线DPO通过训练期间实时适配进一步优化,持续用新反馈精炼模型。我们使用Hugging Face TRL库和在线DPO进行训练,以Skywork/Skywork-Reward-Llama-3.1-8B-v0.2作为评判模型引导优化。此阶段仅使用HuggingFaceH4/ultrafeedback_binarized(英语)、efederici/evol-dpo-ita(意大利语)和翻译为意大利语的Babelscape/ALERT提示,并添加了人工筛选的安全数据。
模型评估
我们使用ITA-Bench评估套件测试意大利语模型能力,包含18个评估不同任务(科学知识、常识推理、数学问题解决等)的基准。
(评估结果图表描述略)
分词器效率
分词器效率衡量每个分词后单词平均产生的token数量。某种语言的高效率值通常表明该语言的分词更细粒度,与模型在该语言的推理速度直接相关(更高值意味着更长token序列生成,导致更低推理速度)。
基于Cultura X(CX)和维基百科(Wp)样本计算的效率:
模型 |
词表大小 |
意大利语效率(CX) |
英语效率(CX) |
意大利语效率(Wp) |
英语效率(Wp) |
Mistral-7B-v0.1 |
32000 |
1.87 |
1.32 |
2.05 |
1.57 |
gemma-7b |
256000 |
1.42 |
1.18 |
1.56 |
1.34 |
Minerva-3B-base-v1.0 |
32768 |
1.39 |
1.32 |
1.66 |
1.59 |
Minerva-7B-base-v1.0 |
51200 |
1.32 |
1.26 |
1.56 |
1.51 |
Sapienza NLP团队
项目领导与协调
- Roberto Navigli:项目领导与协调;模型分析、评估与选择,安全与防护,对话系统。
模型开发
- Edoardo Barba:预训练、后训练、数据分析、提示工程。
- Simone Conia:预训练、后训练、评估、模型与数据分析。
- Pere-Lluís Huguet Cabot:数据处理、过滤与去重,偏好建模。
- Luca Moroni:数据分析、评估、后训练。
- Riccardo Orlando:预训练流程与数据处理。
安全与防护
- Stefan Bejgu:安全与防护。
- Federico Martelli:合成提示生成,模型与安全分析。
- Ciro Porcaro:附加安全提示。
- Alessandro Sciré:安全与防护。
- Simone Stirpe:附加安全提示。
- Simone Tedeschi:安全评估英语数据集。
特别致谢支持者
- Giuseppe Fiameni, Nvidia
- Sergio Orlandini, CINECA
鸣谢
本工作由PNRR MUR项目PE0000013-FAIR和CREATIVE PRIN项目(MUR Progetti di Rilevante Interesse Nazionale计划PRIN 2020资助)支持。我们感谢CINECA在ISCRA计划下提供的"IscB_medit"高性能计算资源和支持。