🚀 Granite-3.0-3B-A800M-Instruct
Granite-3.0-3B-A800M-Instruct是一个拥有30亿参数的模型,它基于特定基础模型微调而来。该模型具备多语言处理能力,可用于多种自然语言处理任务,如文本生成、问答、代码生成等,在商业应用等多领域有广泛用途。
🚀 快速开始
安装依赖库
安装以下库以使用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": "Please list one IBM Research laboratory located in the United States. You should only output its name and location." },
]
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)
✨ 主要特性
- 多语言支持:支持英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文等12种语言,用户还可对模型进行微调以支持更多语言。
- 多种任务能力:具备文本摘要、文本分类、文本提取、问答、检索增强生成(RAG)、代码相关任务、函数调用任务以及多语言对话等能力。
- 先进架构:基于仅解码器的稀疏专家混合(MoE)变压器架构,包含细粒度专家、无丢弃令牌路由和负载均衡损失等核心组件。
📚 详细文档
模型信息
属性 |
详情 |
模型类型 |
基于Granite-3.0-3B-A800M-Base-4K微调的30亿参数模型 |
训练数据 |
主要由三部分组成:具有宽松许可的公开可用数据集、针对特定能力的内部合成数据以及少量人工策划数据。详细数据集归属可参考Granite技术报告和作者致谢列表 |
基础设施 |
使用IBM的超级计算集群Blue Vela进行训练,该集群配备NVIDIA H100 GPU,采用100%可再生能源,提供可扩展且高效的训练基础设施。 |
模型架构参数
模型 |
2B Dense |
8B Dense |
1B MoE |
3B 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亿 |
训练令牌数量 |
12T |
12T |
10T |
10T |
评估结果
该模型在多个数据集上进行了评估,以下是部分评估指标(pass@1):
数据集类型 |
数据集名称 |
pass@1值 |
指令跟随 |
IFEval |
42.49 |
指令跟随 |
MT-Bench |
7.02 |
人类考试 |
AGI-Eval |
25.7 |
人类考试 |
MMLU |
50.16 |
人类考试 |
MMLU-Pro |
20.51 |
常识 |
OBQA |
40.8 |
常识 |
SIQA |
59.95 |
常识 |
Hellaswag |
71.86 |
常识 |
WinoGrande |
67.01 |
常识 |
TruthfulQA |
48 |
阅读理解 |
BoolQ |
78.65 |
阅读理解 |
SQuAD 2.0 |
6.71 |
推理 |
ARC-C |
50.94 |
推理 |
GPQA |
26.85 |
推理 |
BBH |
37.7 |
代码 |
HumanEvalSynthesis |
39.63 |
代码 |
HumanEvalExplain |
40.85 |
代码 |
HumanEvalFix |
35.98 |
代码 |
MBPP |
27.4 |
数学 |
GSM8K |
47.54 |
数学 |
MATH |
19.86 |
多语言 |
PAWS-X (7 langs) |
50.23 |
多语言 |
MGSM (6 langs) |
28.87 |
🔧 技术细节
Granite-3.0-3B-A800M-Instruct基于仅解码器的稀疏专家混合(MoE)变压器架构。该架构的核心组件包括:
- 细粒度专家:能够针对不同的任务和输入进行专业化处理。
- 无丢弃令牌路由:确保令牌在专家之间的高效路由,减少信息丢失。
- 负载均衡损失:平衡不同专家之间的负载,提高模型的整体性能。
📄 许可证
本模型采用Apache 2.0许可证。
⚠️ 重要提示
- 虽然该模型经过了安全对齐处理,但在某些情况下仍可能产生不准确、有偏差或不安全的响应。因此,建议社区在使用该模型时进行适当的安全测试和针对特定任务的调优。
- 该模型主要使用英语的指令-响应数据进行微调,尽管可以处理多语言对话,但在非英语任务上的性能可能不如英语任务。在这种情况下,引入少量示例(少样本学习)可以帮助模型生成更准确的输出。
💡 使用建议
- 在进行多语言任务时,可引入少量示例(少样本学习)来提高模型输出的准确性。
- 使用前进行适当的安全测试和针对特定任务的调优,以确保模型的输出符合预期。
🔗 相关资源
- 了解Granite的最新更新:https://www.ibm.com/granite
- 从教程、最佳实践和提示工程建议开始:https://www.ibm.com/granite/docs/
- 了解最新的Granite学习资源:https://ibm.biz/granite-learning-resources
开发者信息