🚀 Granite-3.0-8B-Instruct
Granite-3.0-8B-Instruct是一个基于Granite-3.0-8B-Base微调的80亿参数模型。它结合了具有宽松许可的开源指令数据集和内部收集的合成数据集进行训练。该模型采用多种技术开发,具备结构化的对话格式,可用于构建多领域的AI助手。
🚀 快速开始
安装依赖库
安装以下库以使用该模型:
pip install torch torchvision torchaudio
pip install accelerate
pip install transformers
使用示例
以下是一个简单的示例,展示如何使用Granite-3.0-8B-Instruct模型:
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": "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)
✨ 主要特性
多语言支持
支持英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文等多种语言。用户还可以对Granite 3.0模型进行微调,以支持更多语言。
多领域应用
该模型旨在响应通用指令,可用于构建多个领域的AI助手,包括商业应用。
多种能力
具备文本摘要、文本分类、文本提取、问答、检索增强生成(RAG)、代码相关任务、函数调用任务和多语言对话等能力。
📚 详细文档
模型概述
Granite-3.0-8B-Instruct是一个80亿参数的模型,它基于Granite-3.0-8B-Base,结合了开源指令数据集和内部合成数据集进行微调。该模型采用了多种技术,包括监督微调、强化学习模型对齐和模型合并等,并使用了结构化的对话格式。
模型信息
支持语言
支持英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文。用户可以对Granite 3.0模型进行微调,以支持更多语言。
预期用途
该模型旨在响应通用指令,可用于构建多个领域的AI助手,包括商业应用。
模型架构
Granite-3.0-8B-Instruct基于仅解码器的密集变压器架构。该架构的核心组件包括:GQA和RoPE、带有SwiGLU的MLP、RMSNorm以及共享的输入/输出嵌入。
模型 |
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 |
参数数量 |
2.5B |
8.1B |
1.3B |
3.3B |
活跃参数数量 |
2.5B |
8.1B |
400M |
800M |
训练令牌数量 |
12T |
12T |
10T |
10T |
训练数据
总体而言,我们的SFT数据主要由三个关键来源组成:(1)具有宽松许可的公开可用数据集;(2)针对特定能力的内部合成数据;(3)少量人工策划的数据。有关数据集的详细归属信息,请参阅Granite技术报告和附带作者列表。
基础设施
我们使用IBM的超级计算集群Blue Vela来训练Granite 3.0语言模型,该集群配备了NVIDIA H100 GPU。这个集群为我们的模型在数千个GPU上进行训练提供了可扩展且高效的基础设施,同时通过使用100%可再生能源来最大限度地减少对环境的影响。
伦理考量和局限性
Granite 3.0指令模型主要使用英语的指令 - 响应对进行微调,但也包含涵盖十一种语言的多语言数据。尽管该模型可以处理多语言对话用例,但其性能可能与英语任务有所不同。在这种情况下,引入少量示例(少样本)可以帮助模型生成更准确的输出。虽然该模型在开发过程中考虑了安全性,但在某些情况下,模型可能会对用户提示产生不准确、有偏见或不安全的响应。因此,我们敦促社区在使用此模型时进行适当的安全测试和针对特定任务的调整。
资源
- 了解Granite的最新更新:https://www.ibm.com/granite
- 通过教程、最佳实践和提示工程建议开始使用:https://www.ibm.com/granite/docs/
- 了解最新的Granite学习资源:https://ibm.biz/granite-learning-resources
📄 许可证
本模型使用Apache 2.0许可证。