Component Overview Diagram
ModelRegistry
Purpose: Canonical source of model lifecycle state. Interface:register(model_meta: ModelMeta) -> ModelIDget(model_id: ModelID) -> ModelMetalist(state: LifecycleState?) -> ModelMeta[]transition(model_id: ModelID, to: LifecycleState) -> void
ModelLoader
Purpose: Import external models into EMEP. Interface:download(uri: URI) -> LocalPathvalidate_checksum(path: LocalPath, sha256: Hash) -> boolimport_to_registry(meta: ModelMeta) -> ModelID
ModelCompatibilityAnalyzer
Purpose: Determine if two models can be merged. Interface:analyze(model_a: ModelID, model_b: ModelID) -> CompatibilityReportreport() -> CompatibilityReport
TensorEngine
Purpose: Load, validate, and transform model tensors. Interface:load(model_id: ModelID) -> TensorDictvalidate_shapes(a: TensorDict, b: TensorDict) -> booldispatch(strategy: MergeStrategy, params: Params) -> TensorDict
MergeEngine
Purpose: Orchestrate the merge of two models into one candidate. Interface:merge(model_a: ModelID, model_b: ModelID, strategy: MergeStrategy) -> Candidatevalidate_output(candidate: Candidate) -> bool
MergeStrategy
Purpose: Abstract interface for merge algorithms. Interface:apply(tensors: TensorDict, params: Params) -> TensorDict
CandidateGenerator
Purpose: Generate merge candidates from parent models and strategy space. Interface:generate(parents: ModelID[], strategy_space: StrategySpace) -> Candidate[]score_feasibility(candidate: Candidate) -> float
EvolutionEngine
Purpose: Drive evolutionary optimization over merge configurations. Interface:init_population(size: int) -> Populationstep() -> Populationbest() -> Genome
EvaluationEngine
Purpose: Classify candidate quality. Interface:evaluate(candidate: Candidate) -> EvaluationReportclassify(report: EvaluationReport) -> CandidateStatus
BenchmarkEngine
Purpose: Execute benchmarks on candidates. Interface:run_split(candidate: Candidate, split: Split) -> BenchmarkResultaggregate(results: BenchmarkResult[]) -> AggregatedResult
FitnessEngine
Purpose: Compute fitness vectors for genomes. Interface:compute(genome: Genome) -> FitnessVectorrank(population: Population) -> RankedPopulation
ExperimentTracker
Purpose: Record all experiment events and artifacts. Interface:create(exp_config: Config) -> ExperimentIDlog_event(event: Event) -> voidcheckpoint() -> void
ArtifactStore
Purpose: Store and retrieve model artifacts, checkpoints, and experiment outputs. Interface:store(artifact: Bytes, meta: ArtifactMeta) -> ArtifactIDretrieve(artifact_id: ArtifactID) -> Bytesverify_signature(artifact_id: ArtifactID) -> bool
DatasetRegistry
Purpose: Manage dataset metadata and splits. Interface:register_dataset(meta: DatasetMeta) -> DatasetIDget_split(dataset_id: DatasetID, split_name: string) -> Split
QuantizationEngine
Purpose: Reduce model precision for deployment. Interface:quantize(model_id: ModelID, config: QuantConfig) -> QuantizedModelvalidate(quantized: QuantizedModel) -> bool
InferenceBackend
Purpose: Load and run inference on models. Interface:load(model_id: ModelID) -> Handleinfer(batch: Batch) -> Outputunload(handle: Handle) -> void
DeploymentManager
Purpose: Deploy models to inference endpoints. Interface:deploy(model_id: ModelID, target: Target) -> Endpointrollback(model_id: ModelID) -> void