Versions

Overview

Every model version is a model instance that consists of a model container image and version details (metadata). Every model may have multiple active versions. Active versions feature in the Model Details page.

Metadata

The model metadata is a set of data that defines and describes model details. It helps users understand models and helps Modzy run models successfully. Model metadata includes a model name, description, technical details. Version metadata holds the details required to run inference. These data include timeout, requirement, containerImage, loadStatus, runStatus, inputs, outputs, statistics, technicalDetails, sampleInput, sampleOutput, performanceSummary, and processing among others. The Model service has APIs to get and update these version details.

The Model service also has routes to create new versions (which involves uploading a new version of a model container image), add metadata, deploy, and delete versions.

Model versioning

Version numbers follow semantic formatting. Check out our Versioning guide to learn more.

🚧

Only the model’s creator can update the model, create new versions, or update existing ones.

The versions object

{
    "version": "...",
    "createdAt": "2020-05-13T18:32:59.510+0000",
    "updatedAt": "2020-05-19T22:01:52.015+0000",
    "inputValidationSchema": "...",
    "timeout": {
        "status": 12345,
        "run": 12345
    },
    "requirement": {
        "gpuUnits": 0,
        "cpuAmount": "...",
        "memoryAmount": "...",
        "name": "...",
        "description": "..."
    },
    "containerImage": {
        "uploadStatus": "...",
        "loadStatus": "...",
        "uploadPercentage": 100,
        "loadPercentage": 100,
        "containerImageSize": 0,
        "registryHost": "...",
        "repositoryNamespace": "...",
        "repositoryName": "..."
    },
    "loadStatus": {
        "step": 2,
        "stepName": "...",
        "percentage": 100
    },
    "runStatus": {
        "step": 4,
        "stepName": "...",
        "percentage": 100,
        "result": {
            "status": "...",
            "engine": "...",
            "error": null,
            "startTime": "...",
            "endTime": "...",
            "updateTime": "...",
            "results.json": {}
        }
    },
    "inputs": [
        {
            "name": "input.txt",
            "acceptedMediaTypes": "application/json",
            "maximumSize": 5242880,
            "description": "Input"
        }
    ],
    "outputs": [
        {
            "name": "results.json",
            "mediaType": "application/json",
            "maximumSize": 5242880,
            "description": "Result"
        }
    ],
    "statistics": [
        {
            "label": "...",
            "category": "...",
            "type": "...",
            "description": "...",
            "highlight": false,
            "order": 3,
            "value": 0.96
        }
    ],
    "isActive": true,
    "longDescription": "...",
    "technicalDetails": "...",
    "sampleInput": "...",
    "sampleOutput": "...",
    "isAvailable": true,
    "sourceType": "...",
    "versionHistory": "...",
    "status": "...",
    "performanceSummary": "...",
    "model": {
        "modelId": "...",
        "latestVersion": "...",
        "latestActiveVersion": "...",
        "versions": [],
        "author": "...",
        "name": "...",
        "description": "...",
        "permalink": "...",
        "features": [],
        "isActive": true,
        "isRecommended": false,
        "isCommercial": false,
        "tags": [
            {
                "identifier": "...",
                "name": "...",
                "dataType": "...",
                "isCategorical": true
            }
        ],
        "images": [],
        "isExpired": false,
        "lastActiveDateTime": "...",
        "createdByEmail": "...",
        "createdByFullName": "..."
    },
    "processing": {
        "minimumParallelCapacity": 1,
        "maximumParallelCapacity": 3
    },
    "availableInClientRegistry": true
}

Parameter

Type

Description

version

string

The model’s instance number.
Versions control the metadata featured in the Model Details page.
Version numbers follow semantic formatting. Check out our versioning guide to learn more.

createdAt

string

The version’s creation date in ISO8601 (YYYY-MM-DDThh:mm:ss.sTZD) format.

updatedAt

string

The version’s last change date in ISO8601 (YYYY-MM-DDThh:mm:ss.sTZD)format.

inputValidationSchema

string

A JSON schema that validates if the model can run the inputs provided.

timeout

object

An object that contains the version’s timeout parameters.

requirement

object

An object that contains the version’s requirements' name, description, memory and hardware parameters.

containerImage

object

An object that contains the version’s container image parameters.

loadStatus

object

The container image load status. The load process is where Modzy tests the model’s /status route. It returns the step number, step name, and completion percentage.

runStatus

object

The container image run status. The run process is where Modzy tests the model’s /run route. It returns the step number, step name, completion percentage, and run results.

inputs

array

An array that contains the version’s input objects.

outputs

array

An array that contains the version’s output objects.

statistics

array

An array that contains the version’s performance metrics.

isActive

boolean

Active model versions are available in the Marketplace and can execute inference on data. It is true when a version’s status is ACTIVE.

longDescription

string

The version’s details such as what it does, how it works, and what to expect from the results. It’s featured in the Model Details page. It supports content in Markdown to include rich text, links, images, etc.

technicalDetails

string

The version’s technical details such as how the model was designed, developed, and trained. It’s featured in the Model Details page. It supports content in Markdown to include rich text, links, images, etc.

sampleInput

string

Created with data file used to test the model, it shows users how to format API requests to run the model. Together with the sampleOutput, this sample is featured in the Model Details page in JSON format.

sampleOutput

string

