diff --git a/docs/components/model.rst b/docs/components/model.rst index ba4e48b..ce16451 100644 --- a/docs/components/model.rst +++ b/docs/components/model.rst @@ -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 ---------------------- \ No newline at end of file +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. \ No newline at end of file