模型概述
模型特點
模型能力
使用案例
🚀 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許可證。



