Periodic snapshots of manually registered output models aren't automatically captured, but they can be updated manually
with [`Task.update_output_model()`](references/sdk/task.md#update_output_model) or [`OutputModel.update_weights()`](references/sdk/model_outputmodel.md#update_weights).
While experimenting, you build up your model catalog. In the ClearML's web UI, model information can be located through
a project's Model Table or through the model's associated task.
Models associated with a task appear in the task's **ARTIFACTS** tab. To see further model details, including design,
label enumeration, and general information, click the model name, which is a hyperlink to the [model's detail page](webapp/webapp_model_viewing.md).
Models can also be accessed through their associated project's [Model Table](webapp/webapp_model_table.md), where all
the models associated with a project are listed. This table can be customized with columns for specific metadata and
metric values, and supports filtering and sorting to quickly find the desired models.
You can [compare models](webapp/webapp_model_comparing.md) through the web UI, allowing you to easily identify,
visualize, and analyze model differences.
Once you are satisfied with a model, you can publish it in order to maintain its contents.
## Working with Models
ClearML models are independent entities facilitating their use in many use cases.
You can modify your models’ details via the UI: add metadata, change names, reconfigure, and add/edit label enumeration.
Modified models can be used as input models in your ClearML Tasks.
You can modify the models that an experiment trains:
1. Clone an experiment
1. Go to the experiment's **Artifacts** tab
1. Hover over an input model's `Model name` field and click **Edit**. Then click <imgsrc="/docs/latest/icons/ico-edit.svg"alt="Edit Pencil"className="icon size-md"/>.
This will open up a window with a model table, where you can select any model from the model catalog.
This can be useful in transfer learning or fine-tuning a model.
### Querying Models
The ClearML model catalog can be accessed directly with a model object (from the `InputModel` or `Model` classes)
or indirectly via their associated task.
Retrieve a list of model objects by querying the catalog by model names, projects, tags, metadata, and more.
```python
model_list = Model.query_models(
# Only models from `examples` project
project_name='examples',
# Only models with input name
model_name=None,
# Only models with `demo` tag or models without `TF` tag
tags=['demo', '-TF'],
# If `True`, only published models
only_published=False,
# If `True`, include archived models
include_archived=True,
# Maximum number of models returned
max_results=5,
# Only models with matching metadata
metadata={"key":"value"}
)
```
See [Querying Models](clearml_sdk/model_sdk.md#querying-models) for more information and examples.
### SDK Interface
Once you have retrieved a model object, you can work with it programmatically.
See the [Model SDK interface](clearml_sdk/model_sdk.md) for an overview of model classes' Pythonic methods. See a
detailed list of all available methods in the [Model](references/sdk/model_model.md), [OutputModel](references/sdk/model_outputmodel.md),
and [InputModel](references/sdk/model_inputmodel.md) reference pages.
## Serving Models
[ClearML Serving](clearml_serving/clearml_serving.md) provides a command line utility for model deployment and
orchestration. It enables model deployment including serving and preprocessing code to a Kubernetes cluster or custom
container based solution.
After you have set up `clearml-serving`, you can create endpoints for models in your ClearML model catalog.