Spaces:
Sleeping
Sleeping
File size: 2,927 Bytes
05d3571 |
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 99 |
#!/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
|