Releases: SeldonIO/alibi
Releases · SeldonIO/alibi
v0.9.6
v0.9.6 (2024-04-18)
This is a minor release.
Changed
- Removed explicit dependency on Pydantic (#1002)
Development
- Bump tj-actions/changed-files from 1.1.2 to 41.0.0 in /.github/workflows (#992)
- Update README.md (#996)
- Update numba requirement from !=0.54.0,<0.59.0,>=0.50.0 to >=0.50.0,!=0.54.0,<0.60.0 (#999)
- Update twine requirement from <5.0.0,>3.2.0 to >3.2.0,<6.0.0 (#1001)
- build(ci): Migrate actions to later Node version (#1003)
v0.9.5
v0.9.5 (2024-01-22)
This is a patch release fixing several bugs, updating dependencies and a change of license.
Fixed
- Fix torch version bound in setup.py extras_require (#950)
- Fix DistributedExplainer import errors that arise when ray absent(#951)
- Fix memory limit issue in tox ci jobs (#956)
- Fix E721 linting errors (#958)
- Fix plot_pd function to work with matplotlib 3.8.0 changes (#965)
- Fix typechecking with matplotlib 3.8.0 (#969)
- fix typechecking for matplotlib 3.8.1 (#981)
- Fix typechecking for mypy 1.7.0 (#983)
- Fix test models to output logits and work with default loss functions (#975)
- Fix dtype type in helper method for AnchorText samplers (#980)
Changed
- Alibi License change from Apache to Business Source License 1.1 (#995)
Development
- Update myst-parser requirement upper bound from 2.0 to 3.0 (#931)
- Update pillow requirement upper bound from 10.0 to 11.0 (#939)
- Add notebooks tests for python 3.11 (#948) & (#949)
- Update sphinxcontrib-apidoc requirement upper bound from 0.4.0 to 0.5.0 (#962)
- Update numba requirement upper bound from 0.58.0 to 0.59.0 (#967)
- Update shap requirement upper bound from 0.43.0 to 0.44.0 (#974)
- Update tensorflow requirement upper bound from 2.14.0 to 2.15.0 (#968)
- Update Alibi_Explain_Logo_rgb image with white stroked letters (#979)
- Remove macos from ci (#995)
- Add security scans to CI (#995)
v0.9.4
v0.9.4 (2023-07-07)
This is a patch release to support numpy >= 1.24 and scikit-learn >= 1.3.0, and drop official support for Python 3.7.
Development
v0.9.3
v0.9.3 (2023-06-21)
This is a patch release to officially enable support for Python 3.11.
This is the last release with official support for Python 3.7.
Development
- Test library on Python 3.11 (#932).
- Separate code quality into its own Github Action and only run against the main development version of Python, currently Python 3.10 (#925).
- Check and remove stale
mypyignore commands (#874). - Bump
torchversion to2.x(#893). - Bump
scikit-imageversion to0.21.x(#928). - Bump
numbaversion to0.57.x(#922). - Bump
sphinxversion to7.x(#921).
v0.9.2
v0.9.2 (2023-04-28)
This is a patch release fixing several bugs, updating dependencies and adding some small extensions.
Added
- Allow
IntegratedGradientslayer selection to be specified with a custom callable (#894). - Implement
reset_predictormethod forPartialDependenceexplainer (#897). - Extend
GradientSimilarityexplainer to allow models of any input type (#912).
Fixed
AnchorTextauto-regressive language model sampler updatinginput_idstensor (#895).AnchorTabularlength discrepancy betweenfeatureandnamesfields (#902).AnchorBaseBeamunintended coverage update during the multi-armed bandit run (#919, #914).
Changed
- Maximum supported version of
tensorflowbumped to2.12.x(#896). - Supported version of
pandasbumped to>1.0.0, <3.0.0(#899). - Update notebooks to account for
pandasversion2.xdeprecations (#908, #910). - Maximum supported version of
scikit-imagebumped to0.20.x(#882). - Maximum supported version of
attrsbumped to23.x(#905).
Development
- Migrate
codecovto use Github Actions and don't fail CI on coverage report upload failure due to rate limiting (#901, #913). - Bumpy
mypyversion to>=1.0, <2.0(#886). - Bump
sphinxversion to6.x(#852). - Bump
sphinx-designversion to0.4.1(#904). - Bump
nbsphinxversion to0.9.x(#889). - Bump
myst-parserversion to>=1.0, <2.0(#887). - Bump
twineversion to4.x(#620). - Bump
pre-commitversion to3.xand update the config (#866).
v0.9.1
v0.9.1 (2023-03-13)
This is a patch release fixing several bugs.
Fixed
- Replace deprecated usage of
np.objectin the codebase which was causing errors withnumpy>=1.24(#872, #890). - Fix a bug/typo in
cfrl_base.pyof thetensorflowbackend (#891). - Correctly handle calls to
.reset_predictorforKernelShapandTreeShapexplainers (#880). - Update saving of
KernelShapto avoid saving the internal_explainerobject (#881).
Development
v0.9.0
v0.9.0 (2023-01-11)
Added
- New feature
PermutationImportanceexplainer implementing the permutation feature importance global explanations. Also included is aplot_permutation_importanceutility function for flexible plotting of the resulting feature importance scores (docs, #798). - New feature
PartialDependenceVarianceexplainer implementing partial dependence variance global explanations. Also included is aplot_pd_varianceutility function for flexible plotting of the resulting PD variance plots (docs, #758).
Fixed
GradientSimilarityexplainer now automatically handles sparse tensors in the model by converting the gradient tensors to dense ones before calculating similarity. This used to be a source of bugs when calculating similarity for models with embedding layers for which gradients tensors are sparse by default. Additionally, it now filters any non-trainable parameters and doesn't consider those in the calculation as no gradients exist. A warning is raised if any non-trainable layers or parameters are detected (#829).- Updated the discussion of the interpretation of
ALE. The previous examples and documentation had some misleading claims; these have been removed and reworked with an emphasis on the mostly qualitative interpretation ofALEplots (#838, #846).
Changed
- Deprecated the use of the legacy Boston housing dataset in examples and testing. The new examples now use the California housing dataset (#838, #834).
- Modularized the computation of prototype importances and plotting for
ProtoSelect, allowing greater flexibility to the end user (#826). - Roadmap documentation page removed due to going out of date (#842).
Development
- Tests added for
tensorflowmodels used inCounterfactualRL(#793). - Tests added for
pytorchmodels used inCounterfactualRL(#799). - Tests added for
ALEplotting functionality (#816). - Tests added for
PartialDependenceplotting functionality (#819). - Tests added for
PartialDependenceVarianceplotting functionality (#820). - Tests added for
PermutationImportanceplotting functionality (#824). - Tests addef for
ProtoSelectplotting functionality (#841). - Tests added for the
datasetssubpackage (#814). - Fixed optional dependency installation during CI to make sure dependencies are consistent (#817).
- Synchronize notebook CI workflow with the main CI workflow (#818).
- Version of
pytest-covbumped to4.x(#794). - Version of
pytest-xdistbumped to3.x(#808). - Version of
toxbumped to4.x(#832).
v0.8.0
v0.8.0 (2022-09-26)
Added
- New feature
PartialDependenceandTreePartialDependenceexplainers implementing partial dependence (PD) global explanations. Also included is aplot_pdutility function for flexible plotting of the resulting PD plots (docs, #721). - New
exceptions.NotFittedErrorexception which is raised whenever a compulsory call to afitmethod has not been carried out. Specifically, this is now raised inAnchorTabular.explainwhenAnchorTabular.fithas been skipped (#732). - Various improvements to docs and examples (#695, #701, #698, #703, #717, #711, #750, #784).
Fixed
- Edge case in
AnchorTabularwhere an error is raised during anexplaincall if the instance contains a categorical feature value not seen in the training data (#742).
Changed
- Improved handling of custom
grid_pointsfor theALEexplainer (#731). - Renamed our custom exception classes to remove the verbose
Alibi*prefix and standardised the*Errorsuffix. Concretely:exceptions.AlibiPredictorCallExceptionis nowexceptions.PredictorCallErrorexceptions.AlibiPredictorReturnTypeErroris nowexceptions.PredictorReturnTypeError. Backwards compatibility has been maintained by subclassing the new exception classes by the old ones, but these will likely be removed in a future version (#733).
- Warn users when
TreeShapis used with more than 100 samples in the background dataset which is due to a limitation in the upstreamshappackage (#710). - Minimum version of
scikit-learnbumped to1.0.0mainly due to upcoming deprecations (#776). - Minimum version of
scikit-imagebumped to0.17.2to fix a possible bug when using theslicsegmentation function withAnchorImage(#753). - Maximum supported version of
attrsbumped to22.x(#727). - Maximum supported version of
tensorflowbumped to2.10.x(#745). - Maximum supported version of
raybumped to2.x(#740). - Maximum supported version of
numbabumped to0.56.x(#724). - Maximum supported version of
shapbumped to0.41.x(#702). - Updated
shapexample notebooks to recommend installingmatplotlib==3.5.3due to failure ofshapplotting functions withmatplotlib==3.6.0(#776).
Development
- Extend optional dependency checks to ensure the correct submodules are present (#714).
- Introduce
pytest-custom_exit_codeto let notebook CI pass when no notebooks are selected for tests (#728). - Use UTF-8 encoding when loading
README.mdinsetup.pyto avoid a possible failure of installation for some users (#744). - Updated guidance for class docstrings (#743).
- Reinstate
raytests (#756). - We now exclude test files from test coverage for a more accurate representation of coverage (#751). Note that this has led to a drop in code covered which will be addressed in due course (#760).
- The Python
3.10.xversion on CI has been pinned to3.10.6due to typechecking failures, pending a new release ofmypy(#761). - The
test_changed_notebooksworkflow can now be triggered manually and is run on push/PR for any branch (#762). - Use
codecovflags for more granular reporting of code coverage (#759). - Option to ssh into Github Actions runs for remote debugging of CI pipelines (#770).
- Version of
sphinxbumped to5.xbut capped at<5.1.0to avoid CI failures (#722). - Version of
myst-parserbumped to0.18.x(#693). - Version of
flake8bumped to5.x(#729). - Version of
ipykernelbumped to6.x(#431). - Version of
ipythonbumped to8.x(#572). - Version of
pytestbumped to7.x(#591). - Version of
sphinx-designbumped to0.3.0(#739). - Version of
nbconvertbumped to7.x(#738).
v0.7.0
v0.7.0 (2022-05-18)
This release introduces two new methods, a GradientSimilarity explainer and a ProtoSelect data summarisation algorithm.
Added
- New feature
GradientSimilarityexplainer for explaining predictions of gradient-based (PyTorch and TensorFlow) models by returning the most similar training data points from the point of view of the model (docs). - New feature We have introduced a new subpackage
alibi.prototypeswhich contains theProtoSelectalgorithm for summarising datasets with a representative set of "prototypes" (docs). ALEexplainer now can take a custom grid-point per feature to evaluate theALEon. This can help in certain situations when grid-points defined by quantiles might not be the best choice (docs).- Extended the
IntegratedGradientsmethod target selection to handle explaining any scalar dimension of tensors of any rank (previously only rank-1 and rank-2 were supported). See #635. - Python 3.10 support. Note that
PyTorchat the time of writing doesn't support Python 3.10 on Windows.
Fixed
- Fixed a bug which incorrectly handled multi-dimensional scaling in
CounterfactualProto(#646). - Fixed a bug in the example using
CounterfactualRLTabular(#651).
Changed
tensorflowis now an optional dependency. To use methods that requiretensorflowyou can installalibiusingpip install alibi[tensorflow]which will pull in a supported version. For full instructions for the recommended way of installing optional dependencies please refer to Installation docs.- Updated
sklearnversion bounds toscikit-learn>=0.22.0, <2.0.0. - Updated
tensorflowmaximum allowed version to2.9.x.
Development
- This release introduces a way to manage the absence of optional dependencies. In short, the design is such that if an optional dependency is required for an algorithm but missing, at import time the corresponding public (or private in the case of the optional dependency being required for a subset of the functionality of a private class) algorithm class will be replaced by a
MissingDependencyobject. For full details on developingalibiwith optional dependencies see Contributing: Optional Dependencies. - The CONTRIBUTING.md has been updated with further instructions for managing optional dependencies (see point above) and more conventions around docstrings.
- We have split the
Explainerbase class intoBaseandExplainerto facilitate reusability and better class hierarchy semantics with introducing methods that are not explainers (#649). mypyhas been updated to~=0.900which requires additional development dependencies for type stubs, currently onlytypes-requestshas been necessary to add torequirements/dev.txt.- Fron this release onwards we exclude the directories
doc/andexamples/from the source distribution (by addingprunedirectives inMANIFEST.in). This results in considerably smaller file sizes for the source distribution.
v0.6.5
v0.6.5 (2022-03-18)
This is a patch release to correct a regression in CounterfactualProto introduced in v0.6.3.
Added
- Added a Frequently Asked Questions page to the docs.
Fixed
- Fix a bug introduced in
v0.6.3which preventedCounterfactualProtoworking with categorical features (#612). - Fix an issue with the
LanguageModelSamplerwhere it would sometimes sample punctuation (#585).
Development
- The maximum
tensorflowversion has been bumped from 2.7 to 2.8 (#588).