Downloads · 30 days
92
8% of all-time downloads
CubicLabs/AXL-Reasoning-70M
AXL-Reasoning-70M is a text generation model from CubicLabs. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
CoT reasoning (SGD). 70M params. PPL 1.93 Part of the AXL model family by CubicLabs.
Downloads · 30 days
92
8% of all-time downloads
All-time downloads
1.2K
Public
Repo size
464 MB
Likes
0
Public
Click a slice to open those files.
.gguf324 MB · 54%
From the Hugging Face model README
CoT reasoning (SGD). 70M params. PPL 1.93 Part of the AXL model family by CubicLabs.
| Property | Value |
|---|---|
| Developed by | CubicLabs |
| Architecture | Multi-Scale Transformer |
| Parameters | 70M |
| Optimizer | SGD |
| Attention | SDPA |
| Vocab Size | 258 (byte-level) |
| Context Window | 512 bytes |
| d_model | 512 |
| Attention Heads | 4 |
| Layers per Scale | 5 |
| Downsample Factors | [1, 2, 4] |
| License | Apache 2.0 |
Chain-of-thought reasoning (SGD baseline).
import torch
from multiscale_transformer.model.model import MultiScaleTransformer
from multiscale_transformer.training.tokenizer import ByteTokenizer
ckpt = torch.load("axl_reasoning_70m.pt", map_location="cpu")
model = MultiScaleTransformer(config)
model.load_state_dict(ckpt["model_state_dict"])
model.eval()
tokenizer = ByteTokenizer()
ids = torch.tensor([tokenizer.encode("def hello():")], dtype=torch.long)
with torch.no_grad():
out = model.generate(ids, max_new_tokens=50, temperature=0.8)
print(tokenizer.decode(out[0].tolist()))
Not for production code generation. Use the Lion version for better results. For integration with tools like Continue.dev, LlamaIndex, or LangChain, use the Python API server which provides OpenAI-compatible endpoints.
Byte-level perplexity is not comparable to BPE-level perplexity. SGD baseline. Use AXL-Reasoning-Lion for better results. Note: GGUF files for Ollama use a simplified single-stack encoder. For full AXL quality, use the Python API server.
SGD 60 min. 1478 steps. Lion version achieves PPL 1.93 in 20 min.
Byte-level tokenization with vocabulary size 258 (256 bytes + BOS + EOS). No vocabulary training required.
| Metric | Value |
|---|---|
| Training Steps | 1478 |
| Training Time | 60 min |
| Final Loss | 0.6384 |
Perplexity on held-out Python code using byte-level tokenization.
| Metric | Value |
|---|---|
| Perplexity (byte-level) | 1.93 |
| Final Loss | 0.6384 |
| Training Steps | 1478 |
| Training Time | 60 min |
Summary: SGD reasoning baseline. Lion version is significantly better.
| Property | Value |
|---|---|
| Hardware | AMD Ryzen 5 5600G |
| Hours Used | 1.001 |
| Carbon Emitted | 0.0420 kg CO2 |
| Cloud Provider | None (local CPU) |
Multi-Scale Transformer with three parallel encoder stacks at resolution scales 1x, 2x, and 4x. Cross-scale attention connects all scale pairs. Adaptive gating fusion. SwiGLU feed-forward. RoPE positional encoding.
| Property | Value |
|---|---|
| Hardware | AMD Ryzen 5 5600G (6 cores, 12 threads) |
| RAM | 16 GB |
| GPU | None (CPU-only) |
@misc{axl_2026,
title={AXL: AXL-Reasoning-70M - Multi-Scale Transformer for CPU Code Generation},
author={Cubic},
year={2026},
url={[https://huggingface.co/CubicLabs](https://huggingface.co/CubicLabs)}
}
ollama create axl-reasoning-70m -f Modelfile
ollama run axl-reasoning-70m "def fibonacci():"
import torch
from multiscale_transformer.model.config import load_config
from multiscale_transformer.model.model import MultiScaleTransformer
from multiscale_transformer.training.tokenizer import ByteTokenizer
config = load_config("config.json")
model = MultiScaleTransformer(config)
ckpt = torch.load("axl_reasoning_70m.pt", map_location="cpu")
model.load_state_dict(ckpt["model_state_dict"])
model.eval()
tokenizer = ByteTokenizer()
prompt = "def fibonacci():"
ids = torch.tensor([tokenizer.encode(prompt)], dtype=torch.long)
with torch.no_grad():
out = model.generate(ids, max_new_tokens=100, temperature=0.8, top_k=40)
print(tokenizer.decode(out[0].tolist()))