视学算法报道

编辑:陈萍、魔王

转载自公众号:机器之心

深度学习模型的训练就像是「黑箱操作」,知道输入是什么、输出是什么,但中间过程就像个黑匣子,这使得研究人员可能花费大量时间找出模型运行不正常的原因。假如有一款可视化的工具,能够帮助研究人员更好地理解模型行为,这应该是件非常棒的事。

近日,Google 研究人员发布了一款语言可解释性工具 (Language Interpretability Tool, LIT),这是一个开源平台,用于可视化和理解自然语言处理模型。

  • 论文地址:https://arxiv.org/pdf/2008.05122.pdf

  • 项目地址:https://github.com/PAIR-code/lit

LIT 重点关注模型行为的核心问题,包括:为什么模型做出这样的预测?什么时候性能不佳?在输入变化可控的情况下会发生什么?LIT 将局部解释、聚合分析和反事实生成集成到一个流线型的、基于浏览器的界面中,以实现快速探索和错误分析。

该研究支持多种自然语言处理任务,包括探索情感分析的反事实、度量共指系统中的性别偏见,以及探索文本生成中的局部行为。

此外 LIT 还支持多种模型,包括分类、seq2seq 和结构化预测模型。并且它具备高度可扩展性,可通过声明式、框架无关的 API 进行扩展。

相关 demo,参见视频:

可以针对新颖的工作流程进行重新配置,并且这些组件是独立的,可移植的,且易于实现。

用户界面

LIT 位于一个单页 web 应用中,由多个工具栏和包含多个独立模块的主体部分组成。如果模块适用于当前模型和数据集,它们将自动显示。例如,显示分类结果的模块仅在模型返回 MulticlassPreds 时显示。

LIT 用户界面

LIT 的布局设计图。

功能

LIT 通过基于浏览器的用户界面(UI)支持各种调试工作流。功能包括:

  • 局部解释:通过模型预测的显著图、注意力和丰富可视化图来执行。

  • 聚合分析:包括自定义度量指标、切片和装箱(slicing and binning),以及嵌入空间的可视化。

  • 反事实生成:通过手动编辑或生成插件进行反事实推理,动态地创建和评估新示例。

  • 并排模式:比较两个或多个模型,或基于一对示例的一个模型。

  • 高度可扩展性:可扩展到新的模型类型,包括分类、回归、span 标注,seq2seq 和语言建模。

  • 框架无关:与 TensorFlow、PyTorch 等兼容。

下面我们来看 LIT 的几个主要模块:

探索数据集:用户可以使用不同的标准跨模块(如数据表和嵌入模块)交互式地探索数据集,从而旋转、缩放和平移 PCA 或 UMAP 投影,以探索集群和全局结构。

比较模型:通过在全局设置控件中加载多个模型,LIT 可以对它们进行比较。然后复制显示每个模型信息的子模块,以便于在两个模型之间进行比较。其他模块(如嵌入模块和度量模块)同时得到更新,以显示所有模型的最新信息。

比较数据点:切换到选择工具栏中的「Compare datapoints」按钮,使 LIT 进入数据点比较模式。在这种模式下,主数据点选择作为参考数据点,并且在后续设置中都会以其为参考点进行比较。参考数据点在数据表中以蓝色边框突出显示。

其他模块的具体细节,参见:https://github.com/PAIR-code/lit/blob/main/docs/user_guide.md

看了上面的介绍,你是不是迫不及待地想要上手试试这个炫酷的可视化工具?下面我们来看它的安装过程和示例。

安装教程

下载软件包并进行 Python 环境配置,代码如下:

git clone https://github.com/PAIR-code/lit.git ~/lit
# Set up Python environmentcd ~/lit
conda env create -f environment.yml
conda activate lit-nlp
conda install cudnn cupti  # optional, for GPU support
conda install -c pytorch pytorch  # optional, for PyTorch# Build the frontendcd ~/lit/lit_nlp/client
yarn && yarn build

安装并配置好环境,就可以体验工具包中自带的示例。

示例

1. 情绪分类示例

代码如下:

cd ~/lit
python -m lit_nlp.examples.quickstart_sst_demo --port=5432

情绪分类示例是基于斯坦福情感树库微调 BERT-tiny 模型,在 GPU 上不到 5 分钟即可完成。训练完成后,它将在开发集上启动 LIT 服务器。

2. 语言建模类示例

要想探索预训练模型(BERT 或 GPT-2)的预测结果,运行以下代码:

cd ~/lit
python -m lit_nlp.examples.pretrained_lm_demo --models=bert-base-uncased \--port=5432

更多的示例请参考目录:../lit_nlp/examples。

此外,该项目还提供了添加自己模型和数据的方法。通过创建定制的 demo.py 启动器,用户可以轻松地用自己的模型运行 LIT,类似于上述示例目录../lit_nlp/examples。

完整的添加过程,参见:https://github.com/PAIR-code/lit/blob/main/docs/python_api.md#adding-models-and-data。

参考链接:

http://www.iibrand.com/news/202008/1719096.html

https://github.com/PAIR-code/lit/blob/main/docs/user_guide.md

https://github.com/PAIR-code/lit/blob/main/docs/python_api.md#adding-models-and-data

https://medium.com/syncedreview/google-introduces-nlp-model-understanding-tool-ab840b456be3

© THE END

