LIT - Inspector de su PNL. Revisión, instalación, prueba

Inspector e incluso en algún lugar "intérprete", LIT o Language Interpretability Tool es una poderosa plataforma de código abierto para visualizar e interpretar modelos de PNL. La plataforma fue presentada en EMNLP 2020 por Google Research en noviembre de 2020. LIT todavía se encuentra en estado de desarrollo, por lo que los desarrolladores no garantizan nada, incluido el trabajo en la plataforma Windows. Pero lo hice, les comparto mi experiencia.





LIT es una herramienta visual interactiva, extensible para desarrolladores e investigadores de modelos de PNL que, entre otras cosas, quieren comprender qué casos no resuelve el modelo, por qué el pronóstico es exactamente el mismo, qué palabras del texto afectan el resultado. , y qué pasará si uno o un token diferente, o incluso el texto completo. LIT es una plataforma abierta. Puede agregar su propio cálculo de métricas, nuevos métodos de interpretación o herramientas de visualización personalizadas. Es importante que la arquitectura del modelo le permita extraer la información que necesita.





La plataforma maneja varios tipos de modelos y marcos, incluidos TensorFlow 1.x, TensorFlow 2.x, PyTorch. LIT puede ejecutar código Python personalizado sobre una red neuronal e incluso modelos RPC .





Dos palabras sobre arquitectura. La interfaz se basa en TypeScript. Es una aplicación de una sola página compuesta por componentes web independientes. El backend se basa en un servidor WSGI . El backend administra modelos, conjuntos de datos, métricas, generadores y componentes de interpretación, así como un caché que acelera la manipulación de modelos y datos, lo cual es muy importante para modelos grandes. Más detalles aquí .





Fuera de la caja, LIT admite clasificación, regresión, generadores de texto, incluidos seq2seq, modelos enmascarados, modelos NER y modelos multifunción con múltiples cabezales de salida. Características clave en la tabla:





Widget





Breve descripción





Atención





Visualización del mecanismo de atención mediante capas de atención y cabezas de atención en combinación.





Matriz de confusión





, , .





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 .





:





Interfaz 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 llena los espacios en blanco en el texto





  • Generando texto en T5





La capacidad de estimar la probabilidad de tokens y ver alternativas al generar texto en el último ejemplo parece muy útil. Todavía no he probado un modelo de este tipo localmente, pero no puedo evitar compartir una captura de pantalla de la demostración:





¡Les deseo sinceramente a todos experimentos interesantes con LIT y algo de paciencia en el proceso!





Enlaces

Publicación de la herramienta de interpretación de idiomas: análisis y visualizaciones interactivas extensibles para modelos de PNL para EMNLP 2020





Foro en github con discusión de problemas y errores en LIT








All Articles