0 / 0
Managing outdated software specifications or frameworks
Managing outdated software specifications or frameworks

Managing outdated software specifications or frameworks

Use these guidelines when you are updating assets that refer to outdated software specifications or frameworks.

In some cases, asset update is seamless. In other cases, you must retrain or redeploy the assets. For general guidelines, refer to Migrating assets that refer to discontinued software specifications or Migrating assets that refer to discontinued framework versions.

For specific steps, refer to these sections:

Managing assets that refer to discontinued software specifications

  • During migration, assets that refer to the discontinued software specification are mapped to a comparable-supported default software specification (only in cases where the model type is still supported).
  • When you create new deployments of the migrated assets, the updated software specification in the asset metadata is used.
  • Existing deployments of the migrated assets are updated to use the new software specification. If deployment or scoring fails due to framework or library version incompatibilities, follow the instructions in Updating software specifications. If the problem persists, follow the steps that are listed in Updating a machine learning model.

Migrating assets that refer to discontinued framework versions

  • During migration, model types are not be updated. You must manually update this data. For details, refer to Updating a machine learning model.
  • After migration, the existing deployments are removed and new deployments for the deprecated framework are not allowed.

Updating software specifications

You can update software specifications from the the UI or by using the API. For details, refer to these sections:

Updating software specifications from the UI

  1. From the deployment space, click the model (make sure it does not have any active deployments.)
  2. Click the i symbol to check model details.
  3. Use the dropdown menu to update the software specification.

Refer to the example image:

Updating software specifications through the UI

Updating software specifications by using the API

You can update a software specification by using the API Patch command:

For software_spec field, type /software_spec. For value field, use either the ID or the name of the new software specification.

Refer to this example:

curl -X PATCH '<deployment endpoint url>/ml/v4/models/6f01d512-fe0f-41cd-9a52-1e200c525c84?space_id=f2ddb8ce-7b10-4846-9ab0-62454a449802&project_id=<project_id>&version=<YYYY-MM-DD>' \n--data-raw '[
   {
      "op":"replace",
      "path":"/software_spec",
      "value":{
         "id":"6f01d512-fe0f-41cd-9a52-1e200c525c84"   // or "name":"tensorflow_rt22.1-py3.9"
      }
   }
]'

For more information on patching by using the API, refer to Updating an asset by using the Patch API command.

Updating a machine learning model

Follow these steps to update a model built with a deprecated framework.

Option 1: Save the model with a compatible framework

  1. Download the model by using either the Watson Machine Learning REST API or the Watson Machine Learning Python client library.
    Example:
    client.repository.download(<model-id>, filename="xyz.tar.gz")
    
  2. Edit model metadata with the model type and version that is supported in the current release. For details on supported model types and software specifications, refer to Software specifications and hardware specifications for deployments.
    Example:
    model_metadata = {
       client.repository.ModelMetaNames.NAME: "example model",
       client.repository.ModelMetaNames.DESCRIPTION: "example description",
       client.repository.ModelMetaNames.TYPE: "<new model type>",
       client.repository.ModelMetaNames.SOFTWARE_SPEC_UID:
       client.software_specifications.get_uid_by_name("<new software specification name>")
    }
    
  3. Save the model to the Watson Machine Learning repository.
    Example:
    model_details = client.repository.store_model(model="xyz.tar.gz", meta_props=model_metadata)
    
  4. Deploy the model.
  5. Score the model to generate predictions.

If deployment or scoring fails, the model is not compatible with the new version that was used for saving the model. In this case, use Option 2.

Option 2: Retrain the model with a compatible framework

  1. Retrain the model with a model type and version that is supported in the current version.
  2. Save the model with the supported model type and version.
  3. Deploy and score the model.

It is also possible to update a model by using the API. For more information on patching assets by using the API, refer to Updating an asset by using the Patch API command.

Updating a Python function

Follow these steps to update a Python function built with a deprecated framework.

Option 1: Save the Python function with a compatible runtime or software specification

  1. Download the Python function by using either the Watson Machine Learning REST API or the Watson Machine Learning Python client library.
  2. Save the Python function with a supported runtime or software specification version. For details on supported software specifications, refer to Software specifications and hardware specifications for deployments.
  3. Deploy the Python function.
  4. Score the Python function to generate predictions.

If your Python function fails during scoring, the function is not compatible with the new runtime or software specification version that was used for saving the Python function. In this case, use Option 2.

Option 2: Modify the function code and save it with a compatible runtime or software specification

  1. Modify the Python function code to make it compatible with the new runtime or software specification version. In some cases, you must update dependent libraries that are installed within the Python function code.
  2. Save the Python function with the new runtime or software specification version.
  3. Deploy and score the Python function.

It is also possible to update a function by using the API. For more information on patching by using the API, refer to Updating an asset by using the Patch API command.

Retraining AutoAI models with joined data sources

Important: The AutoAI experiment feature for joining multiple data sources to create a single training data set is deprecated. Support for joining data in an AutoAI experiment will be removed on Dec 7, 2022. After Dec 7, 2022, AutoAI experiments with joined data and deployments of resulting models will no longer run. To join multiple data sources, use a data preparation tool such as Data Refinery or DataStage to join and prepare data, then use the resulting data set for training an AutoAI experiment. Redeploy the resulting model.

Some AutoAI models with joined data sources can no longer be deployed using Watson Machine Learning. This problem is caused by an upgrade of the Spark version from 3.0 to 3.2. If you have an AutoAI model with autoai-obm_3.0 as the software specification, you must retrain the model, by following these steps:

  1. Open the AutoAI experiment in a Watson Studio project.
  2. Click the Reconfigure this experiment icon to retrain the experiment.
  3. Save a model pipeline as a Watson Machine Learning model.
  4. Promote the model to a deployment space and create a new deployment.

Retraining an SPSS Modeler flow

Some models that were built with SPSS Modeler in IBM Watson Studio Cloud before 1 September 2020 can no longer be deployed by using Watson Machine Learning. This problem is caused by an upgrade of the Python version in supported SPSS Modeler runtimes. If you're using one of the following six nodes in your SPSS Modeler flow, you must rebuild and redeploy your models with SPSS Modeler and Watson Machine Learning:

  • XGBoost Tree
  • XGBoost Linear
  • One-Class SVM
  • HDBSCAN
  • KDE Modeling
  • Gaussian Mixture

To retrain your SPSS Modeler flow, follow these steps:

  • If you're using the Watson Studio user interface, open the SPSS Modeler flow in Watson Studio, retrain, and save the model to Watson Machine Learning. After you save the model to the project, you can promote it to a deployment space and create a new deployment.
  • If you're using REST API or Python client, retrain the model by using the latest SPSS Modeler and save the model to the Watson Machine Learning repository with the model type spss-modeler-18.2.

Parent topic: Managing frameworks and software specifications