INSTALL ESPnet メモ
ESPnet: end-to-end speech processing toolkit
GitHub - espnet/espnet: End-to-End Speech Processing Toolkit
1. INSTALL Kaldi
$ git clone https://github.com/kaldi-asr/kaldi $ cd <kaldi-root>/tools $ make -j <num-cpus> $ ./extras/install_openblas.sh $ cd <kaldi-root>/src $ ./configure --shared --mathlib=OPENBLAS $ make <num-cpu>
Select not MKL but OpenBLAS
2. INSTALL ESPnet
$ git clone https://github.com/espnet/espnet $ cd <espnet-root>/tools $ ln -s <kaldi-root> . # Setup Python environment (= Generate `activate_python.sh`) $ ./setup_anaconda.sh anaconda espnet 3.8 $ . ./setup_cuda_env.sh /usr/local/cuda $ make # Check installation $ . ./activate_python.sh; python3 check_install.py
Reference
解説 - XLNet: Generalized Autoregressive Pretraining for Language Understanding
事前学習モデル XLNet を提案. Fine-tuning により SQuAD や GLUE などの 20 タスクで BERT (さらには RoBERTa) を上回った.
BERT の事前学習 (Masked Language Modeling objective) の問題点として,
[MASK] されたトークン間での独立性の仮定 や [MASK] の導入による事前学習と fine-tuning の不一致が挙げられる.
これらを解決するために Permutation Language Modeling objective が導入された. またこの objective を計算するために Two Stream Self-Attention 構造を採用する.
さらに XLNet の名前の由来となっている Transformer-XL の構造も採用し, segment をまたいだ依存性も考慮できるようにしている.
www.slideshare.net
解説 - Unified Language Model Pre-training forNatural Language Understanding and Generation
Natural Language Understanding (NLU) と Natural Language Generation (NLG) のための事前学習法として UNIfied pre-trained Language Model (UNILM) を提案.
Natural Langauge Understanding
- Extractive QA (SQuAD), GLUE など
- Left-to-right LM や Bidirectional LM などの事前学習モデルからの fine-tuning により解く
Natural Langauge Generation
- Generative QA (CoQA), Abstractive Summarization (Gigaword) など
- Sequence-to-sequence LM により解く
これら Left-to-right LM, Bidirectional LM, Sequence-to-sequence LM を統合 (unify) した事前学習. パラメータは共有し Self-attention mask によって attend するコンテキストを制御.