My field is primarily audio/vision ML so I don't have any particular domain expertise, but I don't get how you can lump all "time-series" together in one big bucket. My naive understanding is that the way to improve the accuracy is to gain as much joint information as possible. Like:
> Known-future covariates. Some drivers of sensor behaviour are known in advance, such as production schedules, planned shutdowns, weather forecasts. Timestral can condition on them to improve forecast quality, so a scheduled load increase is expected rather than flagged as a surprise.
To me this should be the entire basis of the system, not a condition to improve forecast quality? Like if you're modelling electricity consumption, if all you have is a window of N previous samples, you're going to get completely beaten by a comparatively simple system that knows the time of day, that there's holidays coming up, the weather forecast, etc.
I would also think that these time-series forecasting models would gain from a sophisticated understanding at least the labels of the covariates? A 5M model has no idea what a "bank holiday" is, it just sees an arbitrary class go from 0 to 1, and won't have any useful inductive biases as to what it means or how to link them to other pieces of information.
E.g., wouldn't you predict €/MWh of electricity far more accurately with access to price of natural gas (itself influenced by many geopolitical factors), breakdown in composition of production of each energy source, predictions about roll-out (requiring a sophisticated LLM capable of understanding news and their implications), etc. What's the use in trying to predict it from 2 variables and a narrow window looking back at just 8192 or 32768 samples?
Or perhaps I misunderstand the use-case and this is more for extremely short term movements?
For some kinds of forecasting it doesn't need to be exactly accurate - eg say you are forecasting traffic for how to scale a load balancer, it can be a bit off it will just cost you a little and you can adjust after - a lot of feedback systems dont need full accuracy. You wouldnt use this to forecast whether to buy shares. It basically replaces various traditional curve fitting tools. If you need a really good forecast yes you are going to build a domain model. At least this is my understanding...
> say you are forecasting traffic for how to scale a load balancer, it can be a bit off
Problem is you really don't even need ML for the curve fitting tools. Just ARIMA or Holt Winters is enough and likely faster. Heck, Kubernetes HPA doesn't even implement full PID, just P.
It seems like the main challenge is going to be finding domains where accuracy is important enough to spend inference token money on, but not so important that you'd hire a team to build a custom model. Or maybe that team borrows Timestral weights to fine tune to the domain, but they probably already have a different model customized to the problem?
No affiliation with mistral, but you don't have to purchase tokens for inference. It runs GPUless and is open source, so you're just paying the normal compute cost.
so If I understand correctly classical ML would beat this generic approach, classical ML being feature engineering/selection and curve fitting?
My next question would be that wouldn't it be smarter to take an auto research agent or even just a classic grid search of sorts to find those features and best curve to fit your problem using backtesting to evaluate and iterate.
You're right but, if the time series looks like music then you can apply your music domain knowledge. You don't have to only apply knowledge that's general across every domain, part of the magic of large neural nets is that you can do recognition and prediction at the same time thereby using (statistically) things known from training about how to identify a sequence and then also how to continue it.
Sure adding outside info helps even more, but with enough data it should become unnecessary (or so goes the theory).
But why would you throw away that data at all? These are tiny models compared to domain-specific audio/music/image models, and any capacity spent on recognition is capacity that could have been used for prediction.
Is there a reason you don't throw in something like cross-attention on an embedding of the sequence description/data labels? I've trained numerous generative models for audio and images and it's always the case that the unconditional model performs worse, trains slower, etc. than the conditional one (with the best performance from a hybrid using classifier-free guidance or similar scheme).
Again I don't have experience with the domain of time-series forecasting directly, but I would think there are generalities between autoregressive generative models and time-series forecasting, given that both involve predicting the next sample(s) given N regularly sampled past inputs.
Do you actually find that for some use cases foundation models work better than AutoARIMA or etc? I do a lot of ecom projections and it’s never been the case for me, most of my cases are best with seasonal naive.
Would love to know actual time series foundation model use cases!
Exactly this. It's a zero-shot model that can understand what a time series is with very little a-priori information. I would assume they've trained across a wide diversity of real world signals.
I interviewed for a company which used time series modelling to predict engine failure on ships. Though they didn't call it that, they called it just "AI" and weren't familiar with the time series literature at all. (Neither was I, but I did at least know that the time series literature was a thing.)
They just used a bunch of sensors attached to the engine.
That seems like a scenario where there wouldn't be external sources of information capable of improving your predictions. It also seemed to me like a scenario where good old fashioned statistical methods would outperform LSTMs, which was what they used.
(I didn't get the job - I was offered it, but they rescinded their offer at the last moment, supposedly because their investors had insisted they should hire a web developer instead.)
I'm doing time series forecasting for a biological system. I haven't used these foundation models but my experience is that knowledge of how things are related is baked into what variables you put into the model (which can be more than raw data, you can make any derived product you think would be useful)
but it's up to the model to figure out how they are related (if I knew exactly how they were related I wouldn't be training a forecasting model).
I'm sure someone who actually knows this stuff has a better easy to view it but my impression was that these time series foundation models aren't trained for a specific dataset but more they are trained on a procedure for how to look at datasets and make predictions. It doesn't seem to lump things into a bucket much more than any other model type (which also are just consistent procedures to look at datasets). It's not like you have radically different model types across different fields.
I can see another use for time-series generative models; to create the right shape of noisy data.
To improve the robustness of machine learning models, artificial noise is often introduced into actual training data. Something like Timestral could simplify the process of generating it.
Forecasting is just trying to identify recurring and long-time trends in data, and you're absolutely right that with a narrow observation window it is more difficult to do so, however if you have enough historical data (i.e. several years), these models are remarkably good at picking up on patterns leading up to e.g. bank holidays, the information is contained in the data.
That being said, more information is of course better, assuming it doesn't introduce bias, like focusing on specific events like holidays too much, when the information is already contained in the historical data, without having to make assumptions about what an upcoming holiday means.
The biggest challenge last time I worked with time series forecasting (which is ~5 years ago) was learning long-term shifts in the baseline of the data (e.g., the general use of electricity always goes up, a lot more solar panels and EVs influence the baseline, etc.).
I can only assume (hope) that there has been some substantial progress in that area though.
(Edited the formatting for a nicer reading experience)
100% agree. Time series forecasting is really bad and there are some theorems that say it is *impossible for large class of series to be forecasted by more than a small number of steps..turning into a straight-line, meanwhile if you have say a handful of important day indicators of the same signal that are proxies, you can recover pretty much exact curve. Better to spend compute in my opinion or variable learning approximate Xt -> yt mapping than the X_t-4..n -> X_t mapping...
I appreciate this analysis, but I wonder, setting aside unpredictable current events for the moment, aren’t seasonal and scheduled events also covariates? eg forecasting baseball scores year round?
As a mere software engineer, I found that many human written papers in my field (DSP, ML) aren’t exactly well-written, easily understandable or pleasant to read either, and it’s been the case for at least 15 years. In the past, I would frequently spend an hour or two trying to read a SOTA paper full of convoluted prose and dense pages of equations, only to realise that the algorithm is incredibly simple if visualised properly or even just written down as pseudocode.
Now with LLMs the process is much shorter. They can walk me through the algorithm step by step, translate it to pseudocode, explain equations, and most importantly, I can ask them questions and get clarifications, without worrying about seeming ignorant or exhausting their patience. With a paper, you’re stuck with whatever was written (and often, researchers aren’t good teachers, or intentionally over complicate simple concepts).
> many human written papers in my field (DSP, ML) aren’t exactly well-written, easily understandable or pleasant to read
Yep, my eyes glaze over at the convoluted mathematical explanations for pathfinding in worldspace, but when I see the pseudocode in the appendix it make so much more sense.
That's simply because code is easier to read for programmers than math. For mathematicians it is the other way around. Each profession has developed their own DSLs.
The list of counter examples is some of the most popular and well-received posts in the rationalist community which are actually in favour of tradition having value.
"The Secret of Our Success" literally starts with how European explorers starved to death in environments that other humans thrived in because they lacked the cultural knowledge local hunter gatherers had, includes many other examples of how pure reason can be counter-productive to survival, and ends with a warning that the idea that now it's finally different may not be true.
I can get past the AI slop design myself, but the writing style is absolutely grating, especially the short repetitive phrases.
"Punchy phrase. No X."
"An open engine. Room to make it your own.
"Same scene. Same instant. The same explosion. A different atmosphere."
"A few things to know. The short answers."
Why is it always the same? What awful post-training, or synthetic data training pipeline, or RLHF gone wrong, produced this homogenised, low variety slop style? And it's totally possible for LLMs to write actually decent or at least varied prose and I would think Anthropic (or OpenAI) has the resources to fix the issue, they just choose not to.
Marketing copy wasn't this homogenous prior to LLMs, unless my memory fails me.
It's like it's based on the sample copy of component examples from libraries like Tailwind and Bootstrap. It's as if it hasn't separated those demos from marketing copy people actually used.
I'm surprised you haven't heard about Natten, it's a few years old now:
https://natten.org
It's the equivalent of sliding window attention, a common LLM optimisation. Global attention may be O(n2), but you can avoid that bottleneck by using local attention, even throughout the whole model. This could give you another efficiency boost, or enable you to process larger resolutions with linear instead of quadratic compute scaling.
I wonder how much of that is due to the use of a suboptimal VAE? The same optimisations could be applied to it, and my intuition tells me that your total compute spend would be even more optimal if you retrained the VAE yourself with a better approach (esp. ensuring translation and rotation invariance, + ability to rescale/blur the latents).
You could also have the same advantages of a draft in low resolution latent space, with an easier to learn data distribution that's more robust to perturbation, but instead of 512x512, you could get a 4096x4096 output for the same compute (assuming a 8x VAE).
There's also the advantage of being able to use a high number of diffusion/flow matching steps for the main LDM while the VAE can be single step and much smaller, since it does not have to handle language or significant scene understanding, just perceptual compression. This sounds especially important for a video model where I would be extremely hesitant to train a generative model without relying on interframe compression.
If you think about it there's overlap in what the VAE encodes and main model encodes. Objects at a distance resemble texture and textures zoomed in gain structure. The VAE makes textures more efficiently representable at the cost of reducing the representable space of pixels. So things like tiny text become nonsense scribbles. Working in pixel space, especially with something with recursive or cascaded structure, opens the possibility of using the learnt structure of real writing at a higher level to perfect tiny details that actually cannot be approximated without being obviously wrong.
Time is "just" another dimension. There's temporal continuity between frames, a video VAE would be learning and representing those temporal shifts, but there's nothing to say that e.g. a recursively applied generative model at the pixel level also doesn't learn and represent those things.
As ever, figuring out how to train the thing is the hard bit I expect.
(Handwaving over "textures" here, VAEs encode more like somewhat macro blocks of image whose content is also conditioned on surrounding blocks, rather than tiny patches of patterned pixels.)
(And yes I'm a total imposter layman here, I just see VAEs as seeming to be a crutch that reduce data size - super super helpful of course - but being strictly speaking redundant and inhibiting correct fine detail.)
VAEs don't have to inhibit fine detail, you can trivially increase the channel count like the Flux VAE did, but if you're not careful, that will make training on that latent space much more difficult.
Older models like the SD1.5 work like you mentioned, in large part due to relying on PatchGan which just ensures that individual patches are plausible in isolation. There's nothing preventing a VAE from rendering tiny text with the correct architecture and training. If pushed to an extreme, it could essentially start guessing the letters themselves and write different, but still legible words instead of nonsense scribbles.
This is a totally fair point and definitely worth exploring!
The jumping point for this no-VAE work was three-fold:
1) Our goal here is to get 32x32 token reduction to make video training and inference downstream cheaper. To date, the best open-weight Image VAEs like Flux-2 seem to cap out at 16x16 token reduction (8x8 VAE + 2x2 linear patchification). Others like H3 have pushed to 32x32 reduction but requires them swapping out the small VAE decoder with a 2B parameter decoder. So, this is a foray to get 32x32 compression without compromising quality.
2) We believe that end-to-end trained networks will tend to perform better than modularly trained networks (e.g. VAE + DiT). This hypothesis comes from work like REPA-E, where authors are able to get much better results by backpropagating through the pretrained VAE. The latent space for perception / reconstruction seems to have a different "optimal" configuration than a latent space specifically built for generation. That's why we liked the idea of trained E2E here.
3) There's work with VAEs that show that providing additional modalities (e.g. text captions) can help the VAEs improve as well. That's natural to this construction, so we thought language might actually help with the compression, not hurt. To be honest, this this is the most hypothetical of three ideas; and definitely warrants specific ablations.
Understandable, (V)AEs are their own rabbit hole (I've spent way too much time working with them). I think they deserve more attention, there's been a few good papers recently about how to ensure that the latent space is optimal for generation without sacrificing too much reconstruction detail, but it's no easy task.
But how do you plan on scaling to 1080p24 (or higher resolution) video with end to end pixel space training? For a 10 second long video, that's 1920x more tokens than your 512x512 DiT experiments, and I'd be concerned about scaling linear patchification temporally and spatially past a certain point.
It’s a good question; it’s not something that worries us too much to be honest.
The linear patchificaion is per patch, so if it works on 360p 2 seconds (really short low res) it should adapt naturally (given ROPE3D). The final layers of the DiT start moving us from latent space to pixel space.
Net net the compression is as much as H3 (32x32xTime) so it should be comparable to the best VAEs in terms of expense
While I don't know if AI is conscious, I'm sure it has an internal world. Isn't that what a latent space literally is? LLMs operate in a high-dimensional space that can be analysed and translated to very abstract, high level concepts, behavioural tendencies, even things recognisable as emotions. In fact any neural network beyond a single-layer perceptron has a sort of "internal world", it's a matter of complexity and degree.
I don't see how that's true, you can absolutely do the same thing on the desktop? No one is forcing you to use the OS's default widgets there either, you can use Qt, Flutter, or even paint every single pixel yourself which is a lot less feasible on the web.
The main reason the web won is that you can ship SaaS without the user having to install anything locally, and there's no expectation of it being able to work offline, so you can offload processing to servers resulting in fewer bugs, compatibility issues, and DRM problems.
How does that make sense? The expertise is what allows me to tell the LLM what to do in the first place, inspect its outputs, and iterate, which is still faster than coding by hand.
> Known-future covariates. Some drivers of sensor behaviour are known in advance, such as production schedules, planned shutdowns, weather forecasts. Timestral can condition on them to improve forecast quality, so a scheduled load increase is expected rather than flagged as a surprise.
To me this should be the entire basis of the system, not a condition to improve forecast quality? Like if you're modelling electricity consumption, if all you have is a window of N previous samples, you're going to get completely beaten by a comparatively simple system that knows the time of day, that there's holidays coming up, the weather forecast, etc.
I would also think that these time-series forecasting models would gain from a sophisticated understanding at least the labels of the covariates? A 5M model has no idea what a "bank holiday" is, it just sees an arbitrary class go from 0 to 1, and won't have any useful inductive biases as to what it means or how to link them to other pieces of information.
E.g., wouldn't you predict €/MWh of electricity far more accurately with access to price of natural gas (itself influenced by many geopolitical factors), breakdown in composition of production of each energy source, predictions about roll-out (requiring a sophisticated LLM capable of understanding news and their implications), etc. What's the use in trying to predict it from 2 variables and a narrow window looking back at just 8192 or 32768 samples?
Or perhaps I misunderstand the use-case and this is more for extremely short term movements?
reply