Evaluating finetuned embeddings
Evaluate finetuned embeddings and compare to original base embeddings.
from zenml import log_model_metadata, step
def evaluate_model(
dataset: DatasetDict, model: SentenceTransformer
) -> Dict[str, float]:
"""Evaluate the given model on the dataset."""
evaluator = get_evaluator(
dataset=dataset,
model=model,
)
return evaluator(model)
@step
def evaluate_base_model(
dataset: DatasetDict,
) -> Annotated[Dict[str, float], "base_model_evaluation_results"]:
"""Evaluate the base model on the given dataset."""
model = SentenceTransformer(
EMBEDDINGS_MODEL_ID_BASELINE,
device="cuda" if torch.cuda.is_available() else "cpu",
)
results = evaluate_model(
dataset=dataset,
model=model,
)
# Convert numpy.float64 values to regular Python floats
# (needed for serialization)
base_model_eval = {
f"dim_{dim}_cosine_ndcg@10": float(
results[f"dim_{dim}_cosine_ndcg@10"]
)
for dim in EMBEDDINGS_MODEL_MATRYOSHKA_DIMS
}
log_model_metadata(
metadata={"base_model_eval": base_model_eval},
)
return resultsVisualizing results

Model Control Plane as unified interface

Next Steps
Last updated
Was this helpful?