🚀 Mamba-ko-2.8B🐍
Mamba-ko-2.8B 是一種狀態空間模型,它使用合成生成的數據集 korean_textbooks 進行了進一步預訓練(或持續訓練)。該模型在解決各種領域的大量問題方面具有很大潛力。
🚀 快速開始
安裝依賴
pip install causal_conv1d>=1.1.0 mamba-ssm==1.1.1
代碼示例
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
from mamba_ssm.models.mixer_seq_simple import MambaLMHeadModel
device = "cuda" if torch.cuda.is_available() else "cpu"
model_name = "kuotient/mamba-ko-2.8b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token
model = MambaLMHeadModel.from_pretrained(
model_name, device=device, dtype=torch.float16)
prompt = "아이들한테 제공할 영양가 있는 음식 5가지의 예시는 다음과 같다."
tokens = tokenizer(prompt, return_tensors='pt')
input_ids = tokens.input_ids.to(device)
streamer = TextStreamer(tokenizer)
out = model.generate(
input_ids=input_ids,
streamer=streamer,
max_length=2000,
temperature=0.7,
top_p=0.7,
eos_token_id=tokenizer.eos_token_id,
)
✨ 主要特性
- 基於合成數據集訓練:使用 korean_textbooks 數據集進一步預訓練,提升了模型在韓語相關任務上的性能。
- 先進的狀態空間模型架構:Mamba 架構在處理信息密集型數據(如語言建模)方面表現出色,優於之前的次二次模型。
📦 安裝指南
pip install causal_conv1d>=1.1.0 mamba-ssm==1.1.1
💻 使用示例
基礎用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM, TextStreamer
from mamba_ssm.models.mixer_seq_simple import MambaLMHeadModel
device = "cuda" if torch.cuda.is_available() else "cpu"
model_name = "kuotient/mamba-ko-2.8b"
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token
model = MambaLMHeadModel.from_pretrained(
model_name, device=device, dtype=torch.float16)
prompt = "아이들한테 제공할 영양가 있는 음식 5가지의 예시는 다음과 같다."
tokens = tokenizer(prompt, return_tensors='pt')
input_ids = tokens.input_ids.to(device)
streamer = TextStreamer(tokenizer)
out = model.generate(
input_ids=input_ids,
streamer=streamer,
max_length=2000,
temperature=0.7,
top_p=0.7,
eos_token_id=tokenizer.eos_token_id,
)
📚 詳細文檔
模型信息
模型基準測試
KoBEST
模型 |
boolq |
copa |
hellaswag |
sentineg |
kuotient/mamba-ko-2.8b |
0.6213 |
0.6150 |
0.4014 |
0.3383 |
state_spaces/mamba-2.8b-slimpj |
0.3343 |
0.4867 |
0.3452 |
0.3547 |
kuotient/mamba-ko-2.8b-old (2B trained only) |
0.4236 |
0.5896 |
0.4012 |
0.4348 |
kuotient/mamba-ko-2.8b-old-instruct |
0.4041 |
0.6505 |
0.4906 |
0.3348 |
EleutherAI/polyglot-ko-1.3b |
0.3552 |
0.7196 |
0.5247 |
0.6790 |
maywell/TinyWand-SFT |
0.3455 |
0.6142 |
0.3944 |
N/A |
microsoft/phi-2 |
0.3343 |
0.4792 |
0.3235 |
N/A |
TinyLlama/TinyLlama-1.1B |
0.3343 |
0.4784 |
0.3396 |
N/A |
🔧 技術細節
Mamba 是一種新的狀態空間模型架構,在處理信息密集型數據(如語言建模)方面表現出了良好的性能。之前的次二次模型在這方面往往不如 Transformers,而 Mamba 基於結構化狀態空間模型的進展,採用了高效的硬件感知設計和實現,類似於 FlashAttention。
📄 許可證
本項目採用 Apache 2.0 許可證。
致謝
感謝 maywell 對韓語大語言模型社區做出的貢獻和給予的激勵。
待辦事項
- 🟢 使用 korean_textbooks 數據集進行訓練 - 已完成
- 使用公開可用的韓語語料庫進行更多訓練
- 🟡 指令調優
⚠️ 重要提示
如果你有興趣構建大規模語言模型來解決各種領域的廣泛問題,你可以考慮加入 Allganize。若想進行交流或有任何問題,也請隨時通過 kuotient.dev@gmail.com 聯繫我!
💡 使用建議
在使用模型時,可根據具體任務調整 max_length
、temperature
和 top_p
等參數,以獲得更好的生成效果。