Link Search Menu Expand Document Documentation Menu

Update a model

Introduced 2.12

Updates a model based on the model_ID.

For information about user access for this API, see Model access control considerations.

Endpoints

PUT /_plugins/_ml/models/<model_id>

Request body fields

The following table lists the updatable fields. Not all request fields are applicable to all models. To determine whether the field is applicable to your model type, see Register Model API.

Field Data type Description
connector Object Contains specifications for a connector for a model hosted on a third-party platform. For more information, see Creating a connector for a specific model. For information about the updatable fields within a connector, see Update Connector API request fields.
connector_id Optional The connector ID of a standalone connector for a model hosted on a third-party platform. For more information, see Standalone connector. To update a standalone connector, you must undeploy the model, update the connector, and then redeploy the model.
description String The model description.
is_enabled Boolean Specifies whether the model is enabled. Disabling the model makes it unavailable for Predict API requests, regardless of the model’s deployment status. Default is true.
model_config Object The model’s configuration, including the model_type, embedding_dimension, and framework_type. all_config is an optional JSON string that contains all model configurations. For more information, see The model_config object.
model_group_id String The model group ID of the model group to which to register this model.
name String The model name.
rate_limiter Object Limits the number of times any user can call the Predict API on the model. For more information, see Rate limiting inference calls.
rate_limiter.limit Integer The maximum number of times any user can call the Predict API on the model per unit of time. By default, there is no limit on the number of Predict API calls. Once you set a limit, you cannot reset it to no limit. As an alternative, you can specify a high limit value and a small time unit, for example, 1 request per nanosecond.
rate_limiter.unit String The unit of time for the rate limiter. Valid values are DAYS, HOURS, MICROSECONDS, MILLISECONDS, MINUTES, NANOSECONDS, and SECONDS.
guardrails Object The guardrails for the model.
interface Object The interface for the model.

Example request: Disabling a model

PUT /_plugins/_ml/models/MzcIJX8BA7mbufL6DOwl
{
    "is_enabled": false
}

Example request: Rate limiting inference calls for a model

The following request limits the number of times you can call the Predict API on the model to 4 Predict API calls per minute:

PUT /_plugins/_ml/models/T_S-cY0BKCJ3ot9qr0aP
{
  "rate_limiter": {
    "limit": "4",
    "unit": "MINUTES"
  }
}

Example requests: Updating the guardrails

PUT /_plugins/_ml/models/MzcIJX8BA7mbufL6DOwl
{
  "guardrails": {
    "type": "local_regex",
    "input_guardrail": {
      "stop_words": [
        {
          "index_name": "updated_stop_words_input",
          "source_fields": ["updated_title"]
        }
      ],
      "regex": ["updated_regex1", "updated_regex2"]
    },
    "output_guardrail": {
      "stop_words": [
        {
          "index_name": "updated_stop_words_output",
          "source_fields": ["updated_title"]
        }
      ],
      "regex": ["updated_regex1", "updated_regex2"]
    }
  }
}

PUT /_plugins/_ml/models/9uGdCJABjaMXYrp14YRj
{
  "guardrails": {
    "type": "model",
    "input_guardrail": {
      "model_id": "V-G1CJABjaMXYrp1QoUC",
      "response_validation_regex": "^\\s*[Aa]ccept\\s*$"
    },
    "output_guardrail": {
      "model_id": "V-G1CJABjaMXYrp1QoUC",
      "response_validation_regex": "^\\s*[Aa]ccept\\s*$"
    }
  }
}

Example response

{
  "_index": ".plugins-ml-model",
  "_id": "MzcIJX8BA7mbufL6DOwl",
  "_version": 10,
  "result": "updated",
  "_shards": {
    "total": 1,
    "successful": 1,
    "failed": 0
  },
  "_seq_no": 48,
  "_primary_term": 4
}
350 characters left

Have a question? .

Want to contribute? or .