Creating an Algorithm Using a Custom Image
Your locally developed algorithms or algorithms developed using other tools can be uploaded to ModelArts for unified management.
Entries for Creating an Algorithm
You can create an algorithm using a custom image on ModelArts in either of the following ways:
- Entry 1: On the ModelArts console, choose Algorithm Management > My algorithms. Then, create an algorithm and use it in training jobs or publish it to .
- Entry 2: On the ModelArts console, choose Training Management > Training Jobs, and click Create Training Job to create a custom algorithm and submit a training job. For details, see Using a Custom Image to Create a CPU- or GPU-based Training Job.
Parameters for creating an algorithm
Parameter |
Description |
---|---|
Boot Mode |
Select Custom images. This parameter is mandatory. |
Image Path |
URL of an SWR image. This parameter is mandatory.
|
Code Directory |
OBS path for storing the training code. This parameter is optional. Take OBS path obs://obs-bucket/training-test/demo-code as an example. The content in the OBS path will be automatically downloaded to ${MA_JOB_DIR}/demo-code in the training container, and demo-code (customizable) is the last-level directory of the OBS path. |
Boot Command |
Command for booting an image. This parameter is mandatory. The boot command will be automatically executed after the code directory is downloaded.
Semicolons (;) and ampersands (&&) can be used to combine multiple boot commands, but line breaks are not supported. demo-code (customizable) in the boot command is the last-level directory of the OBS path. |
Configuring Pipelines
A preset image-based algorithm obtains data from an OBS bucket or dataset for model training. The training output is stored in an OBS bucket. The input and output parameters in your algorithm code must be parsed to enable data exchange between ModelArts and OBS. For details about how to develop code for training on ModelArts, see Developing a Custom Script.
When you use a preset image to create an algorithm, configure the input and output pipelines.
- Input configurations
Table 2 Input configurations Parameter
Description
Parameter Name
If you use argparse in the algorithm code to parse data_url into the data input, set the data input parameter to data_url when creating the algorithm. Set the name based on the data input parameter in your algorithm code.
The code path parameter must be the same as the data input parameter parsed in your algorithm code. Otherwise, the algorithm code cannot obtain the input data.
Description
Customizable description of the input parameter,
Obtained from
Source of the input parameter. You can select Hyperparameters (default) or Environment variables.
Constraints
Whether data is obtained from a storage path or ModelArts dataset.
If you select the ModelArts dataset as the data source, the following constraints are added:
- Labeling Type: For details, see Creating a Labeling Job.
- Data Format, which can be Default, CarbonData, or both. Default indicates the manifest format.
- Data Segmentation: available only for image classification, object detection, text classification, and sound classification datasets.
Possible values are Segmented dataset, Dataset not segmented, and Unlimited. For details, see Publishing a Data Version.
Yes
Allow multiple data input sources based on the algorithm
Figure 2 Input configurations
- Output configurations
Table 3 Output configurations Parameter
Description
Parameter Name
If you use argparse in the algorithm code to parse train_url into the data output, set the data output parameter to train_url when creating the algorithm. Set the name based on the data output parameter in your algorithm code.
The code path parameter must be the same as the data output parameter parsed in your algorithm code. Otherwise, the algorithm code cannot obtain the output path.
Description
Customizable description of the output parameter,
Obtained from
Source of the output parameter. You can select Hyperparameters (default) or Environment variables.
Yes
Allow multiple data output paths based on the algorithm
Figure 3 Output configurations
Defining Hyperparameters
When you use a preset image to create an algorithm, ModelArts allows you to customize hyperparameters so you can view or modify them anytime. After the hyperparameters are defined, they are displayed in the startup command and transferred to your boot file as CLI parameters.
- Import hyperparameters.
You can click Add hyperparameter to manually add hyperparameters.
Figure 4 Adding hyperparameters
- Edit hyperparameters. For details, see Table 4.
Table 4 Hyperparameters Parameter
Description
Name
Hyperparameter name
Enter 1 to 64 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed.
Type
Type of the hyperparameter, which can be String, Integer, Float, or Boolean
Default
Default value of the hyperparameter, which is used for training jobs by default
Constraints
Click restrain. Then, set the range of the default value or enumerated value in the dialog box displayed.
Required
Whether the parameter is mandatory. The value can be Yes or No. If you select No, you can delete the hyperparameter on the training job creation page when using this algorithm to create a training job. If you select Yes, the hyperparameter cannot be deleted.
Description
Description of the hyperparameter
Only letters, digits, spaces, hyphens (-), underscores (_), commas (,), and periods (.) are allowed.
Adding Training Constraints
You can add training constraints of the algorithm based on your needs.
- Resource Type: The options are CPU and GPU. You can select multiple options.
- Multicard Training: Select Supported or Not supported.
- Distributed Training: Select Supported or Not supported.
Figure 5 Training constraints
Runtime Environment Preview
When creating an algorithm, click the arrow on in the lower right corner of the page to know the path of the code directory, boot file, and input and output data in the training container.
Follow-Up Procedure
After an algorithm is created, use it to create a training job. For details, see Using a Custom Image to Create a CPU- or GPU-based Training Job.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.