Release 0.4.0
Added
-
Add support for parallelizing annotation at the batch level. SyntaxDot has
so far used PyTorch inter/intraop parallelization. This change adds
support for parallelization at the batch level. Annotation-level
parallelization can be configured with theannotation-threads
command-line option ofsyntaxdot annotate
. -
Add ReLU (
relu
) as an option as the non-linearity in the feed-forward
transformer layers. This is much faster for systems where no vectorized
version of the normal distribution CDF is available (currently Apple M1). -
The non-linearity that is used in the biaffine feed-forward layers is
now configurable. For example:[biaffine] activation = "relu"
When this option is absent, the GELU activation (
gelu
) will be used as
the default.
Changed
-
The license of SyntaxDot has changed from the Blue Oak Model License 1.0
to the MIT License or Apache License version 2.0 (at your option). -
SyntaxDot now uses dynamic batch sizes. Before this change, the batch
size (--batch-size
) was specified as the number of sentences per
batch. Since sentences are sorted by length before batching, annotation
is performed on batches with roughly equisized sequences. However,
later batches required more computations per batch due to longer
sequence lengths.This change replaces the
--batch-size
option by the--max-batch-pieces
option. This option specifies the number of word/sentence pieces that
a batch should contain. SyntaxDot annotation creates batches that contains
at most that number of pieces. The only exception are single sentences
that are longer than the maximum number of batch pieces.With this change, annotating each batch is approximately the same amount
of work. This leads to approximately 10% increase in performance.Since the batch size is not fixed anymore, the readahead (
--readahead
)
is now specified in number of sentences. -
Update to libtorch
1.9.0 and
tch 0.5.0. -
Change the default number of inter/intraop threads to 1. Use 4 threads for
annotation-level parallelization. This has shown to be faster for all models,
both on AMD Ryzen and Apple M1.