#!/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 document classification, bitext filtering # and mining # #------------------------------------------------------- # # This bash script installs the flores200 dataset, downloads laser2, and then # performs xsim++ evaluation with ratio margin 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 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 corpus_part="devtest" corpus="flores200" # download flores200 augmented data (eng_Latn) s3="https://dl.fbaipublicfiles.com/nllb/laser/xsimplusplus" augmented_dir=$ddir/$corpus/${corpus_part}_augmented if [ ! -d $augmented_dir ]; then mkdir $augmented_dir; fi download "eng_Latn_augmented.$corpus_part" $augmented_dir download "eng_Latn_errtype.$corpus_part.json" $augmented_dir # note: example evaluation script expects format: basedir/corpus/corpus_part/lang.corpus_part echo " - calculating xsim++" python3 $LASER/source/eval.py \ --base-dir $ddir \ --corpus $corpus \ --corpus-part $corpus_part \ --margin ratio \ --src-encoder $LASER/models/laser2.pt \ --src-spm-model $LASER/models/laser2.spm \ --src-langs afr_Latn,fin_Latn,fra_Latn,hin_Deva,tha_Thai \ --tgt-langs eng_Latn \ --tgt-aug-langs eng_Latn \ --verbose