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:
- Generalist LLMs (GPT, Claude, Gemini) — effective for text classification tasks where language understanding, context, and reasoning matter
- Vision foundation models (CLIP, DINO) — effective for image classification and detection tasks, particularly where visual features and spatial structure are important
- Structured data models — lighter-weight architectures suited to tabular inputs with named fields
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:
- Add labeled samples — either at setup or continuously as traffic flows through the function
- Review predictions in the console and correct mistakes
- Annotate unlabeled invocations to convert them into training samples
- Monitor accuracy and confidence distribution to identify when more samples are needed
What you do not need to do:
- Choose a model architecture
- Set learning rates, batch sizes, or other hyperparameters
- Trigger retraining manually
- Manage model versions or deployments
- Handle rollbacks if a new model performs worse — the ML Engine validates before promoting
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:
- The endpoint URL does not change
- The label set does not change
- Predictions continue to be served without interruption during retraining
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.