🚀 MAMBA (2.8B) 🐍 在OpenHermes上微调
MAMBA (2.8B) 🐍 是在OpenHermes数据集上微调的模型,Mamba是一种新的状态空间模型架构,在处理如语言建模这类信息密集型数据时表现出色,而之前的次二次模型在这方面往往不如Transformer。
🚀 快速开始
安装依赖
pip install torch==2.1.0 transformers==4.35.0 causal-conv1d==1.0.0 mamba-ssm==1.0.1
运行示例代码
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
from mamba_ssm.models.mixer_seq_simple import MambaLMHeadModel
CHAT_TEMPLATE_ID = "HuggingFaceH4/zephyr-7b-beta"
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model_name = "clibrain/mamba-2.8b-instruct-openhermes"
eos_token = "<|endoftext|>"
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.eos_token = eos_token
tokenizer.pad_token = tokenizer.eos_token
tokenizer.chat_template = AutoTokenizer.from_pretrained(CHAT_TEMPLATE_ID).chat_template
model = MambaLMHeadModel.from_pretrained(
model_name, device=device, dtype=torch.float16)
messages = []
prompt = "Tell me 5 sites to visit in Spain"
messages.append(dict(role="user", content=prompt))
input_ids = tokenizer.apply_chat_template(
messages, return_tensors="pt", add_generation_prompt=True
).to(device)
out = model.generate(
input_ids=input_ids,
max_length=2000,
temperature=0.9,
top_p=0.7,
eos_token_id=tokenizer.eos_token_id,
)
decoded = tokenizer.batch_decode(out)
assistant_message = (
decoded[0].split("<|assistant|>\n")[-1].replace(eos_token, "")
)
print(assistant_message)
运行Gradio演示
git clone https://github.com/mrm8488/mamba-chat.git
cd mamba-chat
pip install -r requirements.txt
pip install -q gradio==4.8.0
python app.py \
--model clibrain/mamba-2.8b-instruct-openhermes \
--share
✨ 主要特性
基础模型特性
Mamba是一种新的状态空间模型架构,在处理如语言建模这类信息密集型数据时展现出了良好的性能,而之前的次二次模型在这方面往往不如Transformer。它基于结构化状态空间模型的进展,以FlashAttention的精神进行了高效的硬件感知设计和实现。
数据集特性
OpenHermes数据集由242,000条主要由GPT - 4生成的数据组成,这些数据来自AI领域的开放数据集,包括:
- GPTeacher - 由Teknium提供的通用指令、角色扮演v1、角色扮演v2和代码指令数据集
- WizardLM (v1, evol_instruct 70k) - 由WizardLM团队/nlpxucan提供
- Airoboros GPT - 4 (v1.0) - 由JonDurbin提供
- Camel - AI的领域专家数据集 - 由Camel - AI团队提供
- CodeAlpaca - 由Sahil2801提供
- GPT4 - LLM和非自然指令 - 由微软提供
过滤操作包括去除OpenAI的拒绝回复、免责声明和“As an AI”这类示例等。基础数据集的混合与原始的Nous - Hermes相同,但不包括Nous - Instruct和PDACTL这两个私有数据集。
📚 详细文档
模型信息
属性 |
详情 |
模型类型 |
Mamba是一种新的状态空间模型架构 |
训练数据 |
OpenHermes数据集,包含242,000条主要由GPT - 4生成的数据,来自多个开放数据集 |
致谢
感谢mamba - chat对我们工作的启发。
📄 许可证
本项目采用WTFPL许可证。