LittleBit README

The project's README from github.com/SamsungLabs/LittleBit. As one markdown file: README.md.

The LittleBit Project

Sub-1-Bit LLM Compression via Latent Factorization

Official implementation of LittleBit (NeurIPS 2025) and LittleBit-2 (ICML 2026).


Papers

LittleBit-2: Maximizing the Spectral Energy Gain in Sub-1-Bit LLMs via Latent Geometry Alignment (ICML 2026)
Banseok Lee, Youngmin Kim
arXiv ICML

LittleBit: Ultra Low-Bit Quantization via Latent Factorization (NeurIPS 2025)
Banseok Lee*, Dongkyu Kim*, Youngcheon You, Youngmin Kim
arXiv NeurIPS


Abstract

LittleBit compresses large language models into the sub-1-bit regime by factorizing each dense weight matrix into low-rank latent factors, binarizing those factors, and restoring magnitude information through lightweight learned scales. This enables extreme compression, including the 0.1 bits-per-weight setting, while preserving the original model architecture at inference time.

LittleBit-2 improves this recipe by addressing latent geometry misalignment in the initialization stage. It applies Internal Latent Rotation with Joint Iterative Quantization (Joint-ITQ), aligning the SVD-derived latent factors with the binary hypercube before QAT. LittleBit-2 initialization is available as an opt-in (--use_itq) and produces no additional inference overhead.


Highlights

Supported Models

The codebase currently supports:


Installation

We recommend Python 3.12.

conda create -n littlebit python=3.12
conda activate littlebit

# Install CUDA toolkit. Adjust the CUDA version if needed.
conda install nvidia/label/cuda-12.4.1::cuda-toolkit -c nvidia/label/cuda-12.4.1

# Install PyTorch.
pip install torch==2.8.0+cu124 torchvision==0.23.0+cu124 torchaudio==2.8.0+cu124 --index-url https://download.pytorch.org/whl/cu124

# Install dependencies.
pip install -r requirements.txt

[!IMPORTANT] For reproducing the paper results, use transformers 4.51.x. Newer transformers releases may change model internals or evaluation behavior.

pip install "transformers==4.51.*"

Usage

Training

Train a model with Quantization-Aware Training. By default, LittleBitLinear uses the original SVD-only initialization. To enable LittleBit-2 (Joint-ITQ), pass --use_itq True.

Single GPU

CUDA_VISIBLE_DEVICES=0 python -m main \
    --model_id meta-llama/Llama-2-7b-hf \
    --dataset c4_wiki \
    --save_dir ./outputs/Llama-2-7b-LittleBit-2 \
    --num_train_epochs 5.0 \
    --per_device_train_batch_size 4 \
    --lr 4e-05 \
    --warmup_ratio 0.02 \
    --report wandb \
    --quant_func SmoothSign \
    --quant_mod LittleBitLinear \
    --residual True \
    --eff_bit 1.0 \
    --kv_factor 1.0 \
    --min_split_dim 8 \
    --l2l_loss_scale 10.0

# Opt-in to LittleBit-2 initialization
# --use_itq True

Multi-GPU with DeepSpeed

deepspeed --num_gpus=4 main.py \
    --model_id meta-llama/Llama-2-7b-hf \
    --dataset c4_wiki \
    --save_dir ./outputs/Llama-2-7b-LittleBit-2 \
    --ds_config_path configs/zero3.json \
    --num_train_epochs 5.0 \
    --per_device_train_batch_size 4 \
    --lr 4e-05 \
    --report wandb \
    --quant_func SmoothSign \
    --quant_mod LittleBitLinear \
    --residual True \
    --eff_bit 1.0 \
    --kv_factor 1.0 \
    --min_split_dim 8

Evaluation

Evaluate a local checkpoint or a model hosted on the Hugging Face Hub.

# From a local directory
CUDA_VISIBLE_DEVICES=0 python eval.py \
    --model_id ./outputs/Llama-2-7b-LittleBit-2 \
    --seqlen 2048 \
    --ppl_task wikitext2,c4 \
    --zeroshot_task boolq,piqa,hellaswag,winogrande,arc_easy,arc_challenge,openbookqa

# From the Hugging Face Hub
CUDA_VISIBLE_DEVICES=0 python eval.py \
    --model_id username/littlebit-llama-7b-0.1bpw \
    --seqlen 2048 \
    --ppl_task wikitext2

Legacy Checkpoints

