ML models
Model training
ODF 2 differs from ODF when it comes to where AutoML SDK is used to train a model. Previously, ODF had two Archetypes that included ML modules for IE and Classification models.
In ODF 2, such modules do not exist. Instead, you must use separate ML Archetypes to generate an AutoML project with a typical model implementation example and training and testing executables. New ML Archetypes also include Bundle building and single-command deployment to Control Tower. For more details, refer to the guides.
Model execution
Starting from IA Cloud Enterprise v10.1.6, Control Tower introduces the new Execute AutoML Model: Bridge that significantly simplifies ML execution. It takes some input parameters and returns ML output in the model_result or model_error columns.
You can integrate ML execution into the ODF 2-based Business Process using two Tasks to pass documents to and from the Bridge step: MlBridgeInputTask and MlBridgeOutputTask.
Construct Business Process
To find Execute AutoML Model: Bridge, go to the Workflow editor > the Bot panel.

Place your
MlBridgeInputTaskimplementation before Execute AutoML Model: Bridge, and MlBridgeOutputTask implementation after it.
Implement tasks
The MlBridgeInputTask implementation passes a UUID of any entity returned by the getEntity() method to the Execute AutoML Model: Bridge step. You can override the default implementation of getModelId() to get an ID of the model to be executed not from the entity itself but from another source. Override the goForwardOnFailure() method for the Execute AutoML Model: Bridge step to ignore errors.
public interface MlBridgeInputTask <T extends BusinessEntity> extends OdfSingleResultTask {
@Override
default Class<? extends OdfSingleResultTaskRunner<?>> getRunnerClass() {
return MlBridgeInputRunner.class;
}
T getEntity(UUID currentTransaction);
default String getModelId(T entity) {
return entity.getExternalId();
}
default boolean goForwardOnFailure() {
return false;
}
}
MlBridgeOutputTask has two methods that deal with successful and unsuccessful model results. In both cases, the result is a string as the ML output is not standardized by now. Therefore, you should parse it on a case-by-case basis.
Implement getBusinessEntityRepository() for the task runner to load entities correctly.
public interface MlBridgeOutputTask<T extends BusinessEntity> extends OdfSingleResultTask {
@Override
default Class<? extends OdfSingleResultTaskRunner<?>> getRunnerClass() {
return MlBridgeOutputRunner.class;
}
TransactionalEntityRepository<T> getBusinessEntityRepository();
void processModelResult(String modelResult, String processingTime, String correlationId, T entity);
void processModelError(String modelError, String processingTime, String correlationId, T entity);
}
tip
For more details on AutoML SDK, refer to End-to-end AutoML SDK walkthrough.
The AutoML menu allows you to train and manage models, maintain model pipelines, run experiments, and create and manage datasets without coding. For details, check the Manage AutoML models in Control Tower section.