# About ML Logs

> The **ML Logs** page, accessible from the **ML Logs** menu after selecting a project, is a consolidated view of all events related to the project.

The **ML Logs** page, accessible from the **ML Logs** menu after selecting a project, is a consolidated view of all events related to the project.

These events fall into the following categories:

* ML Package validation events
* Dataset events
* Pipeline events
* ML Skill deployment events
* ML Skill predictions events

## ML package validation events

When a model is uploaded, if the model is **not marked** as **Trainable**, **UiPath® AI Center** validates the uploaded `.zip` file against the following requirements:

* A non-empty root folder with the same name as the zip file exists.
* A **requirements.txt** file exists.
* A file named **main.py** which implements a class **Main** exists. The class is further validated to implement an `__init__` and a `predict` function.

If the model is **marked** as **Trainable**, AI Center validates the uploaded `.zip` file against the following requirements:

* A non-empty root folder with the same name as the zip file exists.
* A **requirements.txt** file exists.
* A file named **main.py** which implements a class **Main** exists. The class is further validated to implement an `__init__` and a `predict` function.
* A file named **train.py** which implements a class **Main**. The class is further validated to implement an `__init__` function as well as `train`, `evaluate`, and `save` functions.
* Note an optional **train_requirements.txt** file can be added; if not included, the validation still passes.

ML logs for this category illustrate validation start and finish times, and the actual validation errors, if any.

## Dataset events

When a dataset is created, updated, or deleted, it is displayed in the **ML Logs** page.

## Pipeline events

When a pipeline starts or fails, it is displayed in the **Pipeline events** page.

## ML Skill deployment events

When a skill is created, AI Center deploys it. This entails installing dependencies, running a number of security checks and optimizations, setting up the network within the namespace of the tenant, creating a container with a certain number of replicas from the corresponding package, and finally checking the health of the skill.

ML logs for this category illustrate deployment start and finish times, and the actual deployment errors, if any.

:::note
If the **User** is `system` in the ML Logs, this means that the Skill was undeployed automatically due to inactivity.
:::

## ML Skill predictions events

When a live skill is serving, if there is a prediction failure - an exception thrown by the Python code, the corresponding exception is under this component.
