Project Icon

ferret

Transformer模型可解释性技术的集成框架

ferret是一个Python库,集成了Transformer模型的可解释性技术。它提供四种基于Token级特征归因的解释方法和六种评估协议,与transformers库无缝对接。通过简洁的API、可视化工具和数据集评估功能,ferret帮助用户深入理解和评估文本模型的决策过程。

Ferret圆形logo,右侧为名称

最新PyPI版本 文档状态 HuggingFace Spaces演示 YouTube视频 arxiv预印本 下载量徽章

ferret是一个Python库,用于简化Transformers模型的可解释性技术的使用和基准测试。

ferret旨在与🤗 transformers模型无缝集成,目前仅支持文本模型。 我们提供:

  • 🔍 四种基于Token级特征归因的成熟可解释性技术。使用它们可以快速找到对模型输出最相关的词。
  • ⚖️ 六种忠实度和合理性评估协议。针对这些测试对任何token级解释进行基准测试,以指导您选择最可靠的解释器。

ACL Anthology Bibkey:

attanasio-etal-2023-ferret

📝 示例

全面教程(测试所有解释器、评估指标和XAI数据集接口):Colab

文本分类

  • 使用多语言XLM RoBERTa进行意图检测:Colab

入门

安装

对于默认安装(不包括语音XAI功能的依赖项),请运行:

pip install -U ferret-xai

我们的主要依赖项是🤗 transformersdatasets

如果需要语音XAI功能,请运行:

pip install -U ferret-xai[speech]

目前,语音XAI相关的依赖项是唯一的额外依赖项,所以安装ferret-xai[speech]ferret-xai[all]是等效的。

重要提示 我们的一些依赖项可能使用scikit-learn的包名,这会导致ferret安装失败。 如果您的pip安装命令失败,请尝试:

SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True pip install -U ferret-xai

这希望只是一个临时情况!

解释和基准测试

以下代码提供了一个最小示例,用于运行ferret支持的所有特征归因解释器,并对它们进行忠实度指标的基准测试。

我们从一个常见的文本分类流程开始

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)

使用ferret非常简单:

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

bench.show_evaluation_table(evaluations)

请确保在Jupyter Notebook/Colab中运行代码:上面的单元格将生成一个格式良好的表格,用于分析显著性图。

特性

ferret提供与Hugging Face模型和命名约定的无痛集成。如果您已经在使用transformers库,您可以立即访问我们的解释和评估API

后验解释器

评估指标

忠实度度量:

合理性度量:

详情请参阅我们的论文

可视化

Benchmark类提供了易于使用的表格可视化方法(例如,在Jupyter Notebooks中)

bench = Benchmark(model, tokenizer)

# 漂亮地打印所有支持的解释器的特征归因分数
explanations = bench.explain("You look stunning!")
bench.show_table(explanations)

打印所有支持的评估指标

evaluations = bench.evaluate_explanations(explanations) bench.show_evaluation_table(evaluations)


## 数据集评估

`Benchmark`类有一个方便的方法来计算和平均多个数据集样本的评估指标。

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

# 计算并平均一个支持的数据集的评估分数
samples = np.arange(20)
hatexdata = bench.load_dataset("hatexplain")
sample_evaluations =  bench.evaluate_samples(hatexdata, samples)

# 美观打印结果
bench.show_samples_evaluation_table(sample_evaluations)

计划开发

更多详情请参见更新日志文件

  • ✅ 支持GPU加速推理 (v0.4.0)
  • ✅ 内部方法近似步骤的批量推理(如LIME或SHAP)(v0.4.0)
  • ⚙️ 简化的任务API,支持NLI、零样本文本分类、语言建模(分支
  • ⚙️ 多样本解释生成和评估
  • ⚙️ 通过inseq支持序列到序列和自回归生成的解释器
  • ⚙️ 新评估指标:敏感性、稳定性(Yin等人
  • ⚙️ 新评估指标:阈值性能曲线下面积(AUC-TP)(Atanasova等人
  • ⚙️ 新解释器:采样和遮蔽(SOC)(Jin等人,2020
  • ⚙️ 新解释器:离散化积分梯度(DIG)(Sanyal和Ren,2021
  • ⚙️ 新解释器:值置零(Mohebbi等人,2023
  • ⚙️ 支持嵌入隐藏维度的其他聚合形式

作者

致谢

本包是使用Cookiecutter和audreyr/cookiecutter-pypackage项目模板创建的。

标志和图形资产由Luca Attanasio制作。

如果您在工作中使用ferret,请考虑引用我们!

@inproceedings{attanasio-etal-2023-ferret,
    title = "ferret: a Framework for Benchmarking Explainers on Transformers",
    author = "Attanasio, Giuseppe and Pastor, Eliana and Di Bonaventura, Chiara and Nozza, Debora",
    booktitle = "Proceedings of the 17th Conference of the European Chapter of the Association for Computational Linguistics: System Demonstrations",
    month = may,
    year = "2023",
    publisher = "Association for Computational Linguistics",
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号