Skip to main content

Latest PyPI version Documentation Status HuggingFace Spaces Demo YouTube Video arxiv preprint downloads badge

Ferret circular logo with the name to the right

A python package for benchmarking interpretability techniques.

from transformers import AutoModelForSequenceClassification, AutoTokenizer
from ferret import Benchmark

name = "cardiffnlp/twitter-xlm-roberta-base-sentiment"
model = AutoModelForSequenceClassification.from_pretrained(name)
tokenizer = AutoTokenizer.from_pretrained(name)

bench = Benchmark(model, tokenizer)
explanations = bench.explain("You look stunning!", target=1)
evaluations = bench.evaluate_explanations(explanations, target=1)

bench.show_evaluation_table(evaluations)

Features

ferret offers a painless integration with Hugging Face models and naming conventions. If you are already using the transformers library, you immediately get access to our Explanation and Evaluation API.

Supported Post-hoc Explainers

  • Gradient (plain gradients or multiplied by input token embeddings)

  • Integrated Gradinet (plain gradients or multiplied by input token embeddings)

  • SHAP (via Partition SHAP approximation of Shapley values)

  • LIME

Supported Evaluation Metrics

Faithfulness measures:

  • AOPC Comprehensiveness

  • AOPC Sufficiency

  • Kendall’s Tau correlation with Leave-One-Out token removal.

Plausibility measures:

  • Area-Under-Precision-Recall-Curve (soft score)

  • Token F1 (hard score)

  • Token Intersection Over Union (hard score)

Visualization

The Benchmark class exposes easy-to-use table visualization methods (e.g., within Jupyter Notebooks)

bench = Benchmark(model, tokenizer)

# Pretty-print feature attribution scores by all supported explainers
explanations = bench.explain("You look stunning!")
bench.show_table(explanations)

# Pretty-print all the supported evaluation metrics
evaluations = bench.evaluate_explanations(explanations)
bench.show_evaluation_table(evaluations)

Dataset Evaluations

The Benchmark class has a handy method to compute and average our evaluation metrics across multiple samples from a dataset.

import numpy as np
bench = Benchmark(model, tokenizer)

# Compute and average evaluation scores one of the supported dataset
samples = np.arange(20)
hatexdata = bench.load_dataset("hatexplain")
sample_evaluations =  bench.evaluate_samples(hatexdata, samples)

# Pretty-print the results
bench.show_samples_evaluation_table(sample_evaluations)

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Logo and graphical assets made by Luca Attanasio.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ferret-xai-0.3.4.tar.gz (154.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ferret_xai-0.3.4-py2.py3-none-any.whl (51.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ferret-xai-0.3.4.tar.gz.

File metadata

  • Download URL: ferret-xai-0.3.4.tar.gz
  • Upload date:
  • Size: 154.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.11.3 pkginfo/1.8.2 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.8.13

File hashes

Hashes for ferret-xai-0.3.4.tar.gz
Algorithm Hash digest
SHA256 eb78155c7556dc3679a22bb1dcbb89a5a68d04505314d274179afee81c6d792f
MD5 57dfe6009c9a6ce43a9629396dd61ee5
BLAKE2b-256 f665287930759ab0759f553d7bc1d7387522c1699e0435f56d74b64bcc97d987

See more details on using hashes here.

File details

Details for the file ferret_xai-0.3.4-py2.py3-none-any.whl.

File metadata

  • Download URL: ferret_xai-0.3.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 51.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.7.1 importlib_metadata/4.11.3 pkginfo/1.8.2 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/3.8.13

File hashes

Hashes for ferret_xai-0.3.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8ec9c9a2e570dd40f230c94fb604c3ce7f852df018ab03af568fe3c3eed5c6d7
MD5 ddc53abe4d3d790f48ddf05e289a41d3
BLAKE2b-256 539e8579fd23de1480baa95f2adab2a66bd6aa3c703c346395aab185a2d99710

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page