模型简介
模型特点
模型能力
使用案例
🚀 Granite-3.1-1B-A400M-Base
Granite-3.1-1B-A400M-Base是一款语言模型,它通过渐进式训练策略将Granite-3.0-1B-A400M-Base的上下文长度从4K扩展到了128K。该模型支持多种语言,可用于文本生成、摘要、分类等多种任务。
🚀 快速开始
安装依赖库
pip install torch torchvision torchaudio
pip install accelerate
pip install transformers
运行示例代码
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "auto"
model_path = "ibm-granite/granite-3.1-1b-a400m-base"
tokenizer = AutoTokenizer.from_pretrained(model_path)
# drop device_map if running on CPU
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()
# change input text as desired
input_text = "Where is the Thomas J. Watson Research Center located?"
# tokenize the text
input_tokens = tokenizer(input_text, return_tensors="pt").to(device)
# generate output tokens
output = model.generate(**input_tokens,
max_length=4000)
# decode output tokens into text
output = tokenizer.batch_decode(output)
# print output
print(output)
✨ 主要特性
- 长上下文支持:通过渐进式训练策略,将上下文长度从4K扩展到了128K。
- 多语言支持:支持英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文等多种语言。
- 广泛的应用场景:可用于文本生成、摘要、分类、提取、问答等多种任务。
📦 安装指南
安装所需的库:
pip install torch torchvision torchaudio
pip install accelerate
pip install transformers
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
device = "auto"
model_path = "ibm-granite/granite-3.1-1b-a400m-base"
tokenizer = AutoTokenizer.from_pretrained(model_path)
# drop device_map if running on CPU
model = AutoModelForCausalLM.from_pretrained(model_path, device_map=device)
model.eval()
# change input text as desired
input_text = "Where is the Thomas J. Watson Research Center located?"
# tokenize the text
input_tokens = tokenizer(input_text, return_tensors="pt").to(device)
# generate output tokens
output = model.generate(**input_tokens,
max_length=4000)
# decode output tokens into text
output = tokenizer.batch_decode(output)
# print output
print(output)
📚 详细文档
模型概述
Granite-3.1-1B-A400M-Base将Granite-3.0-1B-A400M-Base的上下文长度从4K扩展到了128K。它使用渐进式训练策略,逐步增加支持的上下文长度,同时调整RoPE theta,直到模型成功适应128K的长度。这个长上下文预训练阶段使用了约500B个标记进行训练。
开发者信息
- 开发者:Granite Team, IBM
- GitHub仓库:ibm-granite/granite-3.1-language-models
- 网站:Granite Docs
- 论文:Granite 3.1 Language Models (coming soon)
- 发布日期:December 18th, 2024
- 许可证:Apache 2.0
支持的语言
支持英语、德语、西班牙语、法语、日语、葡萄牙语、阿拉伯语、捷克语、意大利语、韩语、荷兰语和中文。用户可以对Granite 3.1模型进行微调,以支持这12种语言之外的其他语言。
预期用途
大语言模型在文本生成任务中的主要用例包括摘要、文本分类、提取、问答等。所有Granite基础模型都能够处理这些任务,因为它们在来自各个领域的大量数据上进行了训练。此外,它们还可以作为创建特定应用场景专用模型的基线。
评估结果
HuggingFace Open LLM Leaderboard V1
模型 | ARC-Challenge | Hellaswag | MMLU | TruthfulQA | Winogrande | GSM8K | 平均 |
---|---|---|---|---|---|---|---|
Granite-3.1-8B-Base | 63.99 | 83.27 | 63.45 | 51.29 | 78.92 | 60.19 | 66.85 |
Granite-3.1-2B-Base | 53.58 | 77.67 | 52.86 | 39.02 | 72.84 | 47.99 | 57.32 |
Granite-3.1-3B-A800M-Base | 50.76 | 74.45 | 48.31 | 39.91 | 69.29 | 40.56 | 53.88 |
Granite-3.1-1B-A400M-Base | 39.42 | 66.13 | 26.53 | 37.67 | 2.03 | 18.87 | 31.78 |
HuggingFace Open LLM Leaderboard V2
模型 | IFEval | BBH | MATH Lvl 5 | GPQA | MUSR | MMLU-Pro | 平均 |
---|---|---|---|---|---|---|---|
Granite-3.1-8B-Base | 42.21 | 26.02 | 9.52 | 9.51 | 8.36 | 24.8 | 20.07 |
Granite-3.1-2B-Base | 35.22 | 16.84 | 5.59 | 3.69 | 3.9 | 13.9 | 13.19 |
Granite-3.1-3B-A800M-Base | 29.96 | 11.91 | 4 | 3.69 | 1.11 | 8.81 | 9.91 |
Granite-3.1-1B-A400M-Base | 25.19 | 6.43 | 2.19 | 0.22 | 1.76 | 1.55 | 6.22 |
模型架构
Granite-3.1-1B-A400M-Base基于仅解码器的稀疏专家混合(MoE)Transformer架构。该架构的核心组件包括:细粒度专家、无丢弃令牌路由和负载均衡损失。
模型参数 | 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 |
序列长度 | 128K | 128K | 128K | 128K |
位置嵌入 | RoPE | RoPE | RoPE | RoPE |
参数数量 | 2.5B | 8.1B | 1.3B | 3.3B |
活动参数数量 | 2.5B | 8.1B | 400M | 800M |
训练标记数量 | 12T | 12T | 10T | 10T |
训练数据
该模型采用两阶段训练策略,在开源数据和专有数据的混合数据上进行训练。
- 阶段1数据:阶段1的数据来自不同领域,如网络、代码、学术资源、书籍和数学数据。
- 阶段2数据:阶段2的数据包括来自相同领域的精选高质量数据,以及多语言和指令数据。这个第二训练阶段的目标是提高模型在特定任务上的性能。
- 阶段3数据:阶段3的数据由原始的阶段2预训练数据和额外的合成长上下文数据组成,这些数据以问答/摘要对的形式存在,其中答案在回答之前包含相关段落的引用。
详细的数据集归因信息可以在Granite 3.0技术报告、Granite 3.1技术报告(即将发布)和作者列表中找到。
基础设施
我们使用IBM的超级计算集群Blue Vela来训练Granite 3.1语言模型,该集群配备了NVIDIA H100 GPU。这个集群为我们在数千个GPU上训练模型提供了可扩展且高效的基础设施。
伦理考虑和局限性
使用大语言模型涉及到人们必须意识到的风险和伦理问题,包括但不限于:偏差和公平性、错误信息和自主决策。Granite-3.1-1B-A400M-Base模型在这方面也不例外。尽管该模型适用于多个生成式AI任务,但它没有进行任何安全对齐,因此可能会产生有问题的输出。此外,由于较小的模型尺寸和记忆能力,它们是否可能在生成场景中更容易通过逐字复制训练数据集中的文本来产生幻觉,仍然不确定。这方面目前是一个活跃的研究领域,我们预计会有更深入的探索。
🔧 技术细节
Granite-3.1-1B-A400M-Base使用渐进式训练策略扩展上下文长度,在训练过程中逐步增加支持的上下文长度,同时调整RoPE theta。模型基于仅解码器的稀疏专家混合(MoE)Transformer架构,核心组件包括细粒度专家、无丢弃令牌路由和负载均衡损失。
📄 许可证
本模型采用Apache 2.0许可证。