转载请联系 机器之心 公众号获得授权

投稿或寻求报道:content@jiqizhixin.com

谷歌开源NLP模型可视化工具LIT,模型训练不再「黑箱」相关推荐

  1. 【开源的串口可视化工具——Serial Studio】

    [开源的串口可视化工具--Serial Studio] 1. Serial Studio前言 2. Serial Studio特点 3. Serial Studio下载安装 4. Serial Stu ...

  2. 开源 | IBM、哈佛共同研发:Seq2Seq模型可视化工具

    作者 | Ben Dickson 译者 | 刘旭坤 编辑 | Jane 出品 | AI科技大本营 近年来随着深度学习和神经网络技术的发展,机器翻译也取得了长足的进步.神经网络结构越来越复杂,但我们始终 ...

  3. AutoML大提速,谷歌开源自动化寻找最优ML模型新平台

    为了帮助研究者自动.高效地开发最佳机器学习模型,谷歌开源了一个不针对特定领域的 AutoML 平台.该平台基于 TensorFlow 构建,非常灵活,既可以找出最适合给定数据集和问题的架构,也能够最小 ...

  4. AutoML大提速,谷歌开源自动化寻找最优ML模型新平台Model Search

    作者|魔王.杜伟 来源|机器之心 为了帮助研究者自动.高效地开发最佳机器学习模型,谷歌开源了一个不针对特定领域的 AutoML 平台.该平台基于 TensorFlow 构建,非常灵活,既可以找出最适合 ...

  5. 模型可视化工具Netron手把手教学

    文章目录 模型网络结构可视化之 netron 工具总结 网页版ONNX模型可视化测试 操作如下 yolov5-s 可视化效果如下 yolov4-tiny.cfg.txt + yolov4-tiny.w ...

  6. 【netron】模型可视化工具netron

    1.简介 在实际的项目中,经常会遇到各种网络模型,需要我们快速去了解网络结构.如果单纯的去看模型文件,脑海中很难直观的浮现网络的架构.这时,就可以使用netron可视化工具,可以清晰的看到每一层的输入 ...

  7. 【Tools】神经网络、深度学习和机器学习模型可视化工具——Netron

    背景 有时候我们写完深度学习模型后,想看看代码实现的模型和我们预期是否一致,但是没有一个好的工具.最近发现有一个软件Netron支持对一部分深度学习模型可视化,源码地址.Netron 支持 ONNX. ...

  8. 创建可微物理引擎Nimble,开源SOTA人体骨骼模型,斯坦福腿疾博士生用AI「助跑」人生...

    来源:机器之心本文约2000字,建议阅读5分钟 身残志坚,斯坦福大学的这位人工智能 + 机器人博士生想用技术克服身体缺陷. 有一位研究者,他身患残疾,出生时便患有退行性神经疾病,该疾病一直攻击着他的外 ...

  9. java实现镜像系统_谷歌开源Java镜像构建工具Jib

    容器的出现让Java开发人员比以往任何时候都更接近"编写一次,到处运行"的工作流程,但要对Java应用程序进行容器化并非易事:你必须编写Dockerfile,以root身份运行Do ...

最新文章

  1. 机器学习类别/标称(categorical)数据处理:目标编码(target encoding)
  2. C++求解最大子序列和问题
  3. java中int转成String位数不足前面补零
  4. 每日一笑 | 程序员的日常,这也太真实了......
  5. 在连续发布版本的情况下 如何做好测试?
  6. 贴图问题,opengl,linux,windows,消除锯齿,摩尔纹,yuv 还是 rgb
  7. CCNP系列之九-----帧中继子接口试验配置
  8. 最新PHP精品在线音乐分享网站源码/UI很好看
  9. 【黑马-SpringCloudAlibaba】学习笔记09-Nacos Config--服务配置
  10. 组合体视图的画图步骤_工程制图 组合体
  11. 数字电路——流水灯(二)_往返流水灯
  12. 手机照片丢失怎么才能恢复
  13. 偶像和粉丝关系该是什么样的?
  14. gnuplot(九)、gnuplot画矢量与颜色设置
  15. 第3章 直流电机的工作原理及特性 学习笔记(一)
  16. Java怎么屏蔽骂人的词_表示嫌弃一个人的词语-高级的含蓄的骂人的话-形容很反感一个人成语...
  17. 前端实现文件下载(a标签实现文件下载 避免直接打开问题)
  18. 云计算技术基础【4】
  19. windows找不到文件常见问题
  20. openstack(pike) dvr 中南北数据流向分析

热门文章

  1. Task05:青少年软件编程(Scratch)等级考试模拟卷(一级)
  2. 刻意练习:LeetCode实战 -- Task28.跳跃游戏
  3. adaptiveThreshold 阈值化的实现
  4. 最新的B站弹幕和评论爬虫,你们要的冰冰来啦!
  5. 从数百个Excel中查找数据,一分钟用Python搞定
  6. 机器学习模型五花八门不知道怎么选?这份指南告诉你
  7. 万字长文详解如何用Python玩转OpenGL | CSDN 博文精选
  8. 糟心!苹果无人车裁员190人,程序员却首当其冲
  9. BAT、讯飞之后,又一国家人工智能开放创新平台诞生了
  10. 京东金融将发布重量级技术与数据产品 招募合作伙伴共拓蓝海市场