(v1) Register a Model

This section describes how to register a model within ModelOp Center using the ModelOp Jupyter plugin or the ModelOp CLI.

Table of Contents

 

Introduction

The ModelOp Center is flexible on how models are registered so that data scientists can leverage their preferred environments for model creation.

  • ModelOp Center is agnostic to the toolkit used to create the model.

  • You can register the model using the ModelOp Center Jupyter Plugin or the ModelOp Center CLI. Both methods are described in this section.

  • When you register the model, you can include the following elements:

    • Model Source

    • Attachments

    • Schemas

    • Model Platform

  • You can map the following functions from the source code:

    • Init Function

    • Scoring Function

    • Metrics Function

    • Training Function

  • For more information on the core elements that compose a model see Standard Model Definition .

  • For more information on the functions for the Model Source, see Creating Production-Ready Models .

Register a Model Using Git Import

From the ModelOp Center UI:

  • Click on the Models view

  • Click the Import button in the upper righthand corner

 

  • Input the URL for the repository and give the branch you would like to import

 

  • Click “Import Model from Git”

  • Once the model has imported, select the Attachments view from the new Model information page and check to make sure that Asset roles for each of the assets in the repo.

Register a Model Using a Jupyter Plugin

These instructions assume the following:

  • The Jupyter plugin is installed within your Jupyter environment.

  • The Jupyter plugin is enabled. To verify, go to the Nbextensions tab in Jupyter:

    • Select “ModelOp Center Services” if it is not already selected.

    • Enable the ModelOp Center Services. Click the “Enable” button at the bottom of the screen. It is enabled when the “Disable” button is highlighted in blue.

To register a model

From the toolbar, click on the “Register a new model with ModelOp Center” icon.

  1. The “Add Model to Model Operations Center” window opens. Click in the left side of the code cells to designate that the code is part of the model. The selected cells will have a highlighted green border on the left.

     

  2. Click Next. In theModel Information” section, type the Model Name. Optionally, you can add a brief Description of the model.

     

  3. Click Next. In the “Cell details” section:

    1. Choose the remote repository configuration. Make sure ModelOp Center has been configured with access to the git repositories.
      If the Git Remote text field is blank it will create a local (to ModelOp Center) git repository (no remote repository associated).
      If the Git Remote text field is provided (with a valid accessible git repository URL), the local copy will be associated with given remote repository.
      Check Use default repo option if you want the same git remote and branch for all the source code assets (cells). Otherwise, specify each asset with a different remote url or branch.
      You can entirely disable git handling by switching off the Remote repo configuration toggle. This will in turn handle the source code assets using ModelOp Center internal storage only.

    2. Provide a File Name, and select Primary Model Source if appropriate.
      The file name will be complemented with a default extension, but it can be provided by the input text field as part of the file name.
      A model must have one and only one primary source code, which is where it will look for the model functions (more on model functions in the next step).

       

  4. Click Next. Specify the model functions used in your code. (For additional information on the model functions please see here.) ModelOp Center allows the user to associate the triggering operations with specific code functions. Additionally it can identify if the functions already have predefined model functions associated via smart tags. These optional smart tags should be presented as comments in the line above the function definition and the supported comments are:

    • modelop.init

    • modelop.score

    • modelop.metrics

    • modelop.training


    For example:

    # modelop.init def begin(): ...


    You will find that the functions identified from source with a smart tag are already associated with one of the functions, and this selection is not modifiable. If you wish to change the associated model function, either you can edit or remove the smart tag comment, or you can modify the associated model function in the ModelOp Center UI.

    The function associated via smart tag cannot be used for multiple model functions, but the remaining functions can be selected as options for the other associations:

     

  5. Click Next. On the next screen, add any attachments associated the model and select an asset role for each of the files to upload. This will help ModelOp Center runtime identify the accompanying assets for different purposes across the Model Life Cycle. Leave the asset role blank to let ModelOp Center automatically identify the asset based on the file type.

     

  6. Click Next. Review the summary and click Submit Model.

Register a Model Using the ModelOp Center CLI

Pre-Requisites

This procedure assumes the following:

  • You have installed the ModelOp Center command line interface (CLI). For more details, see: ModelOp CLI Reference.

  • You have an existing model, minimally in the form of a source code file (e.g. mymodel.py file)

Optional

When you register a model using the CLI, you have the following options:

  • You can add model attachments, such as a trained model artifact that results from model training.

  • You can include an input schema and/or an output schema with the model. These schemas enable the ModelOp Center to verify that the incoming and outgoing data adhere to the original model design intent. If preferred, you can disable schema checking by default, even if you upload input and/or output schemas.

To register a model from the CLI:

  1. Create a model with a primary source code file.

  2. At the command prompt, type:

moc model add <model name> <path to source code file>

a. (Optional) To include a schema associated with the model, use one or both of the following commands:

  • schema-in=<path for input schema>

  • schema-out=<path for output schema>

b.  (Optional) When you include a schema with a model, schema checking is enabled by default. To override schema checking, use one of the following commands:

  • input-check-off — disables input schema checking for the model

  • output-check-off — disables output schema checking for the model

  • schema-check-off — disables both input and output schema checking for the model

Example: moc model add sample_model /path/to/model/model.py --schema-in=inputSchema.avsc --schema-out=outputSchema.avsc --schema-check-off

  1. When the command in Step 2 is executed with all the options, a successful response looks like this:

Model added, ID:  1fbc8cc8-d5b2-40d1-913e-d30c4a71c16a

Note: if your source code file contains ModelOp Center “smart tag comments” for the primary functions of your model (see: Creating Production-Ready Models for more details), the CLI registration process automatically stores those function references for the newly registered model.

  1. Once a model has successfully been registered, you may add model attachments. Type:

moc asset add <model name or UUID> <path to attachment>

Alternatively, an attachment can be added directly from an S3 bucket:

moc asset add <model name or UUID> [http/s3/S3n/S3a]://accessKey:secretKey@Domain/PATH/<filename> --region=us-east-1

Additional Options:

  • To override the file name, add the --name=<string> option.

  • The MOC CLI determines whether to store the attachments in model-manage or external storage based on file size. Files larger than 10 MB are automatically stored in external storage, for efficiency. To control how the file is stored, use the following options:

  • force

: stores the file in model-manage if file size is less than 10 MB, or in external storage otherwise

  • external

: stores the attachment as external storage. If the file already exists in an external storage location (e.g. an AWS S3 bucket), provide a link to the asset in the following format:

[protocol]://ResourceAccessKey: ResourceSecretKey@ResourceDomain/PATH TO FILE/FILENAME.EXTENTION.

  • -region

— Add to URL to tell CLI the region for the external storage.  

  • Additional Examples:

moc asset add model_name attachment.zip -- external

moc asset add model_name http://$AKEY:$SKEY@modelop:9000/akash/output.json --region=default-region

Related Articles

Next Article: Update an Existing Model >