| @@ -3,15 +3,55 @@ | |||
| Model | |||
| ================================ | |||
| A learnware is a well-performed trained model with a specification, where the model is an indispensable component of the learnware. | |||
| In this section, we will first introduce the ``BaseModel``, which defines the standard format for models in the learnware package. | |||
| Following that, we will introduce the ``ModelContainer``, which implements model deployment in conda virtual environments and Docker containers. | |||
| BaseModel | |||
| ====================================== | |||
| The ``BaseModel`` class is a fundamental component of the learnware package and serves as a standard interface for defining machine learning models. | |||
| This class is created to make it easier for users to submit learnwares to the market. | |||
| It helps ensure that submitted models follow a clear set of rules and requirements. | |||
| The model in a learnware should inherit the ``BaseModel`` class. | |||
| Here's a more detailed explanation of key components: | |||
| - ``input_shape``: Specify the shape of the input features your model expects. | |||
| - ``output_shape``: Define the shape of the output predictions generated by your model. | |||
| - ``predict``: Implement the predict method to make predictions using your model. | |||
| - ``fit``(optional): Use the fit method for training a model with input data and labels. | |||
| - ``finetune``(optional): Utilize the finetune method for further adjusting pre-existing models sourced from the market. | |||
| By adhering to these standards, the compatibility and quality of submitted learnwares in the market are ensured. | |||
| ModelContainer | |||
| ====================================== | |||
| CondaContainer | |||
| The ``ModelContainer`` class is an essential component of the learnware package, designed to facilitate the management, deployment, and execution of machine learning models within a containerized environment. | |||
| It inherits from the ``BaseModel`` class and extends its functionality to encapsulate model deployment and execution. | |||
| ModelCondaContainer | |||
| --------------------- | |||
| The ``ModelCondaContainer`` class is an extension of the ``ModelContainer`` class within the learnware package. | |||
| Its primary purpose is to enable the management, deployment, and execution of machine learning models in a containerized environment, with a specific focus on using Conda virtual environments. | |||
| This class inherits functionality from ``ModelContainer`` while providing additional capabilities related to Conda-based model execution. | |||
| Specifically, the ``ModelCondaContainer`` supports the automatic creation of new Conda virtual environments based on the ``requirements.txt`` file (for pip installation) or ``environment.yaml`` file (for Conda installation) included within the learnware itself. | |||
| It also installs the environment dependencies of the learnware, enabling it to run. | |||
| ModelDockerContainer | |||
| --------------------- | |||
| The ``ModelDockerContainer`` class is a specialized extension of the ``ModelContainer`` class within the learnware package. | |||
| It is designed to manage, deploy, and execute machine learning models within a containerized environment, specifically using Docker containers. | |||
| This class inherits functionality from ``ModelContainer`` and enhances it with features related to Docker-based model execution. | |||
| Compared to ``ModelCondaContainer``, ``ModelDockerContainer`` confines the model's execution within a Docker container. | |||
| It installs the learnware's virtual environment inside the Docker container, isolating the learnware's execution from the host machine, thus enhancing the security of the learnware. | |||
| DockerContainer | |||
| --------------------- | |||
| Similar to the ``ModelCondaContainer`` class, the ``ModelDockerContainer`` class also supports both types of environment dependency files for learnware: ``requirements.txt`` for pip-based installation and ``environment.yaml`` for conda-based installation. | |||
| It automates the creation of Docker containers and the installation of learnware's environment dependencies within the container, enabling the learnware to run. | |||