🚀 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
等参数,以获得更好的生成效果。