Aleph Alpha
Pale peach background with rounded coral blocks rising like a staircase from the lower left to the upper right
Research

Duncan Blythe

Specialised LLMs punch above their weight

Introduction

The result is a model that punches above its weight.

Sovereign use-cases and requirements

What sovereignty requires

The anatomy of model specialisation

RAG applications

The harness used in the example below, one row per decision from the list above.
Harness decision Choice in this example
Search toolssemantic_search (search-by-meaning) and keyword_search (BM25 with an identifier-preserving tokenizer)
Corporatech_docs: product datasheets and application notes (PDF); errata_db: structured errata table (SQL)
ETLSection-level chunks of about 512 tokens with 64-token overlap, indexed by a multilingual embedding model and a lexical index
Result setk = 5 by default; the model may choose 1 to 20
Result surfaceTitle, section, page and a 200-character breadcrumb
Supplementary toolsopen_page(doc_id, page) and open_document(doc_id)
Multi-lingualityDocuments in English; users in German or English; the answer follows the user's language
User

What is the maximum clock frequency supported by the TC3x-235c, and are there any known errata?

Think

The query contains a part identifier, “TC3x-235c”, which is spelling-sensitive. User and docs are both English, so no translation is needed. Start with meaning-based search.

Call semantic_search("maximum clock frequency TC3x-235c", corpus=tech_docs, k=5)
Result
  • TC3x Family Overview §2.1 Clock System 0.81 “…the TC3x family supports CPU frequencies up to…”
  • TC3x-237a Datasheet §4.3 Clocking 0.79 “…TC3x-237a: fSYS max = 200 MHz…”
  • TC2x Migration Guide §1.4 Clock Tree 0.77
  • TC3x-233b Datasheet §4.3 Clocking 0.76
  • AN-0981 PLL Configuration §2 0.74
Think

On topic, but the wrong parts: the embedding treats TC3x-235c, TC3x-237a and TC3x-233b as near-identical. Switch to an exact keyword match on the identifier, and check the errata table too.

Call
keyword_search("\"TC3x-235c\"", corpus=tech_docs, k=10) keyword_search("TC3x-235c clock", corpus=errata_db, k=5)
Result
  • TC3x-235c Datasheet §4.2 Clock Generation, p. 48 “…TC3x-235c: fSYS max = 300 MHz…”
  • AN-1142 TC3x-235c Power-up Sequence §3, p. 7
  • ERR-0457 “PLL lock time exceeds spec at fSYS > 280 MHz” affects: TC3x-235c A-step · fixed in: B-step
Think

A breadcrumb alone is too thin to quote a spec value. Drill down into the datasheet page.

Call open_page("TC3x-235c Datasheet", page=48)
Result
  • Page 48, full text (~1,900 tokens) “…Table 4-7: fSYS max 300 MHz, fSPB max 100 MHz…”
Think

Synthesis: the datasheet gives 300 MHz; ERR-0457 restricts reliable operation above 280 MHz on A-step silicon. Keep identifiers verbatim, cite sources.

Answer

According to the datasheet (§4.2, Table 4-7, p. 48), the TC3x-235c supports a maximum system frequency of 300 MHz. Known erratum: ERR-0457, on A-step devices the PLL lock time exceeds specification above 280 MHz; fixed in B-step.

Sources: TC3x-235c Datasheet p. 48 · Errata ERR-0457

We should train Kolibri to be able to adapt to a range of realistic agentic-harnesses.

Making Kolibri robust to the agentic harness

Diagram of the randomised training harness: a corpus with search indices, a task with a known answer, and a randomly chosen tool set exposed to the model.

Sensitivity to runtime data distributions and use-cases

User

Since it turned cold, our Calvera AWP-12 heat pump switches on and off every few minutes. Is it broken?

Think

Short on/off bursts are “short-cycling”. Three common causes: defrost cycles in cold, humid air; too little water in the heating circuit when zones are closed; a switching hysteresis set too narrow. The user’s words (“on and off”, “turned cold”) contain none of these terms, so the searches must use them. First, find out how the unit records why it stopped.

Call keyword_search("AWP-12 operating log compressor stop reason", corpus=manuals, k=5)
Result
  • AWP-12 Service Manual §5.2 Event Log (menu 4.7), p. 38 “…stop codes: D01 defrost, F12 low flow, H03 setpoint reached…”
