Difference between revisions of "Vectors/elmo/tutorial"

From Nordic Language Processing Laboratory
Jump to: navigation, search
(Training ELMo on Saga)
Line 4: Line 4:
  
 
= Training ELMo on Saga =
 
= Training ELMo on Saga =
 +
 +
As of now, one should use ''Anaconda'' to get working GPU-enabled ''TensorFlow'' on Saga.
 +
tensorflow-gpu Python package is then installed locally.
 +
 +
After that, the code from https://github.com/akutuzov/bilm-tf can be used to train a model. More instructions to appear later.
  
 
Example SLURM file:
 
Example SLURM file:
Line 34: Line 39:
 
  # <<< conda initialize <<<
 
  # <<< conda initialize <<<
 
  conda activate python3.6
 
  conda activate python3.6
  python3 bin/train_elmo.py --train_prefix $DATA --vocab_file $VOCAB --save_dir ${3} --size $SIZE
+
  python3 bin/train_elmo.py --train_prefix $DATA --size $SIZE --vocab_file $VOCAB --save_dir $OUT
 +
 
 +
$DATA is a path to the directory containing any number of (possibly gzipped) plain text files: your training corpus. $SIZE if the number of word tokens in $DATA (necessary to properly construct and log batches). $VOCAB is a (possibly gzipped) one-word-per-line vocabulary file; it should always contain at least <S>, </S> and <UNK>. $OUT is a directory where the TensorFlow checkpoints will be saved.

Revision as of 19:20, 29 September 2019

Background

ELMo is a family of contextualized word embeddings first introduced in [Peter et al. 2018].

Training ELMo on Saga

As of now, one should use Anaconda to get working GPU-enabled TensorFlow on Saga. tensorflow-gpu Python package is then installed locally.

After that, the code from https://github.com/akutuzov/bilm-tf can be used to train a model. More instructions to appear later.

Example SLURM file:

#!/bin/bash
#SBATCH --job-name=elmo
#SBATCH --mail-type=FAIL
#SBATCH --account=nn9447k  # Use your project number
#SBATCH --partition=accel    # To use the accelerator nodes
#SBATCH --gres=gpu:2         # To specify how many GPUs to use
#SBATCH --time=10:00:00      # Max walltime is 14 days.
#SBATCH --mem-per-cpu=6G
#SBATCH --ntasks=8
set -o errexit  # Recommended for easier debugging
module purge   # Recommended for reproducibility
module load Anaconda3/2019.03
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/cluster/software/Anaconda3/2019.03/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
   eval "$__conda_setup"
else
   if [ -f "/cluster/software/Anaconda3/2019.03/etc/profile.d/conda.sh" ]; then
               . "/cluster/software/Anaconda3/2019.03/etc/profile.d/conda.sh"
   else
       export PATH="/cluster/software/Anaconda3/2019.03/bin:$PATH"
   fi
fi
unset __conda_setup
# <<< conda initialize <<<
conda activate python3.6
python3 bin/train_elmo.py --train_prefix $DATA --size $SIZE --vocab_file $VOCAB --save_dir $OUT

$DATA is a path to the directory containing any number of (possibly gzipped) plain text files: your training corpus. $SIZE if the number of word tokens in $DATA (necessary to properly construct and log batches). $VOCAB is a (possibly gzipped) one-word-per-line vocabulary file; it should always contain at least , and <UNK>. $OUT is a directory where the TensorFlow checkpoints will be saved.