Skip to content
Notifications
Clear all

How do I set up baseline comparisons for a retrained model?

6 Posts
6 Users
0 Reactions
3 Views
(@briank)
Estimable Member
Joined: 7 days ago
Posts: 83
Topic starter   [#10102]

I'm currently evaluating Arize AI for monitoring a series of production ML models, and a core requirement is robust performance tracking after model retraining. The scenario is a standard classification model that is periodically retrained on new data. I understand the concept of setting a baseline in Arize, but the practical implementation and granularity of comparison have me seeking clarification from the community.

Specifically, I want to systematically compare the new, retrained model version's performance against the previous version's performance on the same held-out validation dataset. My questions are operational:

1. **Baseline Definition:** Is the intended workflow to log the previous model's predictions on the validation set as a "baseline" model within Arize, or does Arize allow you to simply designate a previous model version (e.g., `prod_model:v1`) as the baseline for a new version (`prod_model:v2`)? The documentation mentions baselines but seems to gloss over the mechanics of establishing a *production predecessor* as the baseline.
2. **Validation Set Logging:** To ensure a fair comparison, I assume I need to log the same validation set inferences through both the old and new model. Does Arize handle the joining of these records for comparison automatically based on a shared key (e.g., a `validation_id`), or is this a responsibility of the data pipeline? I'm concerned about the integrity of the pairwise comparison.
3. **Metric Granularity:** When the baseline is set, can I perform sliced comparisons? For example, if `v2` shows a +2% lift in overall AUC but a -5% drop in precision for a specific key segment (say, users from a particular region), does Arize's dashboard facilitate drilling into these segment-specific deltas directly from the model comparison view?

To illustrate my current logging approach for a single model, here's a simplified Python snippet:

```python
import arize
from arize.utils.types import Environments, ModelTypes, Schema

# Log production model v1 predictions
response = arize.log(
model_id="customer_churn_predictor",
model_version="1.0.0",
model_type=ModelTypes.SCORE_CATEGORICAL,
environment=Environments.PRODUCTION,
prediction_id="validation_obs_12345",
prediction_label="False",
actual_label="False",
actual_score=0.12,
features={
"account_age_days": 245,
"support_tickets": 3
},
schema=Schema(
prediction_label_column_name="prediction_label",
actual_label_column_name="actual_label"
)
)
```

After retraining, I would log for `model_version="2.0.0"` using the same `prediction_id` values. Is the subsequent baseline comparison truly as simple as selecting v1 as the baseline for v2 within the Arize UI, or are there specific tagging or schema requirements I must follow to ensure the platform correctly pairs the inferences for a like-for-like assessment?

I'm particularly interested in any pitfalls related to schema evolution between model versions. If a feature is added or removed in v2, how does that impact the platform's ability to provide a valid comparison on common metrics? Should I be logging only the common feature set for baseline comparison purposes?


p-value < 0.05 or bust


   
Quote
(@crm_hopper_2025)
Estimable Member
Joined: 2 months ago
Posts: 113
 

Great question on the validation set logging. You're right, you need to log the same exact set of inferences through both models for a true apples-to-apples comparison. I've had to do something similar when testing new lead-scoring models against old ones.

Where it gets tricky is making sure your timestamps and prediction IDs align so Arize can actually match the records for that comparison. I'd log the validation set with the old model version first, then immediately log the same batch with the new version, using a shared key. Otherwise, you're just looking at two separate dashboards and trying to eyeball it.

Arize's baseline feature works best when you treat your previous model as a separate, logged model in the system. I don't think you can just point at a past version tag and have it automatically become the baseline. You have to log its outputs as a baseline dataset. Has that been your experience, or did you find a shortcut in their UI?



   
ReplyQuote
(@andrewh)
Estimable Member
Joined: 1 week ago
Posts: 85
 

Exactly, logging them as separate models is the key. I've been doing that for a CRM lead scoring model, but my struggle was making sure the prediction IDs were consistent across both runs. Without that shared key, you can't really use the comparison features properly.

> did you find a shortcut in their UI?

I haven't found one yet. You have to manually log the old version's predictions as a baseline dataset. It's a bit of a chore, but it does give you that clean comparison.



   
ReplyQuote
(@jackr)
Trusted Member
Joined: 6 days ago
Posts: 31
 

Oh, that's a pain point I remember hitting too. On your first question, no, Arize doesn't let you just point a new model version at an old one and magically compare. You absolutely have to log the old model's predictions on that specific validation set as a separate, baseline model. It's more manual, but it does lock in that exact snapshot for comparison.

What I'd add is, once you go through that hassle, the granularity is actually pretty good. You can drill down into performance differences by segment, like "show me where the new model's precision dropped for high-value customers compared to the old baseline." That part works well once the baseline is in place. Just make sure your prediction IDs are rock solid across both logs, like user354 said, or the whole thing falls apart.



   
ReplyQuote
(@chrisw)
Estimable Member
Joined: 1 week ago
Posts: 94
 

Yep, that segment drill-down is the payoff. The pain of setting it up manually is real, but once you have it, you catch regressions you'd miss otherwise.

One gotcha: if your validation set has timestamps, you might need to override them so both logs sit in the same time bucket for comparison. Otherwise, the UI can get weird trying to align them across different time ranges.


metrics not myths


   
ReplyQuote
(@backend_latency_queen)
Reputable Member
Joined: 2 months ago
Posts: 159
 

Good point about the timestamp override. I've seen similar issues in our system where aligning predictions by calendar day introduced artifacts because the baseline batch was logged in the morning and the new model batch in the afternoon.

A trick we use is to log both the old and new model's predictions against the validation set with a single, fixed timestamp (like epoch 0 or the model training date) in a separate 'comparison' space within the logging schema. This completely decouples the comparison from production inference timestamps and avoids any UI time-bucket confusion.

It adds another step to the pipeline, but it's scriptable. You just need to ensure your logging library allows timestamp overrides at the batch level.


sub-100ms or bust


   
ReplyQuote