Metis-1.6 Logos FP8

Technical report  ·  Metis-1.6  ·  Lernex  ·  X

Logos in BF16  ·  FP8  ·  NVFP4

Metis-1.6 Logos FP8

Metis-1.6 Logos in FP8 for vLLM, SGLang and Dromos: 11.18 GB instead of 20.80 GB, so the whole 10.2B model fits on a 16 GB GPU, and it keeps 99.6% of BF16's benchmark average.

Benchmarks

Across seven zero-shot tasks, FP8 keeps 99.6% of BF16's average score.

TaskMetricBF16FP8
MMLUacc53.4353.57
HellaSwagacc_norm68.4668.02
ARC-Easyacc_norm70.6270.79
ARC-Challengeacc_norm44.1144.03
OpenBookQAacc_norm43.4043.80
PIQAacc_norm76.0676.06
WinoGrandeacc61.9660.14
Average59.7259.49

Each task is scored by log-likelihood over every item in lm-evaluation-harness 0.4.13. The FP8 column decodes this repository's weights exactly and runs them in the reference implementation with every quantized layer's input rounded to FP8 per token, as this checkpoint's quantization_config asks and as vLLM, SGLang and Dromos with --fast-math run it. The BF16 model's card scores generated answers instead, so compare these columns with each other, not with that card.

Run it

Dromos

curl -fsSL https://github.com/lernex/dromos/releases/latest/download/install.sh | sh   # Linux, macOS
dromos run logos:fp8

On Windows, install with irm https://github.com/lernex/dromos/releases/latest/download/install.ps1 | iex; pip install dromos works everywhere. logos:fp8 is Dromos's short name for this repository, which it downloads the first time, and dromos serve logos:fp8 serves the OpenAI API on http://127.0.0.1:8080/v1.

vLLM

With the vllm-metis plugin:

pip install vllm-metis
vllm serve Lernex/Metis-1.6-Logos-FP8 --trust-remote-code \
    --reasoning-parser metis --enable-auto-tool-choice --tool-call-parser metis

SGLang

With the sglang-metis plugin:

pip install sglang-metis
python -m sglang.launch_server --model-path Lernex/Metis-1.6-Logos-FP8 \
    --reasoning-parser metis --tool-call-parser metis \
    --max-mamba-cache-size 24 --max-total-tokens 32768 --cuda-graph-max-bs-decode 8 --mem-fraction-static 0.92

All three give an OpenAI-compatible endpoint with the model's thinking split out of the answer and tool calls parsed and typed. Thinking is on by default; send "chat_template_kwargs": {"enable_thinking": false} for direct answers. Recommended sampling for thinking is temperature 0.8, top-p 0.95, top-k 20 and repetition penalty 1.05, which Dromos and vLLM read from generation_config.json. For direct answers, use temperature 0.3 and repetition penalty 1.0; Dromos switches by itself.

Transformers does not read this format for this architecture; use the BF16 repository there.

What --fast-math does

This checkpoint is made for FP8 maths: each layer's input is rounded to FP8 per token and multiplied with the FP8 weights on the GPU's FP8 tensor cores. vLLM and SGLang run it that way on GPUs that have them, and that is how Benchmarks scores it.

Dromos gives you the choice. By default it expands the FP8 weights to 16 bits as it multiplies and does the maths in BF16, so the weights are the only thing rounded and the output stays closer to the original model. With --fast-math it multiplies in FP8 the way vLLM and SGLang do, which is faster on GPUs with FP8 tensor cores: the RTX 40 and 50 series, H100 and newer. On older GPUs, Apple silicon and CPUs, it changes nothing.

On an RTX 5070 Ti, Dromos 0.1.0 reads a 4,096-token prompt at 7,840 tokens per second with --fast-math, against 6,892 by default: 14% faster.

It only changes the steps where the GPU handles many tokens at once: reading the prompt, and generating for more than 8 conversations together. A single conversation writes its answer one token at a time with the default maths either way, because that step's speed is set by how fast the GPU reads the weights, not by the multiplying. The answer can still come out slightly different, since it builds on the prompt as --fast-math read it.

Turn it on when reading the prompt is the slow part: long documents, a large codebase in context, or serving many people at once. For everyday chat, leave it off; the default stays closer to the original model.

dromos serve logos:fp8 --fast-math

Once the model is downloaded, dromos doctor logos:fp8 shows what it changes on your GPU.

Speed

Decode speed on an RTX 5070 Ti (16 GB) in tokens per second, with 512 prompt tokens and 256 generated per stream, counting the tokens generated once every stream is decoding. Dromos 0.1.0, built with CUDA 13, decodes greedily without speculation; vLLM runs the same files with the vllm-metis plugin:

Dromos vLLM
FP8, one stream 187.4 117.9
FP8, 32 streams 1,331 1,143

BF16 Logos, at 20.8 GB, does not fit a 16 GB card: Dromos keeps the experts that don't fit in system memory and decodes 128.9 tokens/s for one stream that way.

How close it stays to BF16

Mean top-20 KL divergence from the native model's FP32 logits, and how often the top token agrees, over the whole prompt, on the release's three reference prompts: a thinking chat, a chat with a tool call and a prose passage, with this checkpoint served by each engine. Lower is closer; 0 would be the original exactly.

Engine Thinking chat Chat with tools Prose
vLLM 0.0048, 100% 0.031, 91.5% 0.0084, 95.3%
SGLang 0.0055, 93.3% 0.033, 91.4% 0.0079, 95.3%

What is in FP8

A compressed-tensors FP8_DYNAMIC checkpoint: FP8 (E4M3) weights with one scale per output channel, and activations quantized per token at run time. Only the large matrices go to FP8: the routed experts, the Mamba-2 input projections and the attention projections. Everything this architecture is sensitive to stays exactly as trained: the Mamba-2 output projections (2% of the weights but most of a quantized model's error), the projections into and out of the experts' latent space, the shared expert, the routers and their balance bias, the depth memory and the embedding. The model's FP32 tensors stay FP32.

Citation

If Metis helps your work, please cite the technical report, and the model if you used it directly:

@misc{vollmer2026thinktwice,
  title         = {Think Twice: The Metis-1.6 Technical Report},
  author        = {Vollmer, Giulianno},
  year          = {2026},
  eprint        = {2610.37903},
  archivePrefix = {arXiv},
  primaryClass  = {cs.LG},
  url           = {https://arxiv.org/abs/2610.37903}
}

@misc{vollmer2026logos,
  title     = {{Metis-1.6 Logos}},
  author    = {Vollmer, Giulianno},
  year      = {2026},
  publisher = {Hugging Face},
  url       = {https://huggingface.co/Lernex/Metis-1.6-Logos}
}

License

Apache 2.0, the same as the original model.

Downloads last month
2
Safetensors
Model size
10B params
Tensor type
F32
·
BF16
·
F8_E4M3
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Lernex/Metis-1.6-Logos-FP8

Quantized
(5)
this model

Collection including Lernex/Metis-1.6-Logos-FP8

Paper for Lernex/Metis-1.6-Logos-FP8