Spaces:
Sleeping
Sleeping
# 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 | |