Seq2Seq Agent

The Seq2Seq agent takes an input sequence and produces an output sequence.

The agent supports encoding and decoding via a variety of RNN flavors, including LSTMs and GRUs. The agent supports encoding and decoding via a variety of RNN flavors, including LSTMs and GRUs. It also supports numerous decoding strategies, like beam search and nucleus decoding.

The following papers outline more information regarding this model:

Seq2seqAgent Options

optional arguments

Argument

Description

--gpu-beam-blocking

Set to use CUDA kernel for beam search ngram blocking

Default: False.

--verbose-topk

Return the topk logits in the act message, if verbose mode is set.

Default: -1.

Seq2Seq Arguments

Argument

Description

--hiddensize, --hs

Size of the hidden layers

Default: 128.

--embeddingsize, --esz

Size of the token embeddings

Default: 128.

--numlayers, --nl

Number of hidden layers

Default: 2.

--dropout, --dr

Dropout rate

Default: 0.1.

--bidirectional, --bi

Whether to encode the context with a bidirectional rnn

Default: False.

--attention, --att

Choices: none, concat, general, local. If set local, also set attention-length. (see arxiv.org/abs/1508.04025)

Choices: none, concat, general, dot, local.

Default: none.

--attention-length, --attl

Length of local attention.

Default: 48.

--attention-time

Whether to apply attention before or after decoding.

Choices: pre, post.

Default: post.

--rnn-class, --rnn

Choose between different types of RNNs.

Choices: rnn, gru, lstm.

Default: lstm.

--decoder, --dec

Choose between different decoder modules. Default “same” uses same class as encoder, while “shared” also uses the same weights. Note that shared disabled some encoder options–in particular, bidirectionality.

Choices: same, shared.

Default: same.

--lookuptable, --lt

The encoder, decoder, and output modules can share weights, or not. Unique has independent embeddings for each. Enc_dec shares the embedding for the encoder and decoder. Dec_out shares decoder embedding and output weights. All shares all three weights.

Choices: unique, enc_dec, dec_out, all.

Default: unique.

--numsoftmax, --soft

Default 1, if greater then uses mixture of softmax (see arxiv.org/abs/1711.03953).

Default: 1.

--input-dropout, --idr

Probability of replacing tokens with UNK in training.

Default: 0.0.

Torch Generator Agent

Argument

Description

--beam-size

Beam size, if 1 then greedy search

Default: 1.

--beam-min-length

Minimum length of prediction to be generated by the beam search

Default: 1.

--beam-context-block-ngram

Size n-grams to block in beam search from the context. val <= 0 implies no blocking

Default: -1.

--beam-block-ngram

Size n-grams to block in beam search. val <= 0 implies no blocking

Default: -1.

--beam-block-full-context

Block n-grams from the full history context. Specify False to block up to m tokens in the past, where m is truncation parameter for agent

Default: True.

--beam-length-penalty

Applies a length penalty. Set to 0 for no penalty.

Default: 0.65.

--inference

Generation algorithm

Choices: beam, nucleus, delayedbeam, greedy, delayednucleusbeam, topk, factual_nucleus.

Default: greedy.

--topk

K used in Top K sampling

Default: 10.

--topp

P used in nucleus sampling

Default: 0.9.

--beam-delay

Used in delayedbeam search

Default: 30.

--lambda-decay

Decay factor in factual nucleus sampling

Default: 0.9.

--omega-bound

Lower bound in factual nucleus sampling

Default: 0.3.

--p-reset

Whether to reset p value in factual nucleus at full stops

Default: True.

--beam-block-list-filename

Load a text file of hard blocks for beam search to never say.

--temperature

Temperature to add during decoding

Default: 1.0.

--compute-tokenized-bleu

If true, compute tokenized bleu scores

Default: False.

TorchAgent Arguments

Argument

Description

--interactive-mode, --i

Whether in full interactive mode or not, which means generating text or retrieving from a full set of candidates, which is necessary to actually do full dialogue. However, during training or quick validation (e.g. PPL for generation or ranking a few candidates for ranking models) you might want these set to off. Typically, scripts can set their preferred default behavior at the start, e.g. eval scripts.

