Portable, layer-wise task performance monitoring for NLP models
34198Authors
nan
Abstract
AbstractThere is a long-standing interest in understanding the internal behavior of neural networks. Deep neural architectures for natural language processing (NLP) are often accompanied by explanations for their effectiveness, from general observations (e.g. RNNs can represent unbounded dependencies in a sequence) to specific arguments about linguistic phenomena (early layers encode lexical information, deeper layers syntactic). The recent ascendancy of DNNs is fueling efforts in the NLP community to explore these claims. Previous work has tended to focus on easily-accessible representations like word or sentence embeddings, with deeper structure requiring more ad hoc methods to extract and examine. In this work, we introduce Vivisect, a toolkit that aims at a general solution for broad and fine-grained monitoring in the major DNN frameworks, with minimal change to research patterns.
Keywords
Full Content
Proceedings of the 2018 EMNLP Workshop BlackboxNLP: Analyzing and Interpreting Neural Networks for NLP, pages 350–352 Brussels, Belgium, November 1, 2018. c⃝2018 Association for Computational Linguistics 350 Portable, layer-wise task performance monitoring for NLP models Thomas Lippincott Johns Hopkins University tom@cs.jhu.edu 1 Introduction There is a long-standing interest in understanding the internal behavior of neural networks (Touret- zky and Pomerleau, 1989; Zhou et al., 2017; Raghu et al., 2017; Alishahi et al., 2017). Deep neural architectures for natural language process- ing (NLP) are often accompanied by explanations for their effectiveness, from general observations (e.g. RNNs can represent unbounded dependen- cies in a sequence) to specific arguments about linguistic phenomena (early layers encode lexi- cal information, deeper layers syntactic). The re- cent ascendancy of DNNs is fueling efforts in the NLP community to explore these claims (Belinkov et al., 2017; Dalvi et al., 2017; Karpathy et al., 2015; Kadar et al., 2016; Kohn, 2015; Qian et al., 2016a). Previous work has tended to focus on easily-accessible representations like word or sen- tence embeddings (Kohn, 2015; Qian et al., 2016b; Adi et al., 2016), with deeper structure requiring more ad hoc methods to extract and examine (Be- linkov and Glass, 2017; Poliak et al., 2018). In this work, we introduce Vivisect, a toolkit that aims at a general solution for broad and fine-grained mon- itoring in the major DNN frameworks, with min- imal change to research patterns. Vivisect is gen- eral enough to serve as a less-polished version of the widely-used TensorBoard tool, but has several priorities that set it apart: • Minimal invasiveness (e.g. no SummaryOps) • Low resource use (only keep final metrics) • Uniform support for major DNN frameworks • Monitor performance on auxiliary tasks The first three points are largely ergonomic, though we hope that feature parity between the major DNN research frameworks will yield an- swers to previously-daunting questions, such as why seemingly-identical implementations of a deep architecture perform differently. The fourth point is the most important: when made aware of task labels from various linguistic modalities, Vivisect will train lightweight linear classifiers and clusterers using each of the model’s internal rep- resentations as features. A lightweight web server aggregates and plots these scores as a function of other variables (e.g. training epoch) to give insight into what linguistic information is captured by dif- ferent parts of the model, and how they evolve over time. Vivisect has evolved out of a focus on neural machine translation models, but is designed with generalization as a fundamental principle. There- fore, it includes mechanisms for deciding what and when calculations are made, and on which parts of a model. There are simple APIs for reg- istering additional metrics and entire DNN frame- works. Vivisect is provided as a code repository and optional prebuilt Docker image. 2 Client usage To use Vivisect with a PyTorch Module, Tensor- flow Session, or MXNet Block, one can minimally add three lines to existing code: from vivisect import probe, flush probe(model, vivisect host, vivisect port) …
Content truncated to 500 words
Labeled Text
AbstractThere is a long-standing interest in understanding the internal behavior of neural networks. Deep neural architectures for natural language processing (NLP) are often accompanied by explanations for their effectiveness, from general observations (e.g. RNNs can represent unbounded dependencies in a sequence) to specific arguments about linguistic phenomena (early layers encode lexical information, deeper layers syntactic). The recent ascendancy of DNNs is fueling efforts in the NLP community to explore these claims. Previous work has tended to focus on easily-accessible representations like word or sentence embeddings, with deeper structure requiring more ad hoc methods to extract and examine. In this work, we introduce Vivisect, a toolkit that aims at a general solution for broad and fine-grained monitoring in the major DNN frameworks, with minimal change to research patterns.
Publication Details
- Paper ID:
- 34198
- Year:
- 2018
- Publication:
- TIPSTER
- Publication Type:
- conf
- DOI:
- nan