Older checkpoints may not include littlebit_config.json. In that case, pass the quantization arguments explicitly:

CUDA_VISIBLE_DEVICES=0 python eval.py \
    --model_id ./outputs/Legacy-Llama-2-7b \
    --quant_func SmoothSign \
    --quant_mod LittleBitLinear \
    --split_dim 1024

Parameter loading priority:

  1. Explicit CLI arguments
  2. littlebit_config.json in the model directory
  3. config.json fallback for older checkpoints

Citation

If you find this work useful, please cite:

@inproceedings{lee2026littlebit2,
  title={LittleBit-2: Maximizing the Spectral Energy Gain in Sub-1-Bit LLMs via Latent Geometry Alignment},
  author={Lee, Banseok and Kim, Youngmin},
  booktitle={Proceedings of the 43rd International Conference on Machine Learning},
  year={2026}
}
@inproceedings{lee2025littlebit,
  title={LittleBit: Ultra Low-Bit Quantization via Latent Factorization},
  author={Lee, Banseok and Kim, Dongkyu and You, Youngcheon and Kim, Youngmin},
  booktitle={Advances in Neural Information Processing Systems},
  year={2025}
}

License

This project is licensed under the CC BY-NC 4.0 license.

LittleBit (SamsungLabs/LittleBit)

Searching Database…

Что это такое?LittleBit — официальный исследовательский код для сжатия больших языковых моделей до точности менее 1 бита (вплоть до 0.1 бита на вес): каждая матрица весов раскладывается на низкоранговые латентные факторы и бинаризуется, а величина весов восстанавливается обучаемыми масштабами. Также в него входит LittleBit-2 — продолжение, улучшающее инициализацию за счёт выравнивания латентной геометрии.
Это готовый инструмент или исследовательский код, который я запускаю сам?Это исследовательская кодовая база (скрипты обучения и оценки), а не упакованное приложение или библиотека, которую ставишь через pip в свой продукт; вы клонируете репозиторий и запускаете скрипты обучения/оценки напрямую на поддерживаемых семействах моделей.
Как обучить модель с помощью этого?Вы запускаете скрипт обучения с учётом квантизации (QAT) на одном GPU или с DeepSpeed на нескольких GPU; по умолчанию используется только SVD-инициализация, а передача --useitq True включает вместо неё инициализацию Joint-ITQ из LittleBit-2.
Какие версии ПО нужны, чтобы воспроизвести результаты статьи?Рекомендуется Python 3.12, а для точного воспроизведения результатов статьи нужен именно transformers версии 4.51.x, поскольку более новые релизы могут менять внутренности модели или поведение оценки.
LittleBit-2 меняет то, как сжатая модель работает на инференсе?Нет — Joint-ITQ в LittleBit-2 влияет только на этап инициализации перед QAT; структура факторизованных слоёв в развёрнутой модели и поведение на инференсе остаются в точности как у обычного LittleBit.
Какие семейства моделей он поддерживает?OPT, Llama (и Llama 2/3), Phi-4, Qwen2.5, QwQ, Gemma 2 и Gemma 3, а также Qwen3.
Можно использовать это в коммерческих целях?Нет — хотя на GitHub не указано никакой лицензии, в README сказано, что проект лицензирован под CC BY-NC 4.0, а это только некоммерческое использование.
Как оценить уже обученный чекпоинт?Локальный чекпоинт или модель, размещённую на Hugging Face Hub, можно оценить напрямую скриптом оценки.
Что будет, если у чекпоинта нет littlebitconfig.json?Для старых чекпоинтов без этого файла нужно явно передать аргументы квантизации в CLI; иначе загрузчик откатывается к config.json, причём аргументы CLI имеют наивысший приоритет.
В чём разница между LittleBit и LittleBit-2?LittleBit выполняет только SVD-факторизацию латентных факторов и бинаризацию; LittleBit-2 добавляет опциональный шаг Joint-ITQ, который перед обучением выравнивает латентные факторы с бинарным гиперкубом, улучшая удержание спектральной энергии без каких-либо дополнительных затрат на инференсе.
Кто опубликовал это исследование?LittleBit опубликован на NeurIPS 2025, а LittleBit-2 — на ICML 2026; авторы — Banseok Lee, Dongkyu Kim, Youngcheon You и Youngmin Kim.
Size
<0.1 MB
Stars
283
Updated
CommitOct 08
Age
10mo
Commits · 90 Days