🚀 Mamba-ko-2.8B🐍
Mamba-ko-2.8B は状態空間モデルで、合成生成データセット korean_textbooks を用いて追加事前学習(または継続学習)されています。このモデルは、言語生成タスクに特化したモデルです。

大規模言語モデルを構築し、様々なドメインの様々な問題を解決することに興味がある場合は、Allganize への参加を検討してください。コーヒーチャットや質問がある場合は、遠慮なく kuotient.dev@gmail.com までご連絡ください!
この個人プロジェクトのために資源を提供してくれた Allganize Korea に感謝申し上げます。このプロジェクトは、会社の目標や研究とは直接関係していません。
🚀 クイックスタート
このモデルを使用するには、まず必要なライブラリをインストールする必要があります。以下のコマンドを実行してください。
pip install causal_conv1d>=1.1.0 mamba-ssm==1.1.1
その後、以下のPythonコードを使用してモデルをロードし、テキスト生成を行うことができます。
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,
)
✨ 主な機能
- Mambaアーキテクチャ:Mambaは、以前の2次以下のモデルがTransformerに劣る言語モデリングなどの情報密度の高いデータで有望な性能を示す新しい状態空間モデルアーキテクチャです。
- 韓国語データセットでの事前学習:合成生成データセット 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,
)
📚 ドキュメント
何がMamba?
Mambaは、以前の2次以下のモデルがTransformerに劣る言語モデリングなどの情報密度の高いデータで有望な性能を示す新しい状態空間モデルアーキテクチャです。構造化状態空間モデルの進歩に基づいており、FlashAttentionの精神に沿った効率的なハードウェア対応設計と実装がなされています。
今後の予定
- 🟢 韓国語教科書データセットでの学習 - 完了
- 公開されている韓国語コーパスを用いた追加学習
- 🟡 命令微調整
モデルの詳細
モデルのベンチマーク
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 |
謝辞
韓国語LLMコミュニティに多くの貢献と励みを与えてくれている maywell さんに感謝します。
📄 ライセンス
Apache 2.0