Saving and loading
Alibi includes experimental support for saving and loading a subset of explainers to disk using the dill
module.
To save an explainer, simply call the save
method and provide a path to a directory (a new one will be created if it doesn’t exist):
explainer.save('path')
Alibi doesn’t save the model/prediction function that is passed into the explainer so when loading the explainer you will need to provide it again:
from alibi.saving import load_explainer
explainer = load_explainer('path', predictor=predictor)
Details and limitations
Every explainer will save the following artifacts as a minimum:
path/meta.dill
path/explainer.dill
Here meta.dill
is the metadata of the explainer (including the Alibi version used to create it) and explainer.dill
is the serialized explainer. Some explainers may save more artifacts, e.g. AnchorText
additionally saves path/nlp
which is the spacy
model used to initialize the explainer using the native spacy
saving functionality (pickle
based) whilst AnchorImage
also saves the custom Python segmentation function under path/segmentation_fn.dill
.
When loading a saved explainer, a warning will be issued if the runtime Alibi version is different from the version used to save the explainer. It is highly recommended to use the same Alibi, Python and dependency versions as were used to save the explainer to avoid potential bugs and incompatibilities.