Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graceful failure when forecasting a mable #293

Open
Fuco1 opened this issue Dec 8, 2020 · 2 comments
Open

Graceful failure when forecasting a mable #293

Fuco1 opened this issue Dec 8, 2020 · 2 comments
Labels
enhancement New feature or request

Comments

@Fuco1
Copy link

Fuco1 commented Dec 8, 2020

Currently running forecast on a mable fails if any of the models errors out when being forecasted. Is there a way to either drop it completely or return some "NULL forecast" from such a model?

We run batches of 1000 models which take about 20 minutes to compute and then immediately the whole job fails with an error on just one bad model.

Basically, a feature similar to a bad model train function returning a NULL model instead of killing the entire process.

@mitchelloharawild
Copy link
Member

Interesting, I'm surprised that a forecast would fail if a model was successful.
I think the batch handling of errors can be improved in general, applying the technique consistently to all modelling methods.

@mitchelloharawild mitchelloharawild added the enhancement New feature or request label Dec 10, 2020
@Fuco1
Copy link
Author

Fuco1 commented Dec 10, 2020

I forgot to add that this is not a model from fable but our own we built in-house (thanks for making fabletools so flexible!). So it's quite buggy, but in general if it fails it fails on something like division by 0 or something or other being NaN which 99% of the time means the input time series was deficient and we don't want to bother with it.

Our scope is around 2 million time series forecast for long term planning so if 0.1% fails we don't really care that much, especially if next day the data will be fixed.

In our case it is so much more painful in that the models are training for about 10-30 minutes depending on the selection of series (as I said, we batch them at 1000 per job) but the forecast step only takes about 1 minute, so it's a lot of work wasted.

Other option would be to somehow model + forecast in one step, i.e. instead of doing:

1000x model
1000x forecast

run it like

1000x (model + forecast)

but this would arguably be too much change and currently the pipeline is elegant in that at each step I get something which I can reason about.

Some graceful fail/fallback on a forecast method error would be more than sufficient. Especially when running at scale.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants