1. Introduction
Short-term load forecasting (STLF) aims to predict the load curve for the next several hours to the following day and directly serves unit commitment, economic dispatch, and demand-side management [
1]. With the large-scale integration of distributed energy resources, the load fluctuations observed at the distribution-station level have become increasingly pronounced, and the dependence on meteorological factors has also grown [
2]. These trends create two distinctive challenges for load forecasting: (i) the available samples at a target station area are typically scarce, which is particularly evident after topology renovation or the commissioning of a new substation; and (ii) the joint distribution of weather and load undergoes seasonal drift, so that a model that performs well in one season often loses accuracy after the seasonal switch.
Classical STLF methods can be grouped into three families: statistical models, represented by ARIMA and Holt–Winters [
3]; shallow machine-learning methods such as support vector regression (SVR) [
4] and gradient-boosting decision trees (GBDTs) [
5]; and deep models such as LSTM [
6], Transformer [
7], DLinear [
8], and PatchTST [
9]. Such methods describe time-series regularities through parameterized functions but contain no information outside the training set; their ability to adapt to new scenarios therefore degrades noticeably when samples are scarce or when the distribution shifts.
Large language models (LLMs) introduce a new kind of usable prior for time-series forecasting. The pre-training corpora of LLMs cover vast amounts of physical common sense, calendar regularities, and economic knowledge, which can be transferred to forecasting tasks through prompt engineering [
10], in-context learning [
11], or lightweight fine-tuning such as LoRA [
12]. Existing LLM-based forecasting methods, such as PromptCast [
13], LLMTime [
14], and GPT4TS [
15], generally adopt a text-based input that serializes numerical values into tokens. This design requires the model to infer numerical magnitudes from character tokens, which is computationally expensive and accuracy-limited in long-horizon forecasting. Another family of approaches focuses on the numerical channel: a small projection layer maps the numerical sequence into the embedding space of the LLM, while the LLM body remains frozen. This design substantially reduces the training cost, but using only a single numerical modality forfeits the contextual information carried by the task text.
This paper proposes NTSForecast. A trainable multi-layer perceptron projects each numerical field into the hidden space of a frozen language model, a frozen text encoder embeds the task instruction and the field labels, and the two sets of embeddings are concatenated along the sequence dimension and passed through the frozen decoder, from which a lightweight regression head returns the load. No backbone parameter is updated at any point, layer normalization and positional embeddings included, whereas comparable frozen-backbone methods adapt both. The reference configuration uses the frozen Qwen2.5-0.5B decoder;
Section 6.6 compares it with a randomly initialized backbone, Qwen2.5-1.5B and Llama-3.1-8B [
16] under identical settings, where accuracy runs opposite to backbone size. Multimodal fusion in itself is not the claim: compact multimodal forecasters such as the CNN–LSTM day-ahead price model of [
17] establish that premise without a language model. One qualification belongs with the architecture. The text channel is load-bearing, but on this dataset, it carries a fixed instruction and a set of field labels that are identical in every sample, so its contribution is not semantic.
The main contributions of this paper are summarized as follows:
(1) A “frozen backbone + trainable numerical channel” dual-modal architecture tailored to short-term load forecasting, in which multimodal fusion is completed without updating any parameter of the language model, including its layer-normalization and positional-embedding parameters. A controlled comparison measures what the frozen backbone contributes: on the HEEW dataset removing the frozen backbone raises MAPE by 1.38 percentage points (7.0374 without it versus 5.6621 with it; Welch
t-test on per-seed MAPE,
p = 0.0038). Since the two variants share architecture, trainable-parameter count, hyperparameters and data, that difference belongs to the frozen backbone and not to capacity or tuning. Against the full comparison set the framework attains the lowest error on all three scale-dependent and relative metrics, though the margin over the strongest baseline is small, and its significance depends on how serial dependence is handled (
Section 6.2). The evidence has three limits: one region and one deployment year, a margin over the strongest baseline of a fraction of a percentage point in MAPE, and no gain from larger backbones.
Section 6.2 gives the full ordering,
Section 6.8 the per-origin breakdown, and
Section 7 the boundary of the claim.
(2) A Bayesian-optimization procedure for the full model: with the LLM backbone fixed, we jointly search a five-dimensional hyperparameter space and tune directly against the validation MAPE, only training the learnable modules.
(3) A hyperparameter sensitivity study of the resulting configuration. We apply fANOVA to decompose the validation objective across the searched hyperparameters, and we report the result together with bootstrap confidence intervals over the optimization trials. Those intervals overlap for all five hyperparameters at the trial budget used here, so no importance ranking is claimed; the analysis is reported as a sensitivity study, and
Section 7.3 states what it does and does not establish. We include it because the trial budget required to obtain stable importance estimates is itself a practically relevant finding for work that tunes frozen-backbone forecasters.
The remainder of this paper is organized as follows.
Section 2 describes the data and the feature construction.
Section 3 develops the dual-channel architecture.
Section 4 describes the Bayesian optimization and the fANOVA procedure.
Section 5 defines the evaluation metrics.
Section 6 reports the experimental results.
Section 7 discusses the findings, and
Section 8 concludes the paper.
5. Evaluation Metrics
All five metrics used in this manuscript are defined in Equations (10)–(13), before their first use:
denotes the observed load,
the forecast, and
the number of held-out test samples. MAE (10) is the mean absolute error, in the same unit as the load; MSE and its root RMSE (11) penalize large deviations more heavily than MAE. MAPE (12) is the mean absolute percentage error, and SMAPE (13) its symmetric variant, which is bounded and does not diverge as the observed load approaches zero. MAE and RMSE are scale-dependent and therefore comparable only within a dataset; MAPE and SMAPE are dimensionless and comparable across datasets.
Because several of the differences reported in
Section 6 are small relative to seed-to-seed variation, we test them rather than reading them off the tables. For two forecasts with error series e
1 and e
2, the loss differential and the Diebold–Mariano statistic are given in Equation (14), where
denotes the long-run variance estimated from the autocovariances of the differential. For a one-step horizon we apply the Harvey–Leybourne–Newbold small-sample correction of Equation (15) with h = 1, and refer the corrected statistic to a t-distribution with
degrees of freedom. A negative statistic indicates that the first forecast has the lower squared error. The test is computed per seed against the strongest baseline in the comparison set, and
Table 3 reports both the mean statistic and the number of seeds at which the difference is significant at the 5% level.
Computational environment. All experiments were run on a single NVIDIA RTX A6000 (48 GB) under Ubuntu, with Python 3.10 and PyTorch 2.9.1 (CUDA 12.8 build). The frozen backbone is loaded through the HuggingFace Transformers library. Bayesian optimization uses Optuna with the TPE sampler and a median pruner. The comparison methods use the implementations released by their authors: GPT4TS and PatchTST from the official One-Fits-All repository, Time-LLM through the NeuralForecast library, and TimeMoE, Sundial and Chronos-Bolt from the published model weights; the classical baselines use scikit-learn. Random seeds, library versions and the single hyperparameter configuration used throughout are listed in
Section 6.1 so that the results can be reproduced.
6. Experiments and Results
6.1. Experimental Setup
All baselines and the proposed method use the same 12-dimensional input and the same chronological three-way split at every origin. The backbone of the reference configuration is the frozen Qwen2.5-0.5B model loaded in float16; all of its weights remain frozen, and no LoRA or other adaptation is applied. The backbone-scale study of
Section 6.6 compares this configuration with a randomly initialized backbone and with frozen Qwen2.5-1.5B and Llama-3.1-8B backbones under identical settings; the 0.5B configuration is used as the reference throughout because it is the most accurate of the four on this task and has the smallest seed-to-seed spread. The numerical encoders and the regression head contain 1,841,793 trainable parameters in total. Optimization uses AdamW with the configuration located by the Bayesian optimization of
Section 4, run on the reference configuration and scored on the validation split only: learning rate 3.35 × 10
−3, weight decay 2.05 × 10
−5, batch size two with one gradient-accumulation step, and ReLU activation. This single configuration carries over unchanged to the full model and to every ablation and backbone-scale variant, so no variant receives tuning of its own. Each configuration is trained with five random seeds, and all results are reported as mean ± standard deviation. The validation subset governs early stopping. The held-out test subset is evaluated once, after training is complete.
6.2. Comparison Against Mainstream Baselines
Table 3 reports the four metrics on the held-out test set. All baselines are retrained under the same protocol as the proposed method. The recurrent baselines follow the residential and multi-source load-forecasting settings of [
25,
26]; the institutional-building study of [
27] is the closest published setting to the campus load studied here; and the attention-based baselines follow [
28,
29,
30], with the general sensitivity of recurrent architectures to distribution drift discussed in [
31] and the broader survey of attention models for time series in [
32]. The comparison set includes three classical regressors (ridge regression, random forest and gradient-boosted trees), three sequence baselines (LSTM, GRU and a Transformer encoder), the published linear and patch-based baselines DLinear [
8] and PatchTST [
9], the published implementations of GPT4TS [
15] and Time-LLM [
33], three domain-specific time-series foundation models evaluated zero-shot—TimeMoE-50M [
34], Sundial-128M [
35] and Chronos-Bolt-Base [
36]—and a numerical encoder matched to NTSForecast in architecture and trainable-parameter count but with the backbone removed. NTSForecast attains MAE = 1.4926 ± 0.0113, RMSE = 2.0672 ± 0.0071 and MAPE = 5.6621 ± 0.0448, the lowest value of each in the table. The strongest baseline is Chronos-Bolt-Base applied zero-shot at 5.6772 MAPE, and the Diebold–Mariano test against it favours the proposed framework (DM = −4.17,
p = 0.0002, with the difference significant at the 5% level for five of the five seeds).
Every significance statement in this paper is computed per seed and summarized as mean ± standard deviation across seeds. Seed-averaged ensemble forecasts are not reported, since averaging across seeds yields a predictor that was never trained and flatters every multi-seed method against the single-run baselines. The loss in the Diebold–Mariano test of Equation (14) is the squared error, the same loss the models are trained on (Equation (7)); the ordering of the table is by MAPE. The two need not agree, and here they do not: TimeMoE and Time-LLM reach a lower squared error than Chronos-Bolt-Base while their MAPE is higher, which is why the test can favour a row whose MAPE is worse than the reference. NTSForecast ranks first under both losses (MAE 1.4926 ± 0.0113, RMSE 2.0672 ± 0.0071, MAPE 5.6621 ± 0.0448), so the choice of loss does not decide the comparison that matters here.
A one-step loss differential is serially uncorrelated only when the forecasts are optimal, so the zero-lag bandwidth of Equation (15) is worth checking rather than assuming. Re-estimating the long-run variance with a Bartlett kernel leaves the direction unchanged and the magnitude smaller: against the strongest baseline the statistic is −2.42 at the automatic Newey–West bandwidth (p = 0.0362, significant for 3/5 seeds) and −2.10 at a bandwidth spanning a full daily cycle (p = 0.0660). The margin thus holds under the automatic bandwidth and is marginal under the daily-cycle bandwidth. For that reason, this paper describes the framework as competitive with the strongest baseline rather than superior to it.
Table 3 falls into three bands, and that separation is the main empirical finding of this paper. Methods that must learn the load–weather mapping from the 94 in-window samples without a pretrained prior collapse: the recurrent and attention sequence models exceed 45% MAPE, and the classical regressors reach 13.9314 (random forest) and 16.4762 (ridge). A middle band carries a prior but does not draw on it fully at this sample size: PatchTST (7.6149 ± 0.4920), the parameter-matched MLP (7.0374 ± 0.4624) and GPT4TS (6.4829 ± 0.1327). The leading band brings a large pretrained prior to a scarce training window: the three zero-shot foundation models (5.6772, 5.7749 and 5.9186), Time-LLM (5.8491) and NTSForecast, which is the most accurate of them. The comparison with the zero-shot foundation models is the informative one. TimeMoE is pretrained on roughly 300 billion time points, Sundial on a trillion-point corpus and Chronos-Bolt on billions of observations, and none of them trains on this task. The framework matches and slightly exceeds all three from 94 training samples on a frozen text-pretrained backbone.
GPT4TS, Time-LLM and NTSForecast form one family, in that all three drive a language-model backbone with a numerical series instead of replacing it, and what separates them is how much of the backbone they touch. GPT4TS holds the attention and feed-forward blocks fixed but fine-tunes the affine parameters of every layer normalization together with the positional embeddings [
15]. Time-LLM trains a reprogramming module of 143,958,913 parameters. NTSForecast updates nothing inside the backbone and trains 1,841,793 parameters in the numerical encoder and the head, roughly one eightieth of Time-LLM’s budget. The accuracy each choice buys is visible in the table. The margin over the strongest baseline is 0.02 percentage points of MAPE, significant under the per-seed test, small in absolute terms, and reversed at two of the six origins, which
Section 6.8 identifies.
Figure 5 shows the same comparison graphically.
6.3. Test-Day Prediction Curves
Figure 6 places the actual load curve, the NTSForecast forecast and the forecast of the strongest baseline of
Table 3 on the same time axis for the first week (168 h) of the held-out evaluation period. The framework’s curve is the average of the five seed runs, plotted for readability only; every quantitative comparison in this paper is computed per seed. The visual impression matches
Table 3: the daily cycle dominates, both forecasts track it closely, and the differences that separate the methods statistically are small at the scale of the plot, which is why the comparison is settled by the significance test rather than by inspection.
6.4. Error Distribution Analysis
To compare forecast quality beyond aggregate metrics,
Figure 7 shows the absolute-error distribution of NTSForecast on the held-out test set (7824 samples) from two perspectives. (a) The boxplot gives the median, interquartile range and extreme values of the absolute errors; the median reflects overall accuracy, and the interquartile range reflects consistency. (b) The empirical cumulative distribution function shows the proportion of forecasts falling below a given absolute-error threshold, which is the quantity of operational interest when a tolerance band is specified.
6.5. Training Dynamics
Figure 8 shows the convergence behaviour of NTSForecast. (a) The training loss decreases monotonically, and its slope flattens once the trainable modules have largely converged. (b) The validation error is used for epoch selection and for early stopping; the held-out test error is computed once, after training is complete, and is materially higher than the validation error. We report both because the size of that gap is what determines whether a validation-selected model transfers to an unseen period, and it is not visible when a single split serves both purposes.
6.6. Channel Ablation, Backbone-Scale Study and Subgroup Analysis
Two ablations are run under the protocol of
Section 6.1, with the configuration, data and seeds of the full model held fixed: one removes the text channel, the other the numerical channel. Removing the text channel raises MAPE from 5.6621 ± 0.0448 to 6.8280 ± 0.5833, a loss of 1.17 percentage points that exceeds the seed spread of either variant. Removing the numerical channel gives 6.1083 ± 0.2942, which is not the contribution of that channel: without it the model has no sample-varying input, its predictions on the held-out blocks have zero dispersion, and the error is that of a constant forecast. This run serves only as a sanity check.
Two further controls isolate what the text channel supplies. Scrambling the word order of the task description, at equal token length and with the same vocabulary, gives MAPE 5.6582 ± 0.0390; replacing the description with a learnable prefix of equal length gives 5.7029 ± 0.0327; the full model gives 5.6621 ± 0.0448. Neither control moves the mean beyond the seed-to-seed spread.
The channel therefore carries weight, but not through its linguistic content. This is what the corpus predicts: the task description and the field labels are identical in every sample, so there is no sample-level semantic content to convey, and the channel acts as a stable, high-dimensional conditioning signal on which the numerical encoder is aligned. Operational text that does vary with the sample, such as maintenance and switching orders, outage notices, holiday and production schedules or severe-weather warnings, can travel the same pathway. Demonstrating that requires a corpus in which such records are time-aligned with the load series, which this dataset does not provide. Ablating the text channel degrades accuracy most where forecasting is hardest—the largest significant MAPE increases (bootstrap 95% CIs excluding zero) occur on the bottom load decile (−3.51 pp); the holiday weeks (Thanksgiving and the December break) (−1.80 pp); the extreme pressure deciles (−1.64 pp); the quartile with the largest 24 h temperature swing (−1.63 pp)—indicating that the constant text embedding stabilizes the learned representation precisely on the samples least served by historical extrapolation. The reversal is reported with equal prominence: on the top load decile (+0.79 pp) the text-ablated variant is significantly more accurate, so the effect is a trade-off across operating conditions rather than a uniform gain. All subgroup comparisons are tested with bootstrap confidence intervals, and the subgroups on which the comparison favours the ablated variant are reported above alongside those on which it does not.
Table 4 collects these results.
The same protocol supports a backbone-scale study, in which the frozen backbone is replaced while architecture, data and seeds are held fixed, and the projection widths follow the hidden size of the backbone in use; a randomly initialized backbone of the largest size attains MAPE 5.8742 ± 0.1448, Qwen2.5-0.5B 5.6621 ± 0.0448, Qwen2.5-1.5B 5.6889 ± 0.0254 and Llama-3.1-8B 5.9714 ± 0.2120. This ordering is the opposite of what a capacity argument predicts. The smallest pretrained backbone is the most accurate of the four, accuracy does not improve monotonically with size, and the largest pretrained backbone is the least accurate, indistinguishable from the randomly initialized control of the same size.
The explanation is a sample-size effect. The binding constraint at 94 training samples is the pair of alignment projections between the numerical channel and the backbone, whose width follows the hidden size of the backbone. A larger backbone widens them, and a seven-day record cannot supply enough supervision to fit the wider mapping, so whatever semantic prior a larger model holds stays out of reach. The seed-to-seed spread follows the same pattern, growing from 0.0448 at 0.5B to 0.2120 percentage points at 8B. Qwen2.5-0.5B is therefore adopted as the reference configuration: most accurate on this task, smallest seed-to-seed spread, and cheapest in memory and latency, as
Section 7.1 quantifies.
The ladder deliberately omits one substitution. The domain-specific time-series foundation models of
Table 3 cannot serve as the backbone: they accept numerical series only, and with neither a tokenizer nor a text-embedding layer they cannot instantiate the textual channel on which a numerical–textual framework rests. Replacing the backbone with one of them would give a different, numerical-only model rather than a variant of NTSForecast, so they are evaluated as the zero-shot forecasters they were built to be and appear in
Table 3 among the baselines.
6.7. Bayesian Optimization on the Full Model
This subsection reports the Bayesian optimization of the full model: the LLM backbone remains frozen, and the search covers the five hyperparameters of
Table 2. The budget is 24 TPE trials of six epochs each, scored exclusively on the validation window; the held-out test set plays no role in the search. Consistent with the relabelling of this section as a sensitivity study, the outputs we report are the search trajectory and the stability of the importance estimates, not a ranking.
Figure 9a shows the search trajectory of the 24 trials, scored on the validation subset only, so that the held-out blocks take no part in model selection. The most informative feature of the trajectory is how little it moves: the running best improves from 5.248 to 5.235 percent, a total of 0.013 percentage points over the whole budget, and 21 of the 24 trials fall within a band of 0.5 percentage points. We read this as a property of the model rather than a failure of the search. Accuracy here is not contingent on locating a particular corner of the hyperparameter space: learning rate, weight decay, batch size, accumulation depth and activation can all be varied over the ranges of
Table 2 without materially changing the outcome. For a method intended for feeders that are commissioned with a week of history and no tuning budget, that insensitivity is the operationally relevant property, and it is worth more than the 0.013 percentage points the search itself returns. The search retains a second use, which is the importance analysis reported below: even when the achievable gain is small, the sampled trials support a relative ranking of the hyperparameters and thereby indicate where a practitioner should look first. What the budget does not support is a claim of global near-optimality, and we do not make one. Procedurally, the located configuration is the one stated in
Section 6.1 and used unchanged for the full model and every variant reported, so the search and the results are consistent by construction.
Table 5 lists the configuration located by the search.
6.8. Per-Origin Breakdown Across the Six Rolling Origins
Table 3 pools the six origins into a single year-long series before computing metrics, which is the correct way to obtain seed-level dispersion but hides how much the individual origins differ. This subsection reports that breakdown. The protocol of
Section 6.1 is held fixed, and the origin is the only thing that moves: at each origin the seven-day raw record immediately preceding the validation window supplies the 94 training samples, the following 1302 h form the validation window and the next 1304 h the test window, and the six test windows are consecutive and non-overlapping, so their union is the 9 February 2019 to 31 December 2019 evaluation period of 7824 hourly points used in
Table 3. Every method is retrained from scratch at every origin; nothing is carried across origins except the code. A single hyperparameter configuration, located once by the Bayesian optimization of
Section 4, is applied unchanged at every origin, and no per-origin tuning is performed for any method. The origins differ in difficulty before any model is trained, and the difficulty is measurable in advance: the mean load of the seven-day training record differs from that of the corresponding test window by −6.7% at the most favourable origin and by +35.5% at the least favourable one, so the six origins span the range from a well-matched window to a window that misrepresents the deployment period by more than a third.
Table 6 gives the per-origin figures. Against the strongest baseline of
Table 3 the framework attains the lowest MAPE at four of the six origins, and its across-origin mean of 5.66 ± 0.27 is below that baseline’s 5.68 ± 0.21. At the two remaining origins the two methods lie within 0.18 percentage points of each other, and at Origin 4 they agree to two decimal places. Those origins are listed individually instead of being absorbed into the mean. Against the parameter-matched MLP the ordering is uniform: the complete structure is more accurate at every origin, by between 0.81 and 1.80 percentage points, which is the per-origin form of the controlled comparison in
Section 6.6. The spread across origins carries its own information. The framework’s per-origin MAPE varies by 0.83 percentage points over the six windows, and that variation belongs to the window, not to the method. The per-origin figures of the framework and of the strongest baseline move together almost perfectly (Pearson r = 0.94 across the six origins), so an origin that is hard for one is hard for the other. The level gap of the preceding paragraph does not predict which origins those are: the origin with the largest gap (+35.5%) is one of the framework’s better windows. Window representativeness is thus more than a difference in mean level, and
Section 7.4 carries the residual dependence on it as a limitation.
8. Conclusions
This paper presents NTSForecast, a numerical–textual dual-channel framework for short-term load forecasting that combines a trainable numerical encoder with a strictly frozen pretrained LLM, leaving every backbone parameter untouched. The evaluation stays inside the regime the method is built for. At each of six rolling origins the only history available for training is a seven-day raw record, which yields 94 training samples, and the six non-overlapping test windows together cover 7824 held-out hourly points. Five seeds and Diebold–Mariano testing support four conclusions. First, on accuracy: The framework attains the lowest MAE, RMSE and MAPE of every method compared. The margin over the strongest baseline, Chronos-Bolt-Base applied zero-shot, is 0.02 percentage points of MAPE and holds under the shorter of the two bandwidths examined in
Section 6.2, so the framework is competitive with that baseline rather than superior to it. Second, on the source of that accuracy: On the HEEW dataset removing the frozen backbone raises MAPE by 1.38 percentage points (7.0374 without it versus 5.6621 with it; Welch
t-test on per-seed MAPE,
p = 0.0038). Since the two variants share architecture, trainable-parameter count, hyperparameters and data, that difference belongs to the frozen backbone and not to capacity or tuning. The same direction holds against a randomly initialized backbone of the same size and against LoRA adaptation, which on a seven-day record is markedly worse than leaving the backbone frozen. Third, on backbone scale: Accuracy across the random-initialization/0.5B/1.5B/8B ladder is non-monotonic and runs against a capacity argument, the smallest pretrained backbone being the most accurate and the largest the least. A sub-billion-parameter backbone is therefore adopted as the reference configuration, and the remaining error is attributed to the distribution gap between the seven-day training record and the deployment period. The ladder spans four backbones on one dataset, enough to rule out a monotone capacity effect here but not to establish a general scaling law. Fourth, on the text channel: Ablating it costs 1.17 percentage points, yet destroying the semantic content while keeping the channel in place changes accuracy by less than 0.01 percentage points. The textual side of this dataset is a fixed instruction and a set of field labels rather than sample-level operating information, so semantic content is not what the channel contributes.
Two boundaries come with these results: the margin over the methods that also carry a large pretrained prior is a fraction of a percentage point and does not hold at every origin, and the hyperparameter-importance analysis is a sensitivity study rather than a ranking because the trial budget cannot support stable importance estimates. Future work should establish whether a sample-varying text channel turns the conditional effect seen here into a consistent gain, whether the envelope reproduces on other regions and load profiles, and whether distillation can remove the remaining backbone cost.