Neural Monkey Jind rich Helcl, Du san Vari s Institute of Formal - - PowerPoint PPT Presentation

neural monkey
SMART_READER_LITE
LIVE PREVIEW

Neural Monkey Jind rich Helcl, Du san Vari s Institute of Formal - - PowerPoint PPT Presentation

Neural Monkey Jind rich Helcl, Du san Vari s Institute of Formal and Applied Linguistics Faculty of Mathematics and Physics Charles University August 30, 2017 Outline Introduction General Architecture Configuration Files Getting


slide-1
SLIDE 1

Neural Monkey

Jindˇ rich Helcl, Duˇ san Variˇ s

Institute of Formal and Applied Linguistics Faculty of Mathematics and Physics Charles University

August 30, 2017

slide-2
SLIDE 2

Outline

Introduction General Architecture Configuration Files Getting Started Installation Simple Exercise Exercises

slide-3
SLIDE 3

Neural Monkey

  • Toolkit for training neural models for sequence-to-sequence tasks
  • Implemented in Python 3 using Tensorflow 1.3
  • GPU support using CUDA, cuDNN
  • Modular implementation of parts of computational graph → easy composition of

new models

  • Applications in research [Kreutzer et al., 2017, Libovick´

y and Helcl, 2017]

slide-4
SLIDE 4

Model Workflow

Runner1 Runners Runner2 Runner3 Trainer Encoder 1 Model Encoder 2 Encoder N Decoder 1 Decoder 2

...

vocabulary2 series1 series1_prep series2 combined_2_X seriesX ... ... vocabulary1 Input data

  • utput1
  • utput2
  • utput3
  • utput4

Model outputs Postprocess ...

Figure 1: Model workflow.

Each step of the workflow can be modified/expanded by changing a corresponding section in the model configuration file.

slide-5
SLIDE 5

Configuration Files

  • Experiment specification:
  • model definition, training, inference
  • data location, preprocessing, output postprocessing
  • experiment metaparameters, evaluation metrics
  • INI file syntax
  • Sections defining separate objects
  • Key-value pairs separated by ’=’
  • Values can be atomic (int, boolean, string) or composite (list, objects)
  • Sections are interpreted as Python dictionaries
slide-6
SLIDE 6

Configuration Files

; configuration snippet example [main] name="example" tf_manager=<tf_manager>

  • utput="output/dir"

batch_size=16 epochs=2 train_dataset=<train_data> val_dataset=<val_data> runners=[<runner>] evaluation=[("target", <bleu>)] [tf_manager] class=tf_manager.TensorFlowManager num_sessions=1 ; (...)

slide-7
SLIDE 7

Installation

  • 1. (Optional) Set up a Python virtualenv (with Python¿=3.5)
  • 2. $ git clone https://github.com/ufal/neuralmonkey
  • 3. $ cd neuralmonkey
  • 4. $ pip install -r requirements.txt
  • 5. $ ./run tests.sh # (Optional) Check the installation
slide-8
SLIDE 8

Running the Monkey

  • Training: bin/neuralmonkey-train <experiment config>
  • e.g. bin/neuralmonkey-train tests/small.ini
  • Running the model: bin/neuralmonkey-run <experiment config>

<data config>

  • e.g. bin/neuralmonkey-run tests/small.ini tests/test data.ini
  • experiment config can be the same file that was used during traning
  • data config specifies the dataset for the inference and (if on non-default location)

variable files to load the model from

slide-9
SLIDE 9

Exercises: Directory Structure

  • Configuration files: ∼/experiments
  • Experiment data: ∼/data
  • Experiment output: ∼/experiments/<experiment name>
slide-10
SLIDE 10

Exercises: Prepared Config Files

  • Machine Translation: ∼/experiments/translation.ini
  • Text Summarization: ∼/experiments/summarization.ini
slide-11
SLIDE 11

Exercises: Modifying the Experiments

Choose a task from previous slide and try changing the existing config file.

  • 1. Run the task on character-level architecture. Use neuralmonkey.processors.helpers

classes to pre/postprocess the input senten

  • 2. Use two encoders (with a similar architecture) to encode both word representation

and character representation of the sentence.

  • 3. Replace the GreedyRunner by BeamSearchRunner, and Decoder by

BeamSearchDecoder.

  • 4. Use different encoder (see neuralmonkey/encoders for possible substitutes).