Expand description
LightGBM-compatible gradient boosting: binning, leaf-wise tree growth on quantized integer histograms, and
LightGBM 3.3.5 model.txt output.
boosting::train grows trees through a Backend (this crate’s CpuBackend, or the Metal and CUDA
backends of silvic-gpu) and reduces histograms across ranks through a Collective (LocalCollective for
one process, silvic-net’s TCP ring across many). Quantized histograms are integer sums, so training is
bit-reproducible and a model trained on N ranks equals the one trained on all rows in one process.
Re-exports§
pub use backend::Backend;pub use backend::CpuBackend;pub use boosting::train;pub use boosting::train_from;pub use boosting::IterationReport;pub use collective::Collective;pub use collective::LocalCollective;pub use config::Params;pub use data::BinnedDataset;pub use model::Model;
Modules§
- backend
- The device operations the learner drives. A backend holds the training set (dataset 0) and the validation sets (1..) in its own memory, their f32 scores, the training gradients and a partition array of training row indices in which every leaf of the tree being grown is a contiguous range.
- boosting
- The boosting loop (LightGBM 3.3.5
GBDT::Train/GBDT::TrainOneIter,src/boosting/gbdt.cpp). - collective
- The collectives distributed training runs on, in the shape of LightGBM’s
Network(allreduce, allgather) but over a transport the caller supplies. - config
- Training parameters under LightGBM 3.3.5’s names and aliases (
config.h), parsed from a JSON object the way LightGBM’s Python package passes them: numbers or numeric strings, booleans or"true"/"false", lists as JSON arrays or comma-separated strings. - data
- Binned training data: every feature value replaced by a bin index (a byte), features packed into groups whose bins fit one GPU threadgroup’s shared histogram.
- metric
- Evaluation metrics, as LightGBM 3.3.5 names and computes them:
NDCGMetric(ndcg@k),RegressionMetric<L2Metric>(l2),RegressionMetric<RMSEMetric>(rmse),BinaryMetric<BinaryLoglossMetric>(binary_logloss) andAUCMetric(auc). - model
- A trained model in LightGBM 3.3.5’s text format (
GBDT::SaveModelToString), which LightGBM 3.3.5 and 4.x load and lleaves compiles, and the predictor over it. - objective
- Gradients of the training objectives on the host: the CPU backend’s implementation and the reference the GPU kernels are tested against.
- quantize
- Gradient quantization (LightGBM 4’s
GradientDiscretizer,use_quantized_grad) and the counter-based random numbers behind stochastic rounding and bagging. - tree
- A regression tree in LightGBM 3.3.5’s own array layout (
include/LightGBM/tree.h), soTree::ToStringoutput is a field-by-field dump.
Enums§
- Silvic
Error - Every failure silvic reports. Cheap to clone: a collective failure on one rank is surfaced on every call after it.