🚀 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許可證。