Algorithm Configuration Management
Algorithm Configuration is the core extension mechanism of MLOps. Administrators can dynamically maintain the list of available algorithms for each scenario, inference/training images, and hyperparameter forms without modifying code or restarting the service, allowing algorithms to go live, be adjusted, or be taken offline on demand.
Role of Algorithm Configuration
Each algorithm configuration record contains the following key fields:
| Field | Description |
|---|---|
algorithm_type | The scenario to which the algorithm belongs, such as anomaly_detection, timeseries_predict, etc. |
name | Algorithm unique identifier, such as ECOD, Prophet; cannot be duplicated within the same scenario |
display_name | Algorithm name displayed on the frontend |
scenario_description | Description of the scenario the algorithm applies to, shown in the algorithm selection guide interface |
image | Docker image address shared by training and inference |
form_config | JSON configuration for the frontend dynamic form, defining the hyperparameter input interface |
is_active | Whether enabled; when disabled, it no longer appears in the algorithm selection list |
The training image for training tasks and the inference image for inference services are both dynamically read from the algorithm configuration. If no corresponding configuration is found in the database, the system falls back to the default built-in image for each scenario.
Built-in Algorithm Presets
The system provides 7 built-in algorithm presets that can be initialized in one go:
cd server
uv run python manage.py init_algorithm_config
Anomaly Detection Scenario (anomaly_detection)
| Algorithm | Description |
|---|---|
| ECOD | Suitable for operational metrics monitoring, detecting anomalous points in multi-dimensional data, such as sudden spikes in system resource usage or abnormal business traffic fluctuations |
| EWMA | Suitable for progressive univariate time series anomaly detection, such as CPU/memory continuously climbing or interface latency gradually degrading from baseline |
| PELT | Suitable for time series changepoint/state transition detection, identifying sudden performance baseline changes caused by releases, configuration changes, or traffic switches |
Time Series Prediction Scenario (timeseries_predict)
| Algorithm | Description |
|---|---|
| Prophet | Facebook open-source time series prediction model, suitable for medium to long-term business metric forecasting with trend and seasonality |
Log Clustering Scenario (log_clustering)
| Algorithm | Description |
|---|---|
| Spell | Online log template mining algorithm, suitable for real-time clustering and template extraction from high-frequency streaming logs |
Text Classification Scenario (classification)
| Algorithm | Description |
|---|---|
| XGBoost | Ensemble learning (Gradient Boosting Tree), suitable for small to medium-sized text classification tasks with complete feature engineering |
| GradientBoosting | Scikit-learn gradient boosting classifier with stable training, suitable for small-scale precisely labeled corpora |
| RandomForest | Random forest with fast training and overfitting resistance, suitable for exploratory classification tasks in early-stage data exploration |
Image Classification Scenario (image_classification)
| Algorithm | Description |
|---|---|
| YOLOClassification | Image classification model based on YOLO architecture, using ImageFolder format for training data (one subdirectory per class) |
Object Detection Scenario (object_detection)
| Algorithm | Description |
|---|---|
| YOLODetection | Object detection model based on YOLO architecture, using YOLO annotation format for training data (.txt annotation files) |
Enabling and Disabling Algorithms
Disable Algorithm: Enter the "Algorithm Configuration" list for the corresponding scenario and turn off "Enable" for the specified algorithm. Before disabling, the system checks whether there are training tasks currently using this algorithm; if there are, it rejects the operation and you must wait for the task to complete or delete it before disabling.
Enable Algorithm: Simply turn "Enable" back on, and the algorithm reappears in the algorithm selection list for training tasks.
Delete Algorithm: Before deletion, the system likewise validates whether training tasks are using it. If so, deletion is rejected.
Adding Custom Algorithms
To integrate a custom algorithm, the following conditions must be met:
- Build Inference Service Image: The inference service in the image must listen on port
3000, acceptPOST /predictrequests with request body format{"data": [...]}, and return response format{"success": true, "data": [...], "error": null}. - Create Algorithm Configuration in Admin Interface: Fill in the algorithm identifier, image address, and dynamic form configuration.
- Fill in
form_config: Write JSON configuration for the frontend dynamic form according to the AlgorithmConfig type definition. The system renders the corresponding hyperparameter form when creating new training tasks.
Note: The platform does not bind to any fixed training framework. The training entry point and inference protocol inside the image must be guaranteed by the image provider to be compatible with platform specifications.