Specialist Factory

A small model trained on your cases beats a large generalist model.

For each closed decision your application makes often (sorting a message, choosing a team, qualifying a request), the factory builds a specialist: trained in a few seconds, measured on a test you validate, adopted only if it does no worse, and learning from what really happens next.

The life of a specialist

Everything goes through the API or the console. Nothing goes into decision on its own.

  1. Declare
    The question, its options, the safe option and the costly errors.
  2. Give examples
    A few per option, or generated by a model you choose, then reviewed.
  3. Freeze a human test
    Real cases validated by a person, append only. Never generated.
  4. Train
    A decision layer on a shared encoder: a few seconds, on CPU.
  5. Qualify
    The barrier: no more dangerous errors than the version in service, threshold chosen by cross-validation on your examples.
  6. Observe, then decide
    First it proposes without changing anything; it decides once you promote it.
  7. Learn from feedback
    What really happened becomes an example to review, never a direct change to the model.

What is guaranteed, and what is not

Measured on your test

Quality is measured on a frozen human test. With zero dangerous errors on n exposed cases, the true rate is below 3/n at 95%: the console shows it.

No regression

A new version replaces the old one only if it makes no more dangerous errors. Rolling back is immediate.

Careful when in doubt

Below the threshold, the answer is the safe option you declared, flagged as a doubt.

Your data stays with you

Each space is isolated. Locally, nothing leaves. No real example is sent anywhere without your explicit consent.

What is not guaranteed: quality on cases unlike anything seen before. That is the role of observation, of the threshold and of the safe option.

The same call as Jev

Your code does not change: only the address does. The answer keeps the Jev shape and adds a routage block, which existing clients ignore.

curl -s <factory address>/v1/systemone \
  -H "Authorization: Bearer <your key>" -H "Content-Type: application/json" \
  -d '{"state": "My payments have been failing for three days.", "model": "auto",
       "questions": {"team": {"type": "choice",
         "instructions": "Which team should handle this message?",
         "criteria": {"billing": "payments, invoices, refunds",
                      "technical": "outages, bugs, login, integrations",
                      "sales": "prices, quotes, new accounts"}}}}'

Measured here, not promised

0.83

accuracy of the specialist on a frozen test of 48 cases, against 0.19 to 0.38 for local generalist models used as they are.

18 ms

per answer on CPU (OpenVINO int8), about 500 MB of memory, no graphics card.

5 s

to train a version, 2 s to qualify it; a head weighs 54 KB.

Caveat: a single use case (six kinds of work, in French), a test of 48 synthetic cases. Enough to compare candidates, not to promise an error rate: your own test will tell.