🚀 Mambaoutai 1.6B
Mambaoutaiは、このブログ記事で説明されているすべての実験とトレーニングの結果です。この記事では、このモデルシリーズに関するすべての詳細が共有されています。Mambaoutaiは、フランス語、英語、コードでトレーニングされた、コミュニティが探索するために公開された一連の小規模なMambaチェックポイントです。WSDスケジューラを使用して2つの異なる減衰フェーズを実行し、命令データを使用して事前学習されたモデルチェックポイントと、命令データを使用せずに事前学習されたモデルチェックポイントの両方を公開しています。
🚀 クイックスタート
📦 インストール
transformers=4.39.0
がリリースされるまで、main
からtransformers
をインストールする必要があります。
pip install git+https://github.com/huggingface/transformers@main
また、causal-conv1d
とmamba-ssm
の両方を以下のコマンドでインストールすることをおすすめします。
pip install causal-conv1d>=1.2.0
pip install mamba-ssm>=1.2.0
これらの2つのうちどちらかがインストールされていない場合、"eager"実装が使用されます(推奨しません)。それ以外の場合は、より最適化されたCUDA
カーネルが使用されます。
💻 使用例
基本的な使用法
モデルからテキストを生成するには、次のコードを使用します。
from transformers import MambaConfig, MambaForCausalLM, AutoTokenizer
import torch
if model_has_instruct_data:
prompt = ”<start_user>Tell me something about Paris.<end_message><start_assistant>”
else:
prompt = ”This is a text about Paris. Paris is”
tokenizer = AutoTokenizer.from_pretrained("lightonai/mambaoutai")
model = MambaForCausalLM.from_pretrained("lightonai/mambaoutai")
input_ids = tokenizer(prompt, return_tensors="pt")["input_ids"]
out = model.generate(input_ids, max_new_tokens=10)
print(tokenizer.batch_decode(out))
高度な使用法
リポジトリのブランチには、いくつかのトレーニングチェックポイントがあります。トレーニング中のある時点のモデルに対応するブランチです。
これらのトレーニングチェックポイントを使用して推論を行うには、from_pretrained
メソッドにrevision
パラメータを追加します。
例えば、事前学習の30000ステップ後のモデルチェックポイントをロードするには、次のコードを使用できます。
from transformers import MambaConfig, MambaForCausalLM, AutoTokenizer
import torch
tokenizer = AutoTokenizer.from_pretrained("lightonai/mambaoutai", revision="pre-30000")
model = MambaForCausalLM.from_pretrained("lightonai/mambaoutai", revision="pre-30000")
input_ids = tokenizer("What is a mamba?", return_tensors="pt")["input_ids"]
out = model.generate(input_ids, max_new_tokens=10)
print(tokenizer.batch_decode(out))
デバイス上での推論
Mambaoutaiはパラメータが1.6Bしかないため、CPUでも妥当な速度で実行できます。
以下は、llama.cppで実行する方法の例です。
git clone https://github.com/ggerganov/llama.cpp\
cd llama.cpp
make
conda create -n mamba-cpp python=3.10
conda activate mamba-cpp
pip install -r requirements/requirements-convert-hf-to-gguf.txt
mkdir Mambaoutai
python convert-hf-to-gguf.py Mambaoutai
./main -m Mambaoutai/ggml-model-f16.gguf -p "Building a website can be done in 10 simple steps:\nStep 1:" -n 400 -e -ngl 1
🔧 技術詳細
トレーニングハードウェア
命令データのないモデルチェックポイントは、OVH Cloudが提供するNVIDIA DGX H100で完全にトレーニングされています。一方、命令データを使用した減衰フェーズは、Orange Cloud Avenueの8xH100を搭載したHPE Crayで実行されています。
アブレーション実験は、MeluXinaの16ノード(4xA100 - 40GB)で行われました。
モデルのハイパーパラメータ
モデルのハイパーパラメータの詳細は、以下の表に示されています。
パラメータ |
値 |
d_model |
2688 |
n_layer |
28 |
vocab_size |
65024 |
context_len |
4096 |
rms_norm |
true |
residual_in_fp32 |
true |
fused_add_norm |
true |
conv_kernel |
4 |
d_inner |
5376 |
state_size |
16 |
dtype |
bfloat16 |
tie_word_embeddings |
false |
non embeddings params |
1.27B |
📄 ライセンス
このプロジェクトは、Apache-2.0ライセンスの下で公開されています。
関連情報
- データセット:togethercomputer/RedPajama - Data - V2、stingning/ultrachat
- 言語:フランス語、英語
- 評価指標:accuracy、perplexity