Samba: Simple Hybrid State Space Models for Efficient Unlimited Context Language Modeling Samba is a simple yet powerful hybrid model with an **unlimited** context length. Its architecture is frustratingly simple: Samba = Mamba + MLP + Sliding Window Attention + MLP stacking at the layer level. 2 trillion tokens from the Phi3 dataset, outperforming on major benchmarks (e. MMLU, GSM8K and HumanEval) by a large margin. Samba can also achieve perfect **long-context** retrieval ability with minimal instruction tuning, while still maintaining its **linear
complexity** with respect to sequence length. This ability leads to the impressive performance of on downstream tasks such as long-context summarization. 2 | We report 5-shot accuracy for MMLU, 8-shot CoT accuracy for GSM8K, 0-shot pass@1 for HumanEval and ROUGE-L for both GovReport and SQuALITY. Updates [July 9] We released the Phi-4-mini-flash-reasoning model which is based on SambaY architecture. Please check the new codebase for neural scaling experiments here! 22] Samba
has been accepted to ICLR 2025! 8] Added the evaluation script and more baseline architectures. [June 11] Released the codebase for training Samba-421M and Samba-1. Code Overview Our training infrastructure on SlimPajama is a modified version of TinyLlama and LitGPT. One can easily specify different architectual configurations through modifying the and the which includes tons of baseline architectures mentioned in the paper. Our RetNet and GLA implementations are from the awesome Flash Linear Attention repository. Pretraining Samba from
scratch Please follow the to setup the environment. The data preparation mainly follows TinyLlama except that we only use the SlimPajama dataset. Data Preparation Download the Slimpajama dataset to your chosen directory. We also provide the pre-tokenized data here. The SlimPajama dataset takes 893GB diskspace. Use the provided scripts to tokenize the datasets and divide them into chunks. Training The following script trains a default Samba-421M model on a single node of 8 GPUs with 20B tokens. 3B
" and to "tsz512x4k_100B" for training a Samba-1. We assume that you have 8 nodes each with 8 GPUs, and you can modify the number of for training on fewer gpus. Evaluation We leverage lm-evaluation-harness for the evaluation of our pretrained models. We only support non-generation based tasks for now. Citation If you find our work useful, please consider citing: Contact Liliang Ren (liliangren@microsoft.
常见问题
记录了多少星标和分叉?
microsoft/Samba 有 978 个星标和 52 个分叉。
仓库排名是多少?
microsoft/Samba 排名第 12,268。
记录的语言和类别是什么?
microsoft/Samba 有 978 个星标,语言为 Python,类别为 Model Development。
Samba: Simple Hybrid State Space Models for Efficient Unlimited Context Language Modeling
Samba is a simple yet powerful hybrid model with an unlimited context length. Its architecture is frustratingly simple:
Samba = Mamba + MLP + Sliding Window Attention + MLP stacking at the layer level.
Our largest model, Samba-3.8B, is trained on 3.2 trillion tokens from the Phi3 dataset, outperforming Phi3-mini on major benchmarks (e.g. MMLU, GSM8K and HumanEval) by a large margin. Samba can also achieve perfect long-context retrieval ability with minimal instruction tuning, while still maintaining its linear complexity with respect to sequence length. This ability leads to the impressive performance of Samba-3.8B-instruct on downstream tasks such as long-context summarization.
Performance :rocket:
Model
MMLU
GSM8K
HumanEval
GovReport
SQuALITY
Phi-3-mini-4K-instruct
68.8
82.5
58.5
14.4
21.6
Samba-3.8B-instruct (preview)
71.9
87.6
62.8
18.9
21.2
We report 5-shot accuracy for MMLU, 8-shot CoT accuracy for GSM8K, 0-shot pass@1 for HumanEval and ROUGE-L for both GovReport and SQuALITY.
Updates
[July 9] We released the Phi-4-mini-flash-reasoning model which is based on SambaY architecture. Please check the new codebase for neural scaling experiments here!
[Jan. 22] Samba has been accepted to ICLR 2025!
[Dec. 8] Added the evaluation script and more baseline architectures.
[June 11] Released the codebase for training Samba-421M and Samba-1.3B on SlimPajama.
Code Overview
Our training infrastructure on SlimPajama is a modified version of TinyLlama and LitGPT. One can easily specify different architectual configurations through modifying the model_name and the config file which includes tons of baseline architectures mentioned in the paper. Our RetNet and GLA implementations are from the awesome Flash Linear Attention repository.
Pretraining Samba from scratch
Please follow the Dockerfile to setup the environment. The data preparation mainly follows TinyLlama except that we only use the SlimPajama dataset.
Data Preparation
Download the Slimpajama dataset to your chosen directory. We also provide the pre-tokenized data here.
cd /path/to/dataset
git lfs install
git clone https://huggingface.co/datasets/cerebras/SlimPajama-627B
The SlimPajama dataset takes 893GB diskspace. Use the provided scripts to tokenize the datasets and divide them into chunks.
You can modify model_name to "Samba_1.3B" and train_config to "tsz512x4k_100B" for training a Samba-1.3B model with 100B tokens. We assume that you have 8 nodes each with 8 GPUs, and you can modify the number of nodes for training on fewer gpus.
Evaluation
We leverage lm-evaluation-harness for the evaluation of our pretrained models. We only support non-generation based tasks for now.
If you find our work useful, please consider citing:
@article{ren2024samba,
title={Samba: Simple Hybrid State Space Models for Efficient Unlimited Context Language Modeling},
author={Liliang Ren and Yang Liu and Yadong Lu and Yelong Shen and Chen Liang and Weizhu Chen},
journal = {arXiv preprint},
year={2024},
url={https://arxiv.org/abs/2406.07522}
}