brulee 1.0.0
New models for tabular data:
-
Regularization Learning Networks (
brulee_rln()) use a conventional MLP architecture but each weight learns its own adaptive regularization coefficient. -
ResNet (
brulee_resnet()) can fit a multilayer neural network with skip (i.e. residual) connections and batch normalization. -
AutoInt (
brulee_auto_int()) uses residual connections and columnwise attention mechanisms to create embeddings that encourage in-context learning of features. -
Saint (
brulee_saint()) uses column and/or row attention mechanisms. -
Chronos2 (
brulee_chronos()) is a foundational model for forecasting. -
All modeling functions now support GPU acceleration via the
deviceparameter. Users can specifydevice = "cpu",device = "cuda", ordevice = "mps"(Apple Silicon). Whendevice = NULL(default), the package automatically selects CUDA if available, otherwise defaults to CPU. Note: MPS is not auto-selected because it doesn't support float64 dtype required by brulee. See?training_efficiencyfor some related notes.
Breaking Changes
-
Float tensors were changed from 64-bit floats to 32-bit. This is to enable GPU usage on MPS devices.
-
Parameters are initialized on CPU devices and then converted to the chosen device. In some cases, the RNG initialization code is independent of the seed.
-
For classification, the softmax was moved out of every model's forward pass so the loss can use
torch::nnf_cross_entropy()(which applies the log-sum-exp trick internally) instead ofnll_loss(log(softmax(x))). This avoidslog(0)underflow that producedNaNlosses and "numerical overflow" early stopping on overspecifiedbrulee_saint()/brulee_auto_int()fits. Affectsbrulee_mlp(),brulee_logistic_reg(),brulee_multinomial_reg(),brulee_resnet(),brulee_auto_int(), andbrulee_saint(). New fits carryoutput_type = "logits"so the predict path applies softmax; serialized fits from earlier versions of brulee continue to predict correctly.