Instructions to use Banaxi-Tech/unified-2.1-test with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Banaxi-Tech/unified-2.1-test with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Banaxi-Tech/unified-2.1-test", trust_remote_code=True)# Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Banaxi-Tech/unified-2.1-test", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Banaxi-Tech/unified-2.1-test with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Banaxi-Tech/unified-2.1-test" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Banaxi-Tech/unified-2.1-test", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Banaxi-Tech/unified-2.1-test
- SGLang
How to use Banaxi-Tech/unified-2.1-test with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Banaxi-Tech/unified-2.1-test" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Banaxi-Tech/unified-2.1-test", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Banaxi-Tech/unified-2.1-test" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Banaxi-Tech/unified-2.1-test", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Banaxi-Tech/unified-2.1-test with Docker Model Runner:
docker model run hf.co/Banaxi-Tech/unified-2.1-test
BananaMind 2.1 Unified - 100%
The 100% training preview of BananaMind 2.1 Unified, a 34,999,041-parameter three-tower base causal language model. Not instruction tuned.
Architecture
Three transformer stacks share one d=384 embedding. A and C are the outer towers and each owns an output head; the next token is a probability-space mixture of the two. B is the relay: no head, no solo loss term, and the only path between A and C.
| Tower A | Tower B (relay) | Tower C | |
|---|---|---|---|
| Layers | 14 | 5 | 6 |
| Hidden | 256 | 320 | 384 |
| MLP (SwiGLU) | 704 | 960 | 1024 |
| Attention | 4Q / 1KV | 5Q / 1KV | 6Q / 2KV |
| Layer params | 9.86M | 5.84M | 9.44M |
| Output head | 2.10M | none | 3.15M |
Head dim 64, QK norm, RoPE theta 100k, RMSNorm eps 1e-6, vocab 8,192, 4,096 context. Shared embedding 3.15M, input projections 384->256 for A and 384->320 for B; C reads the embedding natively. Three bridge points per pair in both directions, 1.23M total.
Exchange schedule, 1-indexed. Bridge output is added before the receiving block, so the relay always has processing between taking a signal in and handing one back out:
| round | A read | C read | -> B | B runs | B read | -> A | -> C |
|---|---|---|---|---|---|---|---|
| 1 | 5 | 2 | pre-1 | 1-2 | 2 | 7 | 3 |
| 2 | 9 | 4 | pre-3 | 3-4 | 4 | 11 | 5 |
| 3 | 12 | 5 | pre-5 | 5 | 5 | 14 | 6 |
Gates are per-channel and initialise to 0.01 rather than 0: B carries no solo loss, so a zero init risks the middle never waking up.
Training
| Field | Value |
|---|---|
| Progress | 100% |
| Tokens seen | 37,999,869,952 |
| Target tokens | 38,000,000,000 |
| Hardware | 8 x NVIDIA RTX PRO 6000 Blackwell Server Edition |
| Optimizer | AdamW, single group |
| Peak LR | 0.0023 |
| Schedule | WSD, cosine to 0 over final 15% |
| Loss | L_mix + 0.3 * (L_A + L_C) |
| Precision | bfloat16 autocast |
| Source | Share |
|---|---|
| fineweb_hq | 50.957% |
| dclm | 20.766% |
| cosmopedia_v2 | 20.043% |
| finemath | 8.234% |
Usage
.logits holds a normalised log-probability vector, not unnormalised
logits, because the two heads are mixed in probability space. log_softmax is
the identity on it, so scoring, generate() and sampling all behave normally.
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "Banaxi-Tech/unified-2.1-test"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True)
Set cut_bridges=True to sever every bridge, which leaves A and C as two
ordinary standalone transformers:
model = AutoModelForCausalLM.from_pretrained(model_id, trust_remote_code=True, cut_bridges=True)
- Downloads last month
- -