Core Entities¶
Entities by Layer¶
artifact-experiment operates by coordinating the interaction of specialized entities across its four architectural layers:
User Specification Layer¶
- ValidationPlan: Provides declarative validation specification through subclass hooks.
class MyValidationPlan(TableComparisonPlan):
@staticmethod
def _get_score_types() -> List[TableComparisonScoreType]:
return [TableComparisonScoreType.MEAN_JS_DISTANCE]
@staticmethod
def _get_plot_types() -> List[TableComparisonPlotType]:
return [TableComparisonPlotType.PDF]
Execution Orchestration Layer¶
- ArtifactFactories: Create callbacks that integrate with
artifact-core's computation engine. - Callbacks: Execute individual validation computations and report results to tracking clients for export.
- CallbackHandlers: Orchestrate callback execution.
Backend Integration Layer¶
- TrackingClients: Coordinate experiment export by orchestrating loggers and run adapters for unified backend interaction.
- ArtifactLoggers: Handle export logic, converting computed results into backend-compatible formats.
- RunAdapters: Normalize backend-specific run objects, providing consistent interfaces across different experiment tracking platforms.
# Unified interface across backends
mlflow_client = MlflowTrackingClient.build(experiment_id="my_experiment")
clearml_client = ClearMLTrackingClient.build(experiment_id="my_project")
neptune_client = NeptuneTrackingClient.build(experiment_id="my_project")
filesystem_client = FilesystemTrackingClient.build(experiment_id="my_experiment")
External Dependencies¶
-
artifact-core: Individual validation computation units derive fromartifact-core. These are wrapped in callbacks and executed through handlers to build comprehensive validation workflows. -
Experiment Tracking Backends: External platforms that provide persistent storage and collaboration capabilities for experiment results.
Supported backends include:
all accessed through the unified RunAdapter interface.
Entity Integration¶
The complete flow demonstrates how entities collaborate to achieve the framework's goals:
- ValidationPlan specifies artifacts of interest through subclass hooks.
- CallbackFactories create callbacks wrapping
artifact-corecomputation. - CallbackHandlers orchestrate callback execution workflows.
- Callbacks perform computations and report to tracking clients,
- TrackingClients coordinate export using loggers and run adapters,
- RunAdapters normalize tracking backend service interfaces,
- ArtifactLoggers handle export to tracking backend services.