Inspecteur et même quelque part «interprète», LIT ou Language Interpreterability Tool est une puissante plate-forme open source pour visualiser et interpréter les modèles PNL. La plateforme a été présentée à l' EMNLP 2020 par Google Research en novembre 2020. LIT est toujours en développement, donc les développeurs ne garantissent rien, y compris le travail sur la plate-forme Windows. Mais je l'ai fait, je partage mon expérience.
LIT est un outil visuel interactif et extensible pour les développeurs et les chercheurs de modèles PNL qui, entre autres, veulent comprendre quels cas le modèle ne gère pas, pourquoi la prévision est exactement la même, quels mots du texte affectent le résultat , et que se passera-t-il si un ou un jeton différent, ou même le texte entier. LIT est une plateforme ouverte. Vous pouvez ajouter votre propre calcul de métriques, de nouvelles méthodes d'interprétation ou des outils de visualisation personnalisés. Il est important que l'architecture du modèle vous permette d'extraire les informations dont vous avez besoin.
La plate-forme gère différents types de modèles et de frameworks, notamment TensorFlow 1.x, TensorFlow 2.x, PyTorch. LIT peut exécuter du code Python personnalisé sur un réseau neuronal et même des modèles RPC .
Deux mots sur l'architecture. Le frontend est basé sur TypeScript. Il s'agit d'une application d'une seule page composée de composants Web indépendants. Le backend est basé sur un serveur WSGI . Le backend gère les modèles, les ensembles de données, les métriques, les générateurs et les composants d'interprétation, ainsi qu'un cache qui accélère la manipulation des modèles et des données, ce qui est très important pour les grands modèles. Plus de détails ici .
Prêt à l'emploi, LIT prend en charge la classification, la régression, les générateurs de texte, y compris seq2seq, les modèles masqués, les modèles NER et les modèles multifonctions avec plusieurs têtes de sortie. Principales caractéristiques du tableau:
Widget |
Brève description |
Attention |
Visualisation du mécanisme d'attention par combinaison de couches d'attention et de têtes d'attention. |
Matrice de confusion |
, , . |
Counterfactual Generator |
. |
Data Table |
. — 10k . |
Datapoint Editor |
. . |
Embeddings |
3D : UMAP PCA. . Data Table . , , , . |
Metrics Table |
— Accuracy Recall BLEU ROUGE. , . |
Predictions |
. . |
Salience Maps |
. . — local gradients, LIME. |
Scalar Plot |
2D . |
Slice Editor |
. |
— pip install .
pip Windows 10 GPU:
# :
conda create -n nlp python==3.7
conda activate nlp
# tensorflow-gpu pytorch:
conda install -c anaconda tensorflow-gpu
conda install -c pytorch pytorch
# pip tensorflow datasets, transformers LIT:
pip install transformers=2.11.0
pip install tfds-nightly
pip install lit-nlp
tensorflow datasets glue datasets, tfds . PyTorch , .
. 5432, PostgreSQL. netstat -ao. :
python -m lit_nlp.examples.quickstart_sst_demo —port=5433.
< >\anaconda3\envs\nlp\Lib\site-packages\lit_nlp\examples , quickstart_sst_demo windows. , , 5 GPU 20 CPU. ASCII- LIT .
git clone https://github.com/PAIR-code/lit.git ~/lit
#
cd ~/lit
conda env create -f environment.yml
conda activate lit-nlp
conda install cudnn cupti # , GPU
conda install -c pytorch pytorch
#
pushd lit_nlp; yarn && yarn build; popd
continuumio/anaconda3 WSL2. . environment.yml tensorflow-datasets tfds-nightly. gcc g++. yarn. yarn apt-get, yarn! — :
curl https://deb.nodesource.com/setup_12.x | bash
curl https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list
apt-get update && apt-get install -y nodejs yarn postgresql-client
yarn && yarn build
NLP , , . «» LIT , quickstart_sst_demo, - .
:
Lenta.Ru, Kaggle. : , , . 70 150. 50k .
:
, BERT. . RuBert DeepPavlov , huggingface.co. 180 . . , 8 GPU. , . , max_seq_length, 128 , 64 .
LIT :
, , datasets/lenta.py, models/lenta_models.py examples/quickstart_lenta.py . — quickstart_sst_demo. . EDIT.
datasets/lenta.py: tfds, , .
models/lenta_models.py: «DeepPavlov/rubert-base-cased» : max_seq_length 64 , — 32 16.
examples/quickstart_lenta.py: , .
:
python -m lit_nlp.examples.quickstart_lenta —port=5433
RuBert – . . lenta_models num_epochs ( train). , . 50k 3000 . RTX2070 25 .
:
. , .
, 21 , , , .
. Data Table «Only show selected». Embedding.
Data Table - Explanation. . 32% , 68, . Silence Maps grad_dot_input. , " " , — .
Datapoint Editor «-» , «Analyze new datapoint» ( ).
:
:
Scalar. , Y. , , ROUGE. .
:
RuBert LIT , . , . . Slinece Maps Embeddings , - .
BERT comble les vides dans le texte
Générer du texte sur T5
La possibilité d'estimer la probabilité des jetons et de voir des alternatives lors de la génération de texte dans le dernier exemple semble très utile. Je n'ai pas encore essayé un tel modèle localement, mais je ne peux pas m'empêcher de partager une capture d'écran de la démo:
Je vous souhaite sincèrement à toutes des expériences intéressantes avec LIT et un peu de patience dans le processus!
Liens
Publication de l' outil d'interprétation du langage: visualisations et analyses extensibles et interactives pour les modèles PNL pour EMNLP 2020
Forum sur github avec discussion des problèmes et des erreurs dans LIT