Default: False.

--embedding-type, --emb

Choose between different strategies for initializing word embeddings. Default is random, but can also preinitialize from Glove or Fasttext. Preinitialized embeddings can also be fixed so they are not updated during training.

Choices: random, glove, glove-fixed, fasttext, fasttext-fixed, fasttext_cc, fasttext_cc-fixed.

Default: random.

--embedding-projection, --embp

If pretrained embeddings have a different dimensionality than your embedding size, strategy for projecting to the correct size. If the dimensions are the same, this is ignored unless you append “-force” to your choice.

Default: random.

--fp16

Use fp16 computations.

Default: False.

--fp16-impl

Implementation of FP16 to use

Choices: safe, mem_efficient.

Default: safe.

--rank-candidates, --rc

Whether the model should parse candidates for ranking.

Default: False.

--truncate, --tr

Truncate input lengths to increase speed / use less memory.

Default: -1.

--text-truncate

Text input truncation length: if not specified, this will default to truncate

--label-truncate

Label truncation length: if not specified, this will default to truncate

--history-reversed

Reverse the history

Default: False.

--history-size, --histsz

Number of past dialog utterances to remember.

Default: -1.

--person-tokens, --pt

Add person tokens to history. adds p1 in front of input text and p2 in front of past labels when available or past utterances generated by the model. these are added to the dictionary during initialization.

Default: False.

--split-lines

Split the dialogue history on newlines and save in separate vectors

Default: False.

--delimiter

Join history lines with this token, defaults to newline

Default: \n.

--special-tok-lst

Comma separated list of special tokens. In case of ambiguous parses from special tokens, the ordering provided in this arg sets precedence.

-gpu, --gpu

Which GPU to use

Default: -1.

--no-cuda

Disable GPUs even if available. otherwise, will use GPUs if available on the device.

Default: False.

Optimizer Arguments

Argument

Description

--optimizer, --opt

Optimizer choice. Possible values: adadelta, adagrad, adam, adamw, sparseadam, adamax, asgd, sgd, radam, rprop, rmsprop, optimizer, nadam, lbfgs, mem_eff_adam, adafactor.

Choices: adadelta, adagrad, adam, adamw, sparseadam, adamax, asgd, sgd, radam, rprop, rmsprop, optimizer, nadam, lbfgs, mem_eff_adam, adafactor.

Default: sgd.

--learningrate, --lr

Learning rate

Default: 1.

--gradient-clip, --clip

Gradient clipping using l2 norm

Default: 0.1.

--adafactor-eps

Epsilon values for adafactor optimizer: regularization constants for square gradient and parameter scale respectively

Default: 1e-30,1e-3. Recommended: 1e-30,1e-3.

--momentum, --mom

If applicable, momentum value for optimizer.

Default: 0.

--nesterov

If applicable, whether to use nesterov momentum.

Default: True.

--nus, --nu

If applicable, nu value(s) for optimizer. can use a single value like 0.7 or a comma-separated tuple like 0.7,1.0

Default: 0.7.

--betas, --beta

If applicable, beta value(s) for optimizer. can use a single value like 0.9 or a comma-separated tuple like 0.9,0.999

Default: 0.9,0.999.

--weight-decay, --wdecay

Weight decay on the weights.

BPEHelper Arguments

Argument

Description

--bpe-vocab

Path to pre-trained tokenizer vocab

--bpe-merge

Path to pre-trained tokenizer merge

--bpe-dropout

Use BPE dropout during training.

Learning Rate Scheduler

Argument

Description

--lr-scheduler

Learning rate scheduler.

Choices: reduceonplateau, none, fixed, invsqrt, cosine, linear.

Default: reduceonplateau.

--lr-scheduler-patience

LR scheduler patience. In number of validation runs. If using fixed scheduler, LR is decayed every validations.

Default: 3.

--lr-scheduler-decay

Decay factor for LR scheduler, or how much LR is multiplied by when it is lowered.

Default: 0.5.

--invsqrt-lr-decay-gamma

Constant used only to find the lr multiplier for the invsqrt scheduler. Must be set for –lr-scheduler invsqrt

Default: -1.