pipeline_tag: 文本生成
inference: false
license: apache-2.0
library_name: transformers
tags:
- 语言模型
- granite-3.0
model-index:
- name: granite-3.0-2b-instruct
results:
- task:
type: 文本生成
dataset:
type: 指令跟随
name: IFEval
metrics:
- name: pass@1
type: pass@1
value: 52.27
veriefied: false
- task:
type: 文本生成
dataset:
type: 指令跟随
name: MT-Bench
metrics:
- name: pass@1
type: pass@1
value: 8.22
veriefied: false
- task:
type: 文本生成
dataset:
type: 人类考试
name: AGI-Eval
metrics:
- name: pass@1
type: pass@1
value: 40.52
veriefied: false
- task:
type: 文本生成
dataset:
type: 人类考试
name: MMLU
metrics:
- name: pass@1
type: pass@1
value: 65.82
veriefied: false
- task:
type: 文本生成
dataset:
type: 人类考试
name: MMLU-Pro
metrics:
- name: pass@1
type: pass@1
value: 34.45
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: OBQA
metrics:
- name: pass@1
type: pass@1
value: 46.6
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: SIQA
metrics:
- name: pass@1
type: pass@1
value: 71.21
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: Hellaswag
metrics:
- name: pass@1
type: pass@1
value: 82.61
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: WinoGrande
metrics:
- name: pass@1
type: pass@1
value: 77.51
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: TruthfulQA
metrics:
- name: pass@1
type: pass@1
value: 60.32
veriefied: false
- task:
type: 文本生成
dataset:
type: 阅读理解
name: BoolQ
metrics:
- name: pass@1
type: pass@1
value: 88.65
veriefied: false
- task:
type: 文本生成
dataset:
type: 阅读理解
name: SQuAD 2.0
metrics:
- name: pass@1
type: pass@1
value: 21.58
veriefied: false
- task:
type: 文本生成
dataset:
type: 逻辑推理
name: ARC-C
metrics:
- name: pass@1
type: pass@1
value: 64.16
veriefied: false
- task:
type: 文本生成
dataset:
type: 逻辑推理
name: GPQA
metrics:
- name: pass@1
type: pass@1
value: 33.81
veriefied: false
- task:
type: 文本生成
dataset:
type: 逻辑推理
name: BBH
metrics:
- name: pass@1
type: pass@1
value: 51.55
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: HumanEvalSynthesis
metrics:
- name: pass@1
type: pass@1
value: 64.63
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: HumanEvalExplain
metrics:
- name: pass@1
type: pass@1
value: 57.16
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: HumanEvalFix
metrics:
- name: pass@1
type: pass@1
value: 65.85
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: MBPP
metrics:
- name: pass@1
type: pass@1
value: 49.6
veriefied: false
- task:
type: 文本生成
dataset:
type: 数学推理
name: GSM8K
metrics:
- name: pass@1
type: pass@1
value: 68.99
veriefied: false
- task:
type: 文本生成
dataset:
type: 数学推理
name: MATH
metrics:
- name: pass@1
type: pass@1
value: 30.94
veriefied: false
- task:
type: 文本生成
dataset:
type: 多语言处理
name: PAWS-X (7种语言)
metrics:
- name: pass@1
type: pass@1
value: 64.94
veriefied: false
- task:
type: 文本生成
dataset:
type: 多语言处理
name: MGSM (6种语言)
metrics:
- name: pass@1
type: pass@1
value: 48.2
veriefied: false
base_model:
- ibm-granite/granite-3.0-8b-base
new_version: ibm-granite/granite-3.1-8b-instruct
Granite-3.0-8B-Instruct
模型概述:
Granite-3.0-8B-Instruct是一个基于Granite-3.0-8B-Base微调的80亿参数模型,采用了多种开源指令数据集和内部合成的数据集组合进行训练。该模型通过监督微调、强化学习对齐和模型融合等多种技术开发,采用结构化的对话格式。
支持语言:
英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文。用户可以对Granite 3.0模型进行微调以支持更多语言。
用途:
该模型设计用于响应通用指令,可用于构建多种领域的AI助手,包括商业应用。
功能
- 摘要生成
- 文本分类
- 文本提取
- 问答系统
- 检索增强生成(RAG)
- 代码相关任务
- 函数调用任务
- 多语言对话场景
生成示例:
以下是使用Granite-3.0-8B-Instruct模型的简单示例。
安装以下库:
pip install torch torchvision torchaudio
pip install accelerate
pip install transformers
然后,复制适合您用例的代码片段。
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "auto"
model_path = "ibm-granite/granite-3.0-8b-instruct"
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()
chat = [
{ "role": "user", "content": "请列出位于美国的一个IBM研究实验室。只需输出其名称和位置。" },
]
chat = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)
input_tokens = tokenizer(chat, return_tensors="pt").to(device)
output = model.generate(**input_tokens,
max_new_tokens=100)
output = tokenizer.batch_decode(output)
print(output)
模型架构:
Granite-3.0-8B-Instruct基于仅解码器的密集Transformer架构。该架构的核心组件包括:GQA和RoPE、带有SwiGLU的MLP、RMSNorm以及共享的输入/输出嵌入。
模型 |
20亿参数密集 |
80亿参数密集 |
10亿参数MoE |
30亿参数MoE |
嵌入大小 |
2048 |
4096 |
1024 |
1536 |
层数 |
40 |
40 |
24 |
32 |
注意力头大小 |
64 |
128 |
64 |
64 |
注意力头数量 |
32 |
32 |
16 |
24 |
KV头数量 |
8 |
8 |
8 |
8 |
MLP隐藏层大小 |
8192 |
12800 |
512 |
512 |
MLP激活函数 |
SwiGLU |
SwiGLU |
SwiGLU |
SwiGLU |
专家数量 |
— |
— |
32 |
40 |
MoE TopK |
— |
— |
8 |
8 |
初始化标准差 |
0.1 |
0.1 |
0.1 |
0.1 |
序列长度 |
4096 |
4096 |
4096 |
4096 |
位置嵌入 |
RoPE |
RoPE |
RoPE |
RoPE |
参数量 |
25亿 |
81亿 |
13亿 |
33亿 |
激活参数量 |
25亿 |
81亿 |
4亿 |
8亿 |
训练标记量 |
12万亿 |
12万亿 |
10万亿 |
10万亿 |
训练数据:
我们的监督微调数据主要来自三个关键来源:(1) 具有宽松许可证的公开数据集,(2) 针对特定能力合成的内部数据,(3) 少量人工整理的数据。详细的贡献数据集列表可以在Granite技术报告和作者致谢列表中找到。
基础设施:
我们使用IBM的超级计算集群Blue Vela训练Granite 3.0语言模型,该集群配备了NVIDIA H100 GPU。该集群提供了可扩展且高效的基础设施,能够在数千个GPU上训练我们的模型,同时通过使用100%可再生能源最大限度地减少对环境的影响。
伦理考量和限制:
Granite 3.0 Instruct模型主要通过英语为主的指令-响应对进行微调,但也包含覆盖11种语言的多语言数据。尽管该模型可以处理多语言对话场景,但其性能可能不如英语任务。在这种情况下,引入少量示例(few-shot)可以帮助模型生成更准确的输出。虽然该模型在开发过程中考虑了安全性,但在某些情况下仍可能产生不准确、有偏见或不安全的响应。因此,我们敦促社区在使用该模型时进行适当的安全测试和针对特定任务的调整。
资源
- ‚≠êÔ∏è 了解Granite的最新动态:https://www.ibm.com/granite
- üìÑ 获取教程、最佳实践和提示工程建议:https://www.ibm.com/granite/docs/
- üí° 了解最新的Granite学习资源:https://ibm.biz/granite-learning-resources