Kernels documentation
Locking kernel/layer versions
Locking kernel/layer versions
Projects that use setuptools
can lock the kernel versions that should be
used. First specify the accepted versions in pyproject.toml
and make
sure that kernels
is a build dependency:
[build-system]
requires = ["kernels", "setuptools"]
build-backend = "setuptools.build_meta"
[tool.kernels.dependencies]
"kernels-community/activation" = ">=0.0.1"
Then run kernels lock .
in the project directory. This generates a kernels.lock
file with
the locked revisions. The locked revision will be used when loading a kernel with
get_locked_kernel
:
from kernels import get_locked_kernel
activation = get_locked_kernel("kernels-community/activation")
Note: the lock file is included in the package metadata, so it will only be visible
to kernels
after doing an (editable or regular) installation of your project.
Locked kernel layers
Locking is also supported for kernel layers. To use locked layers, register them
with the LockedLayerRepository
class:
kernel_layer_mapping = {
"SiluAndMul": {
"cuda": LockedLayerRepository(
repo_id="kernels-community/activation",
layer_name="SiluAndMul",
)
}
}
register_kernel_mapping(kernel_layer_mapping)
Pre-downloading locked kernels
Locked kernels can be pre-downloaded by running kernels download .
in your
project directory. This will download the kernels to your local Hugging Face
Hub cache.
The pre-downloaded kernels are used by the get_locked_kernel
function.
get_locked_kernel
will download a kernel when it is not pre-downloaded. If you
want kernel loading to error when a kernel is not pre-downloaded, you can use
the load_kernel
function instead:
from kernels import load_kernel
activation = load_kernel("kernels-community/activation")