Spaces:
Sleeping
Sleeping
# Input-guided Aggressive Decoding | |
Codes (originally from https://github.com/AutoTemp/Shallow-Aggressive-Decoding) for Input-guided Aggressive Decoding (IAD) that is originally proposed in the paper "Instantaneous Grammatical Error Correction with Shallow Aggressive Decoding" (ACL-IJCNLP 2021) | |
 | |
## Results | |
<table> | |
<caption> The performance and online inference efficiency evaluation of baseline and our approach in CoNLL-14. </caption> | |
<tr> | |
<th> Model </th> | |
<th> P </th> | |
<th> R </th> | |
<th> F<sub>0.5</sub> </th> | |
<th> Speedup </th> | |
</tr> | |
<tr> | |
<th> Transformer-big (beam=5) </th> | |
<th> 73.0 </th> | |
<th> 38.1 </th> | |
<th> 61.6 </th> | |
<th> 1.0x </th> | |
</tr> | |
<tr> | |
<th> Our approach (9+3) </th> | |
<th> 73.3 </th> | |
<th> 41.3 </th> | |
<th> 63.5 </th> | |
<th> 10.3x </th> | |
</tr> | |
<tr> | |
<th> Our approach (12+2 BART-Init) </th> | |
<th> 71.0 </th> | |
<th> 52.8 </th> | |
<th> 66.4 </th> | |
<th> 9.6x </th> | |
</tr> | |
</table> | |
<table> | |
<caption> For reference, the beam=1 and beam=5 results of the state-of-the-art 12+2 (BART-Init) are: </caption> | |
<thead> | |
<tr> | |
<th>12+2 BART-Init</th> | |
<th colspan="3">CoNLL-14</th> | |
<th colspan="3">BEA-19</th> | |
</tr> | |
</thead> | |
<tbody> | |
<tr> | |
<th>Beam</th> | |
<th>P</th> | |
<th>R</th> | |
<th>F<sub>0.5</sub></th> | |
<th>P</th> | |
<th>R</th> | |
<th>F<sub>0.5</sub></th> | |
</tr> | |
<tr> | |
<th>1</td> | |
<th>71.0</th> | |
<th>52.8</th> | |
<th>66.4</th> | |
<th>74.7</th> | |
<th>66.4</th> | |
<th>72.9</th> | |
</tr> | |
<tr> | |
<th>5</th> | |
<th>71.4</td> | |
<th>52.8</td> | |
<th>66.7</td> | |
<th>75.8</td> | |
<th>66.3</td> | |
<th>73.7</td> | |
</tr> | |
</tbody> | |
</table> | |
The above models are all single models without ensemble. | |
## Installation | |
``` | |
conda create -n IAD python=3.6 | |
conda activate IAD | |
conda install pytorch==1.5.1 torchvision==0.6.1 cudatoolkit=10.2 -c pytorch | |
cd fairseq | |
pip install --editable . | |
``` | |
## Usage | |
This section explains how to decode in different ways. | |
``` | |
PTPATH=/to/path/checkpoint*.pt # path to model file | |
BINDIR=/to/path/bin_data # directory containing src and tgt dictionaries | |
INPPATH=/to/path/conll*.bpe.txt # path to eval file | |
OUTPATH=/to/path/conll*.out.txt # path to output file | |
BATCH=xxx | |
BEAM=xxx | |
``` | |
## Directly use fairseq's interactive.py to decode: | |
``` | |
bash interactive.sh $PTPATH $BATCH $BEAM $INPPATH $BINDIR $OUTPATH | |
``` | |
## use Input-guided Aggressive Decoding: | |
``` | |
python inference.py --checkpoint-path $PTPATH --bin-data $BINDIR --input-path $INPPATH --output-path $OUTPATH --aggressive | |
``` | |