-
Notifications
You must be signed in to change notification settings - Fork 463
/
eval.sh
executable file
·98 lines (87 loc) · 2.86 KB
/
eval.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
# Copyright (c) Facebook, Inc. and its affiliates.
# All rights reserved.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.
#
# LASER Language-Agnostic SEntence Representations
# is a toolkit to calculate multilingual sentence embeddings
# and to use them for various tasks such as document classification,
# and bitext filtering
#
#-------------------------------------------------------
#
# This bash script downloads the flores200 dataset, laser2, and then
# performs pxsim evaluation
if [ -z ${LASER} ] ; then
echo "Please set the environment variable 'LASER'"
exit
fi
ddir="${LASER}/data"
cd $ddir # move to data directory
if [ ! -d $ddir/flores200 ] ; then
echo " - Downloading flores200..."
wget --trust-server-names -q https://tinyurl.com/flores200dataset
tar -xf flores200_dataset.tar.gz
/bin/mv flores200_dataset flores200
/bin/rm flores200_dataset.tar.gz
else
echo " - flores200 already downloaded"
fi
cd -
mdir="${LASER}/models"
if [ ! -d ${mdir} ] ; then
echo " - creating model directory: ${mdir}"
mkdir -p ${mdir}
fi
function download {
file=$1
save_dir=$2
if [ -f ${save_dir}/${file} ] ; then
echo " - ${save_dir}/$file already downloaded";
else
cd $save_dir
echo " - Downloading $s3/${file}";
wget -q $s3/${file};
cd -
fi
}
# available encoders
s3="https://dl.fbaipublicfiles.com/nllb/laser"
if [ ! -f ${mdir}/laser2.pt ] ; then
cd $mdir
echo " - Downloading $s3/laser2.pt"
wget --trust-server-names -q https://tinyurl.com/nllblaser2
cd -
else
echo " - ${mdir}/laser2.pt already downloaded"
fi
download "laser2.spm" $mdir
download "laser2.cvocab" $mdir
# encode FLORES200 texts using both LASER2 and LaBSE
for lang in eng_Latn wol_Latn; do
infile=$LASER/data/flores200/devtest/$lang.devtest
python3 ${LASER}/source/embed.py \
--input $infile \
--encoder $mdir/laser2.pt \
--spm-model $mdir/laser2.spm \
--output $lang.devtest.laser2 \
--verbose
python3 ${LASER}/source/embed.py \
--input $infile \
--encoder LaBSE \
--use-hugging-face \
--output $lang.devtest.labse \
--verbose
done
# run pxsim using LaBSE as an auxiliary scoring model
echo " - calculating p-xsim"
python3 $LASER/source/pxsim.py run \
--src_emb wol_Latn.devtest.laser2 \
--tgt_emb eng_Latn.devtest.laser2 \
--src_aux_emb wol_Latn.devtest.labse \
--tgt_aux_emb eng_Latn.devtest.labse \
--alpha 0.1 \
--k 32 \
--aux_emb_dim 768