Utilities And Parallelism¶
mixle.utils contains support code that is important to real applications:
automatic estimator construction, serialization, optional dependency gates,
metrics, numerical helpers, heterogeneous visualization utilities, checkpoint
helpers, and parallel runtime planning.
This page covers the parts that are most likely to matter when moving from an experiment to a durable workflow.
Serialization¶
mixle.utils.serialization provides safe JSON-compatible serialization for
Mixle objects and selected callables:
register_serializable_class(cls, type_id=None)Register a class with a stable type identifier.
register_serializable_callable(fn, callable_id=None)Register a callable that may appear in serialized payloads.
serializable_class_ids()Inspect registered class identifiers.
ensure_pysp_serialization_registry()Load the built-in distribution registry.
to_serializable(value)/from_serializable(payload)Convert between Python objects and JSON-compatible payloads.
to_json(value, **kwargs)/from_json(text)Strict JSON round trip.
The probability-distribution base class delegates to_dict, from_dict,
to_json, and from_json to this module. Use it for artifacts and model
metadata that should survive process boundaries. Use pickle only when you need
full Python object fidelity and trust the environment.
Optional Dependencies¶
mixle.utils.optional_deps.require centralizes optional dependency errors.
Backends such as Spark, Dask, MPI, Ray, Torch, JAX, and database connectors
should call through optional dependency helpers so users get actionable errors
instead of import failures from deep inside a stack.
Evaluation And Metrics¶
mixle.utils.evaluation and mixle.utils.metrics collect lightweight
evaluation helpers used by model recommendation, task replacement, and tests.
Keep task-specific evaluation in the task layer, but use these utilities for
shared scoring, comparisons, and small metric calculations.
Numerical Helpers¶
mixle.utils.special and mixle.utils.vector contain special functions
and vector utilities that support distributions, inference, and detectors.
Prefer these shared helpers over copying numerical snippets into individual
families, especially when stability or broadcasting behavior matters.
HVIS Utilities¶
mixle.utils.hvis supports heterogeneous visual inspection and embedding
workflows. Important surfaces include:
htsne/humap/dpmsneEmbedding helpers for heterogeneous or model-derived affinities.
model_log_affinityandget_pmatBuild model-based affinities or probability matrices.
model_knnCompute nearest neighbors under model-derived affinities.
- Balanced, local, and Fisher factors
Helpers for constructing useful affinity geometry from model behavior.
Use these tools for inspection and exploratory analysis. For deployment decisions, validate with held-out likelihood, task metrics, calibration, and monitoring rather than relying on a visualization alone.
Encoded-Data Parallelism¶
mixle.utils.parallel exposes the public parallel runtime helpers:
encoded_data(data, estimator=..., model=..., backend=...)Encode data into a backend handle.
is_encoded_data_handle(obj)Check whether an object is a parallel encoded-data handle.
ResourcesDescribe CPU, memory, GPU, worker, and device resources.
plan(data, estimator=..., resources=...)Build a placement and chunking plan.
model_sharding_plan(model, resources=...)Decide how model work should be split across devices or workers.
Backend handles preserve the same high-level sequence-driver contract: they support operations such as log-density sums and sufficient-statistic folding without changing model code.
Resource And Calibration Catalogs¶
The planner module includes calibration records and catalogs for keeping runtime estimates honest:
DeviceSpecDescribes a local CPU, GPU, worker, or accelerator target.
CalibrationRecordStores measured runtime and memory behavior for a model/data/backend shape.
CalibrationCatalogReuses those measurements when planning future runs.
Planning should be treated as an estimate until measured on the target system. Calibration records are how Mixle turns “this should fit” into “this shape has fit before under these resource constraints.”
Model Parallelism¶
mixle.utils.parallel.model_parallel supports splitting model work rather
than only splitting data:
ModelParallelEstimatorWraps an estimator so folds can be computed over model shards.
ModelParallelEncodedDataEncoded data handle aware of model-parallel folding.
model_parallel_foldExecute a fold across model shards.
auto_parallel_estimatorChoose a model-parallel wrapper when the estimated model and data footprint call for it.
Use model parallelism when the model has large independent or nearly independent component work, such as mixture components, ensembles, or structured children that can be reduced safely.
This is also the recommended fallback when Torch DTensor component sharding is
not available. Torch versions before 2.5 expose incomplete DTensor strategies
for the mixture operations Mixle needs, so TorchEngine rejects that path
with guidance instead of letting a low-level distributed tensor error surface.
Decomposition And Backend Modules¶
Parallel support is split into focused modules:
Module |
Purpose |
|---|---|
|
Resource planning, encoded-data registry, local/Spark/Dask/Ray style handles, and placement logic. |
|
Local process workers for encoded data. |
|
Distributed process coordination. |
|
Optional runtime integrations. |
|
Helpers for splitting model structures. |
|
Work-balancing plans and auto-balanced estimators. |
|
Distributed checkpoint helpers. |
|
Encoded-data support for streaming token and neural workloads. |
Application code should normally use the top-level mixle.utils.parallel
helpers rather than importing backend modules directly.
Operational Guidance¶
For durable workflows:
serialize model metadata with stable JSON payloads;
persist the estimator or model specification used for fitting;
record optional dependencies and backend choices;
keep calibration records for large jobs;
run scalar/vectorized parity checks before trusting a new backend;
use scorecards, drift monitors, and provenance records for deployed task models.