silvic

Docs

silvic trains and serves LightGBM-compatible models through its Rust crates and Python package. The ray extra adds dependencies for distributed training with silvic.ray:

pip install silvic
pip install "silvic[ray]"

Training accepts LightGBM parameter names:

import silvic
import silvic.serve

params = {"objective": "lambdarank", "num_leaves": 53, "device_type": "auto"}
train_set = silvic.Dataset(
    X, label=y, group=query_sizes, categorical_feature=[131, 132]
)
booster = silvic.train(params, train_set, num_boost_round=1500)
scores = booster.predict(X_test)
fast_scores = silvic.serve.Predictor(booster).predict(X_test)

Requirements

Package and crates

silvic-python
The silvic Python package: LightGBM’s Python API, scikit-learn estimators, and training across Ray actors.
silvic-core
Parameters, binning, objectives, metrics, leaf-wise trees on integer histograms, LightGBM model text, and the CPU backend.
silvic-gpu
The Metal and CUDA backends, from one kernel source compiled at run time.
silvic-neuron
AWS Neuron training and explicit float32 serving, with NKI kernels and the native runtime.
silvic-net
TCP ring collectives for distributed training.
silvic-serve
Exact scoring of LightGBM models on CPU SIMD lanes or explicitly selected NVIDIA CUDA devices.
silvic-triton
A Triton Inference Server backend serving LightGBM models with silvic-serve, where the FIL backend’s configs serve unchanged but for its name.