Package com.acumenvelocity.ath.service
Class AutoMlTrainingService
- java.lang.Object
-
- com.acumenvelocity.ath.service.AutoMlTrainingService
-
public class AutoMlTrainingService extends Object
Service layer for AutoML training operations with Solr persistence. Handles the complete training lifecycle including:- GCS bucket scanning for training files
- AutoML dataset creation and data import
- Model training orchestration
- Training job status tracking and persistence in Solr
This service manages asynchronous training jobs using a thread pool executor. Each training job progresses through the following states:
SCANNING_BUCKETS → PREPARING_DATASET → IMPORTING_DATA → TRAINING → COMPLETED/FAILED
AutoML Limits:
- Minimum segments: 1,000
- Maximum segments: 15,000,000
- Supported file formats: TMX, TSV, CSV, TXT
- Automatic 80/10/10 train/validation/test split
Persistence: Training job state is persisted in Solr (ath_automl_jobs core) for:
- Durability across service restarts
- Multi-node coordination
- Status queries and reporting
- Since:
- 1.0
- Version:
- 1.0
- Author:
- Acumen Velocity
-
-
Constructor Summary
Constructors Constructor Description AutoMlTrainingService()AutoMlTrainingService(org.apache.solr.client.solrj.SolrClient solrClient, com.google.cloud.storage.Storage storageClient)Constructor with dependency injection for testing.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcancelTraining(UUID trainingJobId)Cancels an in-progress training job.List<ModelInfo>getAllModels()Gets a list of all successfully trained models from Solr.DategetCompletedAt(UUID trainingJobId)Gets the completion timestamp for a training job.StringgetCurrentPhase(UUID trainingJobId)Gets the current phase description of a training job.StringgetDatasetId(UUID trainingJobId)Gets the AutoML dataset ID for a training job.DatasetStatsgetDatasetStats(UUID trainingJobId)Gets the dataset statistics for a training job.StringgetErrorMessage(UUID trainingJobId)Gets the error message for a failed training job.TrainingFailedResponse.ErrorTypeEnumgetErrorType(UUID trainingJobId)Gets the error type for a failed training job.DategetFailedAt(UUID trainingJobId)Gets the failure timestamp for a failed training job.UUIDgetJobOwnerId(UUID trainingJobId)Returns the user ID who owns (initiated) this training job.StringgetModelId(UUID trainingJobId)Gets the AutoML model ID for a completed training job.StringgetModelName(UUID trainingJobId)Gets the model name for a completed training job.intgetProgress(UUID trainingJobId)Gets the progress percentage of a training job.DategetStartedAt(UUID trainingJobId)Gets the start timestamp of a training job.TrainingJobStatusgetTrainingStatus(UUID trainingJobId)Gets the current status of a training job from Solr.voidinitiateTraining(UUID trainingJobId, String modelName, String srcLang, String trgLang, List<URI> gcsBuckets, String projectId, String location, UUID userId)Initiates an asynchronous AutoML training job.booleantrainingJobExists(UUID trainingJobId)Checks if a training job with the given ID exists in Solr.
-
-
-
Constructor Detail
-
AutoMlTrainingService
public AutoMlTrainingService()
-
AutoMlTrainingService
public AutoMlTrainingService(org.apache.solr.client.solrj.SolrClient solrClient, com.google.cloud.storage.Storage storageClient)Constructor with dependency injection for testing.- Parameters:
solrClient- the Solr client to usestorageClient- the GCS storage client to use
-
-
Method Detail
-
trainingJobExists
public boolean trainingJobExists(UUID trainingJobId)
Checks if a training job with the given ID exists in Solr.- Parameters:
trainingJobId- the training job UUID- Returns:
- true if the job exists, false otherwise
-
initiateTraining
public void initiateTraining(UUID trainingJobId, String modelName, String srcLang, String trgLang, List<URI> gcsBuckets, String projectId, String location, UUID userId)
Initiates an asynchronous AutoML training job.This method:
- Creates a training job record in Solr
- Submits the job to the executor service
- Returns immediately (non-blocking)
The training process runs asynchronously and updates the job status in Solr as it progresses.
- Parameters:
trainingJobId- UUID for the training jobmodelName- display name for the modelsrcLang- source language ISO codetrgLang- target language ISO codegcsBuckets- list of GCS bucket URIs to scanprojectId- GCP project IDlocation- GCP region (e.g., "us-central1")userId- UUID of the user initiating training- Throws:
IllegalArgumentException- if segment count violates AutoML limits
-
getTrainingStatus
public TrainingJobStatus getTrainingStatus(UUID trainingJobId)
Gets the current status of a training job from Solr.- Parameters:
trainingJobId- the training job UUID- Returns:
- current status enum, or null if job not found
-
getProgress
public int getProgress(UUID trainingJobId)
Gets the progress percentage of a training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- progress percentage (0-100)
-
getStartedAt
public Date getStartedAt(UUID trainingJobId)
Gets the start timestamp of a training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- start date
-
getCurrentPhase
public String getCurrentPhase(UUID trainingJobId)
Gets the current phase description of a training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- human-readable phase description
-
getModelId
public String getModelId(UUID trainingJobId)
Gets the AutoML model ID for a completed training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- AutoML model resource name
-
getModelName
public String getModelName(UUID trainingJobId)
Gets the model name for a completed training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- model display name
-
getDatasetId
public String getDatasetId(UUID trainingJobId)
Gets the AutoML dataset ID for a training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- AutoML dataset resource name
-
getCompletedAt
public Date getCompletedAt(UUID trainingJobId)
Gets the completion timestamp for a training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- completion date
-
getDatasetStats
public DatasetStats getDatasetStats(UUID trainingJobId)
Gets the dataset statistics for a training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- dataset statistics object
-
getErrorType
public TrainingFailedResponse.ErrorTypeEnum getErrorType(UUID trainingJobId)
Gets the error type for a failed training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- error type enum
-
getErrorMessage
public String getErrorMessage(UUID trainingJobId)
Gets the error message for a failed training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- error message string
-
getFailedAt
public Date getFailedAt(UUID trainingJobId)
Gets the failure timestamp for a failed training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- failure date
-
getJobOwnerId
public UUID getJobOwnerId(UUID trainingJobId)
Returns the user ID who owns (initiated) this training job.- Parameters:
trainingJobId- the training job UUID- Returns:
- user UUID who created the job
-
cancelTraining
public void cancelTraining(UUID trainingJobId)
Cancels an in-progress training job.- Parameters:
trainingJobId- the training job UUID
-
-