Created from the model test results, it shows users how results are returned. Together with the sampleInput, this sample is featured in the Model Details page in JSON format.

isAvailable

boolean

Defines if the version is available or coming soon.

sourceType

string

The model’s source. Values can be "Custom Model", "BAH", "BAH Partner", or "Open Source". It’s featured in the Model Marketplace.

versionHistory

string

The version’s release notes. It contains details such as version changes and accomplishments. It’s featured in the Model Details page.

status

string

The version’s status. Values can be partial, canceled, rejected, deleted, active, or inactive. Active versions are published in the Model Details page.

performanceSummary

string

The model’s performance summary such as the most effective scenarios and weak areas. It is published in the model details performance metrics section.

model

object

An object that displays the model’s parameters.

processing

object

An object that displays the model’s processing engines details.

availableInClientRegistry

boolean

Explains if the version exists in the client registry.

The timeouts object

{
    "status": 12345,
    "run": 12345
}

Parameter

Type

Description

status

number

A job’s time limit to load a model and get it ready to run data.
Example: 30s

run

number

The model’s time limit to process one input item. It starts when a single input item is loaded and ends when the result for that input item is returned.
Example: 30s

The requirements object

{
  "requirementId": 1,
  "gpuUnits": 1,
  "cpuAmount": "...",
  "memoryAmount": "...",
  "name": "...",
  "description": "..."
 }

Parameter

Type

Description

requirementId

string

The identifier for the memory and hardware requirements set.

gpuUnits

number

An integer number of GPUs required to run the model container. GPU resources are optional.

cpuAmount

string

A number of fractional CPUs required to run the model container. You can limit the percentage of the CPU that the container is allowed to use.

memoryAmount

string

The amount of system memory needed to run the model container (e.g. RAM). Measured in bytes, it can be a plain integer or a fixed-point integer using a suffix. Suffixes may be: G, M, K, or their power-of-two equivalents: Gi, Mi, Ki.Mi".

name

string

The requirement's name.

description

string

A text that usually describes the recommended use case or model type for that particular hardware configuration.

The container image object

{
    "uploadStatus": "...",
    "loadStatus": "...",
    "uploadPercentage": 100,
    "loadPercentage": 100,
    "containerImageSize": 0,
    "registryHost": "...",
    "imagePrefix": "...",
    "repositoryName": "..."
}

Parameter

Type

Description

uploadStatus

string

The current step in the container image upload process. It may be: "Uploading container image", "Loading model 'x'", or "Checking status endpoint".

loadStatus

string

The container image load status. The load process is where Modzy tests the model’s /status route. It returns the step number, step name, and completion percentage.

uploadPercentage

number

The container image’s upload progress percentage.

loadPercentage

number

The container image’s load progress percentage.

containerImageSize

number

The container image’s file size in bytes.

registryHost

string

The URL hosting the Docker registry. Applicable for Docker files only.

imagePrefix

string

The location where the container image is stored. Applicable for Docker files only.

repositoryName

string

The repository where the container image is located. Applicable for Docker files only.

repositoryNameSpace

string

The repository where the container image is stored. Applicable for Docker files only

The inputs object

{
    "name": "...",
    "acceptedMediaTypes": "...",
    "maximumSize": 12345,
    "description": "..."
}

Parameter

Type

Description

name

string

The input’s name. The input name provided to run a model must match this name.
string

acceptedMediaTypes

string

The input file MIME types the model supports.

maximumSize

number

The maximum amount of data in bytes the model can process per input item.

description

string

The input’s details such as options, dependencies, requirements, and other special considerations. It’s featured in the Model Details page. It supports content in Markdown format for including rich text, links, images, etc.

The outputs object

{
    "name": "...",
    "mediaType": "...",
    "maximumSize": 12345,
    "description": "..."
}

Parameter

Type

Description

name

string

The output name the model returns.

mediaType

string

The output file MIME types the model supports.

maximumSize

number

The maximum amount of data in bytes the model can return per output file.

description

string

The output details such as what to expect and how to manage results. It’s featured in the Model Details page. It supports content in Markdown format for including rich text, links, images, etc.

The statistics object

{
  "label": "...",
  "category": "...",
  "type": "...",
  "description": "...",
  "highlight": false,
  "order": 3,
  "value": 0.96
}

Parameter

Type

Description

label

string

The metric’s name. It may be a predefined or custom metric. It’s featured in the Model Details page.

category

string

The metric’s value format. It can be numeric or text. Many times is a number between 0 and 1 but depending on the metric can be any number or even a string.

type

string

The metric’s measurement format. Values can be percentage, ratio, or text.

description

string

The metric’s description such as how it is calculated and additional information. It’s featured in the Model Details page.
It is required when not using predefined metrics.

highlight

boolean

Highlights metrics in the Model Details page. Defaults to true.

order

number

The order by which the metrics are displayed in the Model Details page.

value

number

The metric’s performance score. If the type is percentage, this value can range from 0 to 1. If the type is ratio, this value can be any positive number. If the type is text, this value can be a string with a max length of 100 characters. It’s featured in the Model Details page.

The processing object

{
    "minimumParallelCapacity": 1,
    "maximumParallelCapacity": 3
}

Parameter

Type

Description

minimumParallelCapacity

number

The minimum number of processing engines a model’s version can run. It is a positive integer.

maximumParallelCapacity

number

The maximum number of processing engines a model’s version can run. It is a positive integer.