The workflow for developing a deep learning model using MEAD is as follows:
- Map the problem to one of the existing tasks using a
<task, dataset>
tuple, eg., NER on CoNLL 2003 dataset is a<tagger, conll-iobes>
. - Use the existing implementations or extend the base model class to create a new architecture.
- Define a configuration file in MEAD and run an experiment.
- Use
xpctl
to compare the result with the previous experiments, commit the results to the metrics database and the model files to a persistent storage if desired.
Additionally, the base models provided by the library can be exported from saved checkpoints directly into TensorFlow Serving or ONNX for deployment in a production environment.
-
8 mile: An lightweight implementation of NLP layers and embeddings built on Keras and PyTorch. This is used by
mead-baseline
to create reusable models that are nearly identical in PyTorch and TensorFlow. It also provides core utilities and metrics APIs used bymead-baseline
-
baseline: An object-oriented Python package for rapid development of deep learning algorithms. The library provides extensible base classes for common components in a deep learning architecture (data loading, model development, training, evaluation, and export) in TensorFlow and PyTorch. In addition, it provides strong, deep learning baselines for four fundamental NLP tasks -- Classification, Sequence Tagging, Seq-to-Seq Encoder-Decoders and Language Modeling. Many NLP problems can be seen as variants of these tasks. For example, Part of Speech (POS) Tagging, Named Entity Recognition (NER) and Slot-filling are all Sequence Tagging tasks, Neural Machine Translation (NMT) is typically modeled as an Encoder-Decoder task. An end-user can easily implement a new model and delegate the rest to the library.
-
mead: Software for fast modeling, experimentation and development built on top of baseline core modules. It contains driver programs to run experiments from JSON or YAML configuration files to completely control the reader, trainer, model, and hyper-parameters.
-
xpctl: A command-line interface to track experimental results and provide access to a global leaderboard. After running an experiment through mead, the results and the logs are committed to a database. Several commands are provided to show the best experimental results under various constraints.
-
hpctl: A library for sampling configurations and training models to help find good hyper parameters.