🚀 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
開發者信息