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: 42.49
veriefied: false
- task:
type: 文本生成
dataset:
type: 指令跟随
name: MT-Bench
metrics:
- name: pass@1
type: pass@1
value: 7.02
veriefied: false
- task:
type: 文本生成
dataset:
type: 人类考试
name: AGI-Eval
metrics:
- name: pass@1
type: pass@1
value: 25.7
veriefied: false
- task:
type: 文本生成
dataset:
type: 人类考试
name: MMLU
metrics:
- name: pass@1
type: pass@1
value: 50.16
veriefied: false
- task:
type: 文本生成
dataset:
type: 人类考试
name: MMLU-Pro
metrics:
- name: pass@1
type: pass@1
value: 20.51
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: OBQA
metrics:
- name: pass@1
type: pass@1
value: 40.8
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: SIQA
metrics:
- name: pass@1
type: pass@1
value: 59.95
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: Hellaswag
metrics:
- name: pass@1
type: pass@1
value: 71.86
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: WinoGrande
metrics:
- name: pass@1
type: pass@1
value: 67.01
veriefied: false
- task:
type: 文本生成
dataset:
type: 常识推理
name: TruthfulQA
metrics:
- name: pass@1
type: pass@1
value: 48
veriefied: false
- task:
type: 文本生成
dataset:
type: 阅读理解
name: BoolQ
metrics:
- name: pass@1
type: pass@1
value: 78.65
veriefied: false
- task:
type: 文本生成
dataset:
type: 阅读理解
name: SQuAD 2.0
metrics:
- name: pass@1
type: pass@1
value: 6.71
veriefied: false
- task:
type: 文本生成
dataset:
type: 逻辑推理
name: ARC-C
metrics:
- name: pass@1
type: pass@1
value: 50.94
veriefied: false
- task:
type: 文本生成
dataset:
type: 逻辑推理
name: GPQA
metrics:
- name: pass@1
type: pass@1
value: 26.85
veriefied: false
- task:
type: 文本生成
dataset:
type: 逻辑推理
name: BBH
metrics:
- name: pass@1
type: pass@1
value: 37.7
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: HumanEvalSynthesis
metrics:
- name: pass@1
type: pass@1
value: 39.63
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: HumanEvalExplain
metrics:
- name: pass@1
type: pass@1
value: 40.85
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: HumanEvalFix
metrics:
- name: pass@1
type: pass@1
value: 35.98
veriefied: false
- task:
type: 文本生成
dataset:
type: 代码生成
name: MBPP
metrics:
- name: pass@1
type: pass@1
value: 27.4
veriefied: false
- task:
type: 文本生成
dataset:
type: 数学推理
name: GSM8K
metrics:
- name: pass@1
type: pass@1
value: 47.54
veriefied: false
- task:
type: 文本生成
dataset:
type: 数学推理
name: MATH
metrics:
- name: pass@1
type: pass@1
value: 19.86
veriefied: false
- task:
type: 文本生成
dataset:
type: 多语言任务
name: PAWS-X (7 langs)
metrics:
- name: pass@1
type: pass@1
value: 50.23
veriefied: false
- task:
type: 文本生成
dataset:
type: 多语言任务
name: MGSM (6 langs)
metrics:
- name: pass@1
type: pass@1
value: 28.87
veriefied: false
base_model:
- ibm-granite/granite-3.0-3b-a800m-base
new_version: ibm-granite/granite-3.1-3b-a800m-instruct
Granite-3.0-3B-A800M-Instruct
模型概述:
Granite-3.0-3B-A800M-Instruct 是基于 Granite-3.0-3B-A800M-Base-4K 微调的 30 亿参数模型,采用了开源指令数据集和内部合成数据集的组合进行训练。该模型通过监督微调、强化学习对齐和模型融合等多种技术开发,并采用结构化对话格式。
支持语言:
英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文。用户可针对这 12 种语言之外的其他语言对 Granite 3.0 模型进行微调。
用途:
该模型旨在响应通用指令,可用于构建适用于多个领域的 AI 助手,包括商业应用。
能力
- 摘要生成
- 文本分类
- 文本提取
- 问答系统
- 检索增强生成 (RAG)
- 代码相关任务
- 函数调用任务
- 多语言对话场景
生成示例:
以下是使用 Granite-3.0-3B-A800M-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-3b-a800m-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-3B-A800M-Instruct 基于仅解码器的稀疏专家混合 (MoE) Transformer 架构。该架构的核心组件包括:细粒度专家、无丢弃令牌路由和负载均衡损失。
模型 |
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 亿 |
训练 token 数量 |
12 万亿 |
12 万亿 |
10 万亿 |
10 万亿 |
训练数据:
我们的监督微调数据主要包含三个来源:(1) 具有宽松许可证的公开数据集,(2) 针对特定能力生成的内部合成数据,(3) 少量人工标注数据。详细数据集归属请参阅 Granite 技术报告 和 贡献者列表。
基础设施:
我们使用 IBM 超级计算集群 Blue Vela 训练 Granite 3.0 语言模型,该集群配备 NVIDIA H100 GPU。该基础设施可在数千个 GPU 上高效扩展模型训练,同时通过使用 100% 可再生能源最大限度减少环境影响。
伦理考量与限制:
Granite 3.0 指令模型主要使用英语指令-响应对进行微调,但也包含覆盖 11 种语言的多语言数据。虽然该模型能处理多语言对话场景,但其性能可能不及英语任务。此时,引入少量示例(few-shot)可帮助模型生成更准确的输出。尽管我们在对齐模型时已考虑安全性,但在某些情况下,模型仍可能对用户提示产生不准确、有偏见或不安全的响应。