How it works
From raw data to golden data
Goldener is a modality-agnostic library to orchestrate data during the full lifecycle of AI pipelines. All its features rely on the same principle: the semantics of the data is described by embeddings extracted from pre-trained/foundational models, and data-centric algorithms are applied on these embeddings.
The features are built as a pipeline of steps. The data processing steps (description, vectorization, clustering, selection) store their results locally so that they can be stopped and restarted without recomputing what is already done:
goldener.describe: compute the embeddings of the samples of a dataset.goldener.vectorize: turn the embeddings into 2D vectors (one or multiple vectors per sample).goldener.reduce: reduce the dimension of the vectors.goldener.clusterize: group the vectors in clusters.goldener.select: select the most representative subset of samples.goldener.split: split a dataset in multiple sets (train, validation, test, ...).goldener.organize: balance the batches with the clusters of the data during training.
Most of the main classes are re-exported at the root of the package, e.g. from goldener import GoldSplitter.
Modules
Explore the API
clusterize.py
Clustering of vectorized samples.
describe.py
Description of the samples of a dataset with embeddings.
distance.py
Distance functions between vectors used by the selection algorithms.
do.py
embed.py
Extraction of embeddings from models.
organize.py
Organization of the data during training.
pxt_utils.py
Utilities to store and read the results of Goldener.
reduce.py
Dimensionality reduction of vectors.
select.py
Selection of the most representative subset of samples.
split.py
Splitting of a dataset in multiple sets.
torch_utils.py
Utilities to work with PyTorch tensors and datasets.
utils.py
Generic utilities shared by the Goldener features.
vectorize.py
Vectorization of the embeddings into 2D tensors of vectors.
vision/
Tools specific to vision data and models.