LIT - Inspecteur pour votre PNL. Révision, installation, test

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 .





http://127.0.0.1:5433/ , .





.





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 .





:





Interface LIT
LIT

.





. , .





, 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 , - .





LIT, . , . :













  • 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








All Articles