Skip to content

How a model is made: Centinela

How a model is made: Centinela preview

Section titled “How a model is made: Centinela ”
finanzas español Apache-2.0

Centinela is Nebula’s first model family: Spanish-first models for finance and back-office work in LATAM. It’s the concrete walk-through of everything in the previous pages — the pipeline, the gate, and the catalog contract, applied to one real model.

Centinela-Qwen3-4B (v0.1) is a financial sentiment classifier. Given a Spanish financial sentence, it returns exactly one of three labels:

  • Contract: positivo · neutral · negativo, enforced with constrain_label — the output is guaranteed to be one of the three, never free text.
  • Base: QLoRA fine-tune of Qwen/Qwen3-4B.
  • Dataset: centinela-sentiment-es@1 (finance sentiment, ES).
  • Formats: safetensors + Q4_K_M GGUF — runs cheap, self-hosted, even on CPU.
  • License: Apache-2.0.

Every step is the real pipeline from The Foundry Pipeline; the gate thresholds are the real configs/eval.yaml; the contract and aliases are the real catalog/centinela.yaml.

Once published, Centinela is consumable two ways.

The GGUF build runs anywhere Ollama does — no GPU required:

Terminal window
ollama run hf.co/astromesh/Centinela-Qwen3-4B:Q4_K_M

An agent routes to it through the GitOps contract — no endpoint or label list copied by hand:

# in an agent's model block
providerRef: centinela-sentiment

The runtime resolves the live endpoint, the positivo/neutral/negativo contract, and auth from the provisioned providers.centinela.yaml. Agents then call the typed facade classify(text) -> SentimentResult (exposed as an ADK tool) or route through CentinelaProvider like any other provider.