Model
Model
Represents a machine learning model in the Fiddler platform.
The Model class is the central entity for ML model monitoring and management. It encapsulates the model's schema, specification, and metadata, and provides methods for data publishing, artifact management, and monitoring operations.
Key Concepts:
Schema (
ModelSchema): Defines the structure and data types of model inputs/outputsSpec (
ModelSpec): Defines how columns are used (features, targets, predictions, etc.)Task (
ModelTask): The ML task type (classification, regression, ranking, etc.)Artifacts (
ModelArtifact): Deployable model code and dependenciesSurrogates (
Surrogate): Simplified models for fast explanations
Lifecycle:
Create model with schema/spec (from data or manual definition)
Upload model artifacts for serving (optional)
Publish baseline/training data for drift detection
Publish production data for monitoring
Set up alerts and monitoring rules
Common Use Cases:
Tabular Models: Traditional ML models with structured data
Text Models: NLP models with text inputs and embeddings
Mixed Models: Models combining tabular and unstructured data
Ranking Models: Recommendation and search ranking systems
LLM Models: Large language model monitoring
Example
Initialize a Model instance.
Creates a new Model object with the specified configuration. The model is not created on the Fiddler platform until .create() is called.
Parameters
name
str
✗
None
Model name, must be unique within the project version. Should be descriptive and follow naming conventions.
project_id
`UUID
str`
✗
None
schema
✗
None
ModelSchema defining column structure and data types. Can be created manually or generated from data.
spec
✗
None
ModelSpec defining how columns are used (inputs, outputs, targets). Specifies the model's interface and column roles.
version
`str
None`
✗
v1
input_type
str
✗
None
ModelInputType - Type of input data the model processes.; TABULAR: Structured/tabular data (default); TEXT: Natural language text data; MIXED: Combination of structured and unstructured data
task
str
✗
None
ModelTask - Machine learning task type.; BINARY_CLASSIFICATION: Binary classification (0/1, True/False); MULTICLASS_CLASSIFICATION: Multi-class classification; REGRESSION: Continuous value prediction; RANKING: Ranking/recommendation tasks; LLM: Large language model tasks; NOT_SET: Task not specified (default)
task_params
`ModelTaskParams
None`
✗
None
description
`str
None`
✗
None
event_id_col
`str
None`
✗
None
event_ts_col
`str
None`
✗
None
event_ts_format
`str
None`
✗
None
xai_params
`XaiParams
None`
✗
None
Example
The model exists only locally until .create() is called. Use Model.from_data() for automatic schema/spec generation from DataFrames or files.
classmethod get(id_)
Retrieve a model by its unique identifier.
Fetches a model from the Fiddler platform using its UUID. This is the most direct way to retrieve a model when you know its ID.
Parameters
id_
`UUID
str`
✗
None
Returns
The model instance with all its configuration and metadata.
Return type: Model
Raises
NotFound -- If no model exists with the specified ID.
ApiError -- If there's an error communicating with the Fiddler API.
Example
This method makes an API call to fetch the latest model state from the server. The returned model instance reflects the current state in Fiddler.
classmethod from_name(name, project_id, version=None, latest=False)
Retrieve a model by name within a project.
Finds and returns a model using its name and project context. This is useful when you know the model name but not its UUID. Supports version-specific retrieval and latest version lookup.
Parameters
name
str
✗
None
The name of the model to retrieve. Model names are unique within a project but may have multiple versions.
project_id
`UUID
str`
✗
None
version
`str
None`
✗
None
latest
bool
✗
None
If True and version is None, retrieves the most recently created version. If False, retrieves the first (oldest) version. Ignored if version is specified.
Returns
The model instance matching the specified criteria.
Return type: Model
Raises
NotFound -- If no model exists with the specified name/version in the project.
ApiError -- If there's an error communicating with the Fiddler API.
Example
When version is None and latest=False, returns the first version created. This provides consistent behavior for accessing the "original" model version.
create()
Create the model on the Fiddler platform.
Persists this model instance to the Fiddler platform, making it available for monitoring, data publishing, and other operations. The model must have a valid schema, spec, and be associated with an existing project.
Returns
This model instance, updated with server-assigned fields like : ID, creation timestamp, and other metadata.
Return type: Model
Raises
Conflict -- If a model with the same name and version already exists in the project.
ValidationError -- If the model configuration is invalid (e.g., invalid schema, spec, or task parameters).
ApiError -- If there's an error communicating with the Fiddler API.
Example
After successful creation, the model instance is updated in-place with server-assigned metadata. The same instance can be used for subsequent operations without needing to fetch it again.
update()
Update an existing model.
Return type: None
add_column()
Add a new column to the model schema.
Updates both the schema and spec to include the new column. This allows you to extend your model with additional columns after initial creation.
New in version 3.11.0
Parameters
column_type
str
✗
metadata
Type of column in spec. One of: 'inputs', 'outputs', 'targets', 'decisions',
Raises
ValueError -- If column already exists or column_type is invalid
BadRequest -- If column definition is invalid per backend validation Return type: None
Example
Adding a column doesn't populate historical data; new column will be null for past events
Column names must be unique within the model
After adding a column, include it in future event publishing
classmethod list(project_id, name=None)
List models in a project with optional filtering.
Retrieves all models or model versions within a project. Returns lightweight ModelCompact objects that can be used to fetch full Model instances when needed.
Parameters
project_id
`UUID
str`
✗
None
name
`str
None`
✗
None
Yields
ModelCompact --
Lightweight model objects containing id, name, and version. : Call .fetch() on any ModelCompact to get the full Model instance. Return type: Iterator[ModelCompact]
Example
This method returns an iterator for memory efficiency when dealing with many models. The ModelCompact objects are lightweight and don't include full schema/spec information - use .fetch() when you need complete details.
duplicate()
Duplicate the model instance with the given version name.
This call will not save the model on server. After making changes to the model instance call .create() to add the model version to Fiddler Platform.
Parameters
version
`str
None`
✗
None
Returns
Model instance
Return type: Model
property datasets : Iterator[Dataset]
Get all datasets associated with this model.
Returns an iterator over all datasets that have been published to this model, including both production data and pre-production datasets used for baselines and drift comparison.
Yields
Dataset --
Dataset objects containing metadata and data access methods. : Each dataset represents a collection of events published to the model.
Example
This includes both production event data and named pre-production datasets. Use the Dataset objects to download data, analyze distributions, or set up baseline comparisons for drift detection.
property baselines : Iterator[Baseline]
Get all baselines configured for this model.
Returns an iterator over all baseline configurations used for drift detection and performance monitoring. Baselines define reference distributions and metrics for comparison with production data.
Yields
Baseline --
Baseline objects containing configuration and reference data. : Each baseline defines how drift and performance should be measured against historical or reference datasets.
Example
Baselines are essential for drift detection and alerting. They define the "normal" behavior against which production data is compared. Static baselines use fixed reference data, while rolling baselines update automatically with recent data.
property deployment : ModelDeployment
Fetch model deployment instance of this model.
Returns
The deployment configuration for this model.
Return type: ModelDeployment
classmethod from_data(source, name, project_id, spec=None, version=None, input_type=ModelInputType.TABULAR, task=ModelTask.NOT_SET, task_params=None, description=None, event_id_col=None, event_ts_col=None, event_ts_format=None, xai_params=None, max_cardinality=None, sample_size=None)
Create a Model instance with automatic schema generation from data.
This is the most convenient way to create models when you have training data or representative samples. The method automatically analyzes the data to generate appropriate schema (column types) and spec (column roles) definitions.
Parameters
source
`DataFrame
Path
str`
✗
name
str
✗
None
Model name, must be unique within the project version. Use descriptive names like "fraud_detector_v1" or
project_id
`UUID
str`
✗
None
spec
`ModelSpec
None`
✗
None
version
`str
None`
✗
v1
input_type
str
✗
None
ModelInputType - Type of input data the model processes.; TABULAR: Structured/tabular data (default); TEXT: Natural language text data; MIXED: Combination of structured and unstructured data
task
str
✗
None
ModelTask - Machine learning task type: BINARY_CLASSIFICATION: Binary classification (0/1, True/False); MULTICLASS_CLASSIFICATION: Multi-class classification; REGRESSION: Continuous value prediction; RANKING: Ranking/recommendation tasks; LLM: Large language model tasks; NOT_SET: Task not specified (default)
task_params
`ModelTaskParams
None`
✗
None
description
`str
None`
✗
None
event_id_col
`str
None`
✗
None
event_ts_col
`str
None`
✗
None
event_ts_format
`str
None`
✗
None
xai_params
`XaiParams
None`
✗
None
max_cardinality
`int
None`
✗
None
sample_size
`int
None`
✗
None
Returns
A new Model instance with automatically generated schema and spec. : The model is not yet created on the platform - call .create() to persist.
Return type: Model
Raises
ValueError -- If the data source is invalid or cannot be processed.
FileNotFoundError -- If source is a file path that doesn't exist.
ValidationError -- If the generated schema/spec is invalid.
Example
The automatic schema generation uses heuristics to detect column types and roles. Review the generated schema and spec before calling .create() to ensure they match your model's actual interface. You can modify the schema and spec after creation if needed.
delete()
Delete a model and it's associated resources.
Returns
model deletion job instance
Return type: Job
remove_column()
Remove a column from the model schema and spec
This method is only to modify model object before creating and will not save the model on Fiddler Platform. After making changes to the model instance, call .create() to add the model to Fiddler Platform.
Parameters
column_name
str
✗
None
Column name to be removed
missing_ok
bool
✗
None
If True, do not raise an error if the column is not found
Returns
None
Raises
KeyError -- If the column name is not found and missing_ok is False
Return type: None
publish()
Publish data to the model for monitoring and analysis.
Uploads prediction events, training data, or reference datasets to Fiddler for monitoring, drift detection, and performance analysis. This is how you send your model's real-world data to the platform.
Parameters
source
`list[dict[str, Any]] | str
Path
DataFrame`
✗
environment
✗
None
EnvType - Data environment type: PRODUCTION: Live production prediction data.; Used for real-time monitoring and alerting.; PRE_PRODUCTION: Training, validation, or baseline data. Used for drift comparison and model evaluation.
dataset_name
`str
None`
✗
None
update
bool
✗
None
Whether these events update previously published data. Set to True when republishing corrected predictions or adding ground truth labels to existing events.
Returns
Event IDs when source is list of dicts or DataFrame. : Use these IDs to reference specific events later.
Job: Async job object when source is a file path. Use job.wait() to wait for completion or check job.status.
Return type: - list[UUID]
Raises
ValidationError -- If the data doesn't match the model's schema or contains invalid values.
ApiError -- If there's an error uploading the data to Fiddler.
ValueError -- If the source format is unsupported or parameters are incompatible (e.g., dataset_name with PRODUCTION).
Example
Schema Validation: All published data must match the model's schema. Column names, types, and value ranges are validated.
Event IDs: Include event_id_col if specified in model config for event tracking and updates.
Timestamps: Include event_ts_col for time-based analysis and drift detection.
Batch Limits: List of dicts is limited to 1000 events per call. Use files or multiple calls for larger datasets.
Production data publishing enables real-time monitoring, alerting, and drift detection. Pre-production data creates reference datasets for comparison and model evaluation.
add_artifact()
Upload and deploy model artifact.
Parameters
model_dir
`str
Path`
✗
None
deployment_params
`DeploymentParams
None`
✗
None
Returns
Async job instance
Return type: Job
update_artifact()
Update existing model artifact.
Parameters
model_dir
`str
Path`
✗
None
deployment_params
`DeploymentParams
None`
✗
None
Returns
Async job instance
Return type: Job
download_artifact()
Download existing model artifact.
Parameters
output_dir
`str
Path`
✗
None
add_surrogate()
Add a new surrogate model
Parameters
dataset_id
`UUID
str`
✗
None
deployment_params
`DeploymentParams
None`
✗
None
Returns
Async job
Return type: Job
update_surrogate()
Update an existing surrogate model
Parameters
dataset_id
`UUID
str`
✗
None
deployment_params
`DeploymentParams
None`
✗
None
Returns
Async job
Return type: Job
Last updated
Was this helpful?