Model reference · open weights

baguettotron

LLMs PleIAs Text gen 1 build Open weights 572 dl/mo

baguettotron is an open-weight language model from PleIAs. baguettotron-600m (BF16) weighs 1.2 GB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • Baguettotron-600M is a 608M parameter text generation model developed by PleIAs that uses a single-stage training recipe on a fully synthetic corpus.
  • It supports a context length of 2048 tokens and is available under the Apache 2.0 license.
  • The model is trained for six languages, including English, French, Italian, German, Spanish, and Polish.

Summary of the PleIAs/baguettotron-600m model card, 2026-10-09

What it is

Released byPleIAs
Released2026-07-27
Parameters608M
VRAM1.2 GB for the weights

What it runs on

Memory and cards for baguettotron-600m (BF16)

1.2 GBweights, file size
49 MBcache per 1K tokens
536 MBruntime overhead, at least
2,048 tokenscontext max
CardRequests at onceContext maxMemory
2K each
RTX 3060 12 GB97all 2K11.6 GB
RTX 4060 Ti 16 GB135all 2K15.4 GB
RTX 3090 24 GB215all 2K23.4 GB
RTX 4090 24 GB214all 2K23.4 GB
RTX 5090 32 GB290all 2K31.0 GB
L40S 48 GB419all 2K44.0 GB
A100 80 GB759all 2K78.2 GB
H100 80 GB728all 2K78.1 GB
RTX PRO 6000 Blackwell 96 GB884all 2K93.8 GB
DGX Spark (GB10) 128 GB unified1000+all 2K107 GB
H200 141 GB1000+all 2K138 GB
B200 180 GB1000+all 2K176 GB
Memory needed at each load
Requests at once2K tokens each
11.9 GB
52.3 GB
82.6 GB
163.4 GB
325.0 GB
648.2 GB

One card, with vLLM's small-card settings.

From the model card

What PleIAs says about baguettotron

Read the model card

Baguettotron-600M is a 0.6B-parameter reasoning model trained from scratch on 158B tokens of SYNTH, a fully synthetic corpus amplified from 58,698 Wikipedia articles. It is the main reference model of our NeurIPS 2026 paper, It's All Training: A Fully Synthetic Single-Stage Recipe for LLMs.

  • Single training stage: no separate mid-training, SFT or RLHF. The model follows instructions, reasons in `` traces and recalls facts because SYNTH trains those capabilities directly.
  • Token-efficient: within 4.7 points of Qwen3-0.6B on 22 multiple-choice tasks and 0.7 points on 8 open-ended tasks, trained on ~230× fewer tokens.
  • Factually precise: highest FActScore in its parameter tier (41.7% macro vs. 31.6% for Qwen3-0.6B).

Model design

Baguettotron-600M is a standard dense decoder (Llama/Qwen-style) and loads natively in transformers and vLLM (LlamaForCausalLM, no remote code).

Parameters608M (incl. 67M tied embeddings)
Layers48
Hidden size1024
AttentionGQA, 16 query / 4 KV heads, head dim 64
MLPSwiGLU, intermediate size 2816
Position encodingRoPE, θ = 10,000
NormRMSNorm (pre-norm), ε = 1e-6
EmbeddingsTied input/output
Vocabulary65,536 (Pleias tokenizer)
Context length2,048 tokens

Training

  • Data: SYNTH, 158.3B tokens (~2 passes over the ~75B-token corpus)
  • Steps: 151,000 at global batch 512 × 2,048 tokens (~1.05M tokens/step)
  • Optimizer: AdamW, peak LR 1.5e-3, 10k-step warmup, linear decay over the final 16.6% of steps to 0.2% of peak; weight decay 0.01, grad clip 1.0
  • Hardware: 16× H100 (4 nodes × 4 GPUs) on MareNostrum 5 (BSC), torchtitan with FSDP, ~52.6 h, ~30% MFU

Evaluation