Think

The log tells the causes apart. Look up each one using the manual’s own terms.

Call
semantic_search("frequent defrost cycles at low outdoor temperature and high humidity", corpus=manuals, k=3) keyword_search("AWP-12 minimum water volume buffer tank", corpus=manuals, k=3) keyword_search("AWP-12 hysteresis parameter", corpus=manuals, k=3)
Result
  • Installation Guide §3.4 Defrost Operation, p. 21 “…up to 3 defrost cycles per hour below 3 °C is normal…”
  • Installation Guide §2.6 Hydraulics, p. 14 “…minimum system volume 60 l; below this, install a buffer tank…”
  • Service Manual §6.1 Parameter P21, p. 44 “…switching hysteresis, default 2 K, range 1–6 K…”
Think

All three causes have documentation. Send the user to the event log first, and give one fix for each stop code.

Answer

Probably not broken. Check the event log (menu 4.7, Service Manual p. 38) and see which stop code appears:

  • D01 (defrost): up to 3 cycles per hour below 3 °C is normal (Installation Guide p. 21).
  • H03 (setpoint reached) with many zones closed: the circuit may hold less than the 60 l minimum. Open more zones or add a buffer tank (p. 14).
  • H03 with all zones open: widen the hysteresis, parameter P21, from 2 K to 4 K (Service Manual p. 44).

Sources: AWP-12 Service Manual pp. 38, 44 · Installation Guide pp. 14, 21

Training data distribution using synthetic task distributions

Pipeline from open corpora in several verticals, through ETL and indexing, to synthetic multi-hop task generation.

Deploying industry specific environments inside training environments

Diagram of the lightweight in-process RAG backend used inside the training infrastructure.

Agentic and industry-specific benchmarks

Training methods, iteration and incremental results

Step 1: Does the environment teach anything?

Step 2: Add industry-specific training data

Step 3: Move to a bigger model

Step 4: Feed the environment back into SFT

Step 5: A better reward

Score on internal customer-proxy benchmark
  • Automotive supplier 0.72 → 0.99
  • Semiconductors 0.35 → 0.80
  • German public sector 0.54 → 0.75
  • Industrial drive technology 0.31 → 0.60
  • Aerospace 0.14 → 0.59
  • one checkpoint, one eval
  • mean of that day
  • Kolibri Origin
  • Kolibri
Figure 4: hillclimbing performance on industry specific benchmarks

Final results

Across the whole suite, though, Kolibri gives the best results, and it does that with a fraction of the compute per token.

MuSiQue (cleaned)Agentic RAGHoneypotAgentic RAGSemiconductorsCustomer proxyGerman public sectorCustomer proxyAerospaceCustomer proxyAutomotive supplierCustomer proxyIndustrial drive technologyCustomer proxy
Show the numbers
BenchmarkKolibriKolibri OriginQwen3-Next 80B-A3BQwen3.6-35B-A3BNemotron 3 Super 120B-A12BMistral Small 4 119B-A6B
MuSiQue (cleaned)77.342.750.561.279.166.8
Honeypot80.825.313.574.368.868.1
Semiconductors80.435.341.279.469.662.7
German public sector75.054.029.572.078.050.0
Aerospace58.914.148.159.054.947.0
Automotive supplier99.072.484.292.691.087.1
Industrial drive technology60.031.432.759.537.356.8
Figure 5: results on all agentic RAG benchmarks, including industry specific benchmarks. Same harness, prompts, tools for every model; highest reasoning effort where available.
The per-benchmark scores behind Figure 5. LLM-judged accuracy in per cent; models ordered by mean.
Benchmark Kolibri Qwen3.6-35B-A3B Nemotron 3 Super Mistral Small 4 Qwen3-Next 80B-A3B Kolibri Origin
MuSiQue (cleaned)77.361.279.166.850.542.7
Honeypot80.874.368.868.113.525.3
Semiconductors80.479.469.662.741.235.3
German public sector75.072.078.050.029.554.0
Aerospace58.959.054.947.048.114.1
Automotive supplier99.092.691.087.184.272.4
Industrial drive technology60.059.537.356.832.731.4
Mean75.971.168.462.642.839.3

Discussion

Conclusion

Acknowledgements