Updating a deployed asset

Updating a deployed asset

After you create an online or batch deployment, you can update the deployed asset from the same endpoint. For example, if you have a better performing model, you can replace the deployed model with the improved version. Once the update is complete, the new model will be available from the REST API endpoint.

Before you update an asset, make sure these conditions are true:

  • The framework of the new model is compatible with the existing deployed model
  • The input schema exists and matches for the new and deployed model

Caution: Failure to follow these conditions can result in a failed deployment.

Update an asset from the deployment space

  1. From the Deployments tab of your deployment space, click the action menu for the deployment and choose Replace asset.
  2. Select the asset you want to replace and click Replace.
  3. Drag and drop or upload a new asset to replace the deployed asset.
  4. Wait for the notification message that confirms a successful update, then test the new deployment.


Replacing a deployed asset

Tip: You can also update a deployment from the information sheet for the deployment.

  1. Click the deployment name to view the details.
  2. Click the Edit icon in the information sheet to edit the deployment.


Updating a deployment configuration

Update an asset using the Patch API command

Use the Watson Machine Learning API Patch command to update any supported asset except for RShiny apps.

Use the Watson Machine Learning API Patch command to update any supported asset except for RShiny apps.

Use this method to patch a model for an online deployment.

curl -X PATCH 'https://us-south.ml.cloud.ibm.com/ml/v4/models/:model_id?space_id=<string>&project_id=<string>&version=2020-09-01' \n--data-raw '[
    {
        "op": "<string>",
        "path": "<string>",
        "value": "<object>"
    },
    {
        "op": "<string>",
        "path": "<string>",
        "value": "<object>"
    }
]'

For example, patch a model with id: 6f01d512-fe0f-41cd-9a52-1e200c525c84 where the input payload is:

[ { “op”:”replace”, “path”:”/asset”, “value”:{ “id”:”6f01d512-fe0f-41cd-9a52-1e200c525c84”, “rev”:”1” } } ]


A successful output response will look like this:

{ “entity”: { “asset”: { “href”: “/v4/models/6f01d512-fe0f-41cd-9a52-1e200c525c84?space_id=f2ddb8ce-7b10-4846-9ab0-62454a449802”, “id”: “6f01d512-fe0f-41cd-9a52-1e200c525c84” }, “custom”: { }, “description”: “Test V4 deployments”, “name”: “test_v4_dep_online_space_hardware_spec”, “online”: { }, “space”: { “href”: “/v4/spaces/f2ddb8ce-7b10-4846-9ab0-62454a449802”, “id”: “f2ddb8ce-7b10-4846-9ab0-62454a449802” }, “space_id”: “f2ddb8ce-7b10-4846-9ab0-62454a449802”, “status”: { “online_url”: { “url”: “https://example.com/v4/deployments/349dc1f7-9452-491b-8aa4-0777f784bd83/predictions” }, “state”: “updating” } }, “metadata”: { “created_at”: “2020-06-08T16:51:08.315Z”, “description”: “Test V4 deployments”, “guid”: “349dc1f7-9452-491b-8aa4-0777f784bd83”, “href”: “/v4/deployments/349dc1f7-9452-491b-8aa4-0777f784bd83”, “id”: “349dc1f7-9452-491b-8aa4-0777f784bd83”, “modified_at”: “2020-06-08T16:55:28.348Z”, “name”: “test_v4_dep_online_space_hardware_spec”, “parent”: { “href”: “” }, “space_id”: “f2ddb8ce-7b10-4846-9ab0-62454a449802” } }


**Notes:**

- The initial state for the PATCH API output is "updating". Keep polling the status until it changes to "ready", then retrieve the deployment meta.
- Only the `ASSET` attribute can be specified for the asset patch. Changing any other attribute will result in an error.
- The schema of the current model and the model being patched is compared to the deployed asset and a warning message is returned in the output of the Patch request API if the two don't match. For example, if a mismatch is detected, you will see this in the output response:

“status”: {       “message”: {         “text”: “The input schema of the asset being patched does not match with the currently deployed asset. Please ensure that the score payloads are up to date as per the asset being patched.”       }, ```