Models

Models are the underlying AI systems that produce predictions. Nyckel automatically evaluates generalist models (GPT, Claude, Gemini) and foundation models optimised for visual and structured tasks (CLIP, DINO for classification, detection, and segmentation). The best-performing model for each function is selected and updated automatically over time — you don’t need to choose or manage models yourself.

The ML Engine

The ML Engine is Nyckel’s internal system responsible for evaluating, selecting, training, and updating models. It operates automatically in the background. You never interact with it directly — there is no model configuration screen, no training dashboard, and no deployment step.

When you add labeled samples to a function, the ML Engine takes over. It evaluates candidate architectures against your data, selects the best performer, trains it, and begins serving predictions. As your dataset grows or the real-world data distribution shifts, the ML Engine continues to evaluate whether a different architecture would perform better and retrains accordingly.

Automatic model selection

The ML Engine does not use a single fixed architecture for all functions. It evaluates multiple model families and selects the one best suited to the function’s input type and label set.

Candidate architectures include:

Selection is driven by held-out accuracy on your labeled samples. The ML Engine runs candidates in parallel, evaluates their performance, and promotes the best one to serve live predictions.

The training lifecycle

A model attached to a function moves through four states as samples are added and the function matures.

State What it means
Untrained No labeled samples have been added yet. The function can still invoke a pretrained model for zero-shot predictions, but no custom training has occurred.
Training Labeled samples have been added and the ML Engine is running its initial training and evaluation pass. Predictions may be served from a pretrained baseline during this phase.
Active Training is complete. The function is serving predictions from the trained model. This is the normal operating state.
Retraining New samples or corrections have been added and the ML Engine is running a background retrain. The current active model continues serving predictions without downtime until the new model is validated and promoted.

There is no manual trigger for training. Any time you add a labeled sample or correct a prediction, the ML Engine determines whether a retrain is warranted and runs it in the background.

Model types by input

Different input types call for different model families. The table below shows what the ML Engine draws from for each input type.

Input type Model families used
Image Vision foundation models (CLIP, DINO); fine-tuned convolutional and transformer-based architectures
Text Generalist LLMs (GPT, Claude, Gemini); smaller transformer models fine-tuned for classification
Tabular Gradient-boosted and classical ML architectures suited to structured, named-field data

The function type determines which model families are in scope. A text function will never use a vision model, and an image function will never use a generalist LLM. The ML Engine selects within the appropriate family for each type.

Your role

The ML Engine handles everything on the model side. Your role is to provide the signal it learns from.

What you do:

What you do not need to do:

The ML Engine improves the model as your dataset grows. Your job is to keep the dataset accurate and representative.

Models and functions

Every function has exactly one active model at a time. The ML Engine may swap the underlying model architecture as your dataset grows and better options become available, but this is transparent to your application.

From the outside, the function’s API and labels remain stable regardless of what happens underneath:

You can think of the model as an implementation detail of the function. The function is the stable interface your application depends on; the model is what the ML Engine manages internally to make that interface as accurate as possible.