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