All scores are from the paper. Each model is prompted in its native format; Baguettotron models get no system prompt and have \n seeded after the assistant turn.

ModelTraining tokensMCQ (22 tasks)Open-ended (8 tasks)FActScore (macro)
Baguettotron-600M158B42.224.341.7
Baguettotron-MoE (13B / 1B active)50B39.623.846.3
Baguettotron-350M200B36.316.032.4
Qwen3-0.6B~36T46.925.031.6
LFM2.5-350M28T42.320.822.0
SmolLM2-360M-Instruct4T22.821.626.6
Gemma-3-270M-IT2T22.514.919.4
  • Ties or beats Qwen3-0.6B on TruthfulQA (42.6 vs. 32.7), ESGenius (62.2 vs. 55.1) and FormationEval (62.8 vs. 58.0)
  • Weak: benchmarks that reward broad web knowledge (ARC-Challenge, GeoBench), since SYNTH covers only its seed articles
  • Data, not architecture: the same architecture, tokenizer and step count trained on FineWiki or FinePDFs-Edu reaches only 26.1 / 25.1 on MCQ, even after SmolTalk post-training
  • Reasoning traces matter: retraining without traces costs 9.1 points on TruthfulQA and 10.0 on NuclearQA

Prompt format

The model was trained on ChatML with a `` block and no system prompt. The bundled chat template opens the assistant turn with \n:

What do you know about the Treaty of Westphalia?

The model writes its reasoning, closes it with , answers, and ends the turn with .

RAG. Pass sources inside the user turn. The answer then cites them with [quote]:

{question}

Reasoning notation. Traces use SYNTH's compact stenographic style (→ derivation, ↺ backtracking, ∴ conclusion, …). The confidence markers ● (high), ◐ (partial) and ○ (low) are informative: on traces dominated by uncertain markers, FActScore drops from 0.44 to 0.40, and the model commits to ~15–20% fewer facts. See the Baguettotron-350M card for the full notation.

Inference

vLLM

vllm serve PleIAs/baguettotron-600m --reasoning-parser deepseek_r1

--reasoning-parser deepseek_r1 moves the `` trace into a separate reasoning field. Tested with vLLM 0.24.0.

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
resp = client.chat.completions.create(
    model="PleIAs/baguettotron-600m",
    messages=[{"role": "user", "content": "What do you know about the Treaty of Westphalia?"}],
    temperature=0.1,
    top_p=0.95,
    presence_penalty=0.1,
    max_tokens=1536,
)
print(resp.choices[0].message.reasoning)  #  trace
print(resp.choices[0].message.content)    # answer

Recommended sampling: temperature=0.1, top_p=0.95, presence_penalty=0.1. Prompt and generation share the 2,048-token context, so keep max_tokens below 2,048 minus the prompt length.

Transformers

from transformers import AutoModelForCausalLM, AutoTokenizer

repo = "PleIAs/baguettotron-600m"
tokenizer = AutoTokenizer.from_pretrained(repo)
model = AutoModelForCausalLM.from_pretrained(repo, dtype="bfloat16", device_map="auto")

messages = [{"role": "user", "content": "What do you know about the Treaty of Westphalia?"}]
inputs = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
out = model.generate(inputs, max_new_tokens=1536, do_sample=True, temperature=0.1, top_p=0.95)
print(tokenizer.decode(out[0, inputs.shape[1]:]))

Limitations

  • 2,048-token context shared by prompt, reasoning and answer
  • Knowledge is bounded by the seed corpus (~58.7k Wikipedia articles): recall is precise on seed topics and weaker outside them
  • Reasoning traces are English-only, even when the prompt and answer are in another language
  • No preference tuning or safety alignment; not intended for high-stakes use without further evaluation

Citation

@inproceedings{langlais2026itsalltraining,
  title         = {It's All Training: A Fully Synthetic Single-Stage Recipe for {LLMs}},
  author        = {Langlais, Pierre-Carl and Delobelle, Pieter and De

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms