🚀 MAMBA (2.8B) 🐍 OpenHermesでファインチューニング済み
モデルカードはまだ作成中です!
🚀 クイックスタート
このモデルを使用するには、まず必要なライブラリをインストールします。
pip install torch==2.1.0 transformers==4.35.0 causal-conv1d==1.0.0 mamba-ssm==1.0.1
以下のPythonコードでモデルを使用できます。
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デモの実行方法
以下のコマンドを実行して、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に劣る分野でも良好な結果を得ています。このモデルは、structured state space modelsの進歩に基づいており、FlashAttentionの精神に沿った効率的なハードウェア対応の設計と実装がなされています。
📦 インストール
必要なライブラリをインストールするには、以下のコマンドを実行します。
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に劣る分野でも良好な結果を得ています。このモデルは、structured state space modelsの進歩に基づいており、FlashAttentionの精神に沿った効率的なハードウェア対応の設計と実装がなされています。
データセット情報
OpenHermesデータセットは、主にGPT-4で生成された242,000件のエントリから構成されており、AI分野のさまざまなオープンデータセットを含んでいます。
OpenHermes 13Bは、Hermesデータセットの最初のファインチューニングモデルで、完全にオープンソースのデータセットを使用しています!
OpenHermesは、主にGPT-4で生成された242,000件のエントリを使用してトレーニングされており、AI分野のさまざまなオープンデータセットを含んでいます。
- GPTeacher - General Instruct, Roleplay v1, Roleplay v2, and Code Instruct Datasets, by Teknium
- WizardLM (v1, evol_instruct 70k), by WizardLM Team/nlpxucan
- Airoboros GPT-4 (v1.0), by JonDurbin
- Camel-AI's domain expert datasets, by the Camel-AI Team
- CodeAlpaca, by Sahil2801
- GPT4-LLM and Unnatural Instructions, by Microsoft
フィルタリングには、OpenAIの拒否、免責事項、「As an AI」タイプの例などの削除が含まれています。ベースデータセットの混合は、元のNous-Hermesと同じですが、Nous-InstructとPDACTLデータセットは非公開データセットであるため除外されています。
📄 ライセンス
このプロジェクトは、WTFPLライセンスの下で公開されています。
🔗 謝辞
このプロジェクトは、mamba-chatに大きな影響を受けています。ここで感謝の意を表します。