Linux x86-64, Python 3.12, CUDA 12.x. 8× 80GB GPUs for the default benchmark suite; the 100M-token
ms_100M setting runs on 2× A800 via Memory Parallel. ~9 GB disk for weights, ~0.6 GB for data.
transformers must be exactly 4.51.3 — the attention implementation targets that API and will not
load on 4.52+ or 5.x. The other pins in requirements.txt are the tested versions.
Quick Start
1. Get the code
bash
1pip install -U "huggingface_hub==0.31.4"2# export HF_ENDPOINT=https://hf-mirror.com # uncomment if you need a mirror3huggingface-cli download Anoy123423123/MSA-Code --repo-type=model --local-dir MSA
4cd MSA
This is the path scripts/run_benchmarks.sh expects (model_path=ckpt/MSA-4B).
4. Run inference
bash scripts/run_benchmarks.sh eval_benchmark
Benchmark data is fetched automatically on first use into ./data/. Results land in
src/evaluation/outputs/eval_benchmark/ as one .log and one .json per benchmark.
ms_100M (the 100M-token setting) and triviaqa_06M are commented out by default.
Batch size must be scaled with your GPU count — the memory corpus is partitioned into one bucket per
visible GPU, and the defaults assume the 8 GPUs in CUDA_VISIBLE_DEVICES.
Notes
Symptom
Fix
Errors loading the model
transformers must be exactly 4.51.3.
import pynvml fails
The module comes from nvidia-ml-py; the separate deprecated pynvml distribution shadows it. pip uninstall -y pynvml && pip install nvidia-ml-py==12.575.51
CUDA OOM
Lower batch_size in scripts/run_benchmarks.sh.
Data download stalls
export HF_ENDPOINT=https://hf-mirror.com and retry; partial files resume.
See QUICK_START.md for the project layout and the prebuilt flash-attn wheel.