Inspector e mesmo em algum lugar "intérprete", LIT ou Language Interpretability Tool é uma poderosa plataforma de código aberto para visualizar e interpretar modelos de PNL. A plataforma foi apresentada no EMNLP 2020 pela Google Research em novembro de 2020. LIT ainda está em desenvolvimento, então os desenvolvedores não garantem nada, incluindo trabalho na plataforma windows. Mas consegui, partilho a minha experiência.
LIT é uma ferramenta visual interativa e extensível para desenvolvedores e pesquisadores de modelos de PNL que, entre outras coisas, desejam entender quais casos o modelo não atende, por que a previsão é exatamente a mesma, quais palavras no texto afetam o resultado , e o que acontecerá se um ou um token diferente, ou até mesmo o texto inteiro. LIT é uma plataforma aberta. Você pode adicionar seu próprio cálculo de métricas, novos métodos de interpretação ou ferramentas de visualização personalizadas. É importante que a arquitetura do modelo permita que você extraia as informações de que precisa.
A plataforma lida com vários tipos de modelos e estruturas, incluindo TensorFlow 1.x, TensorFlow 2.x, PyTorch. O LIT pode executar código Python personalizado em cima de uma rede neural e até mesmo modelos RPC .
Duas palavras sobre arquitetura. O frontend é baseado em TypeScript. É um aplicativo de página única feito de componentes web independentes. O backend é baseado em um servidor WSGI . O backend gerencia modelos, conjuntos de dados, métricas, geradores e componentes de interpretação, bem como um cache que acelera a manipulação de modelos e dados, o que é muito importante para modelos grandes. Mais detalhes aqui .
Fora da caixa, LIT suporta classificação, regressão, geradores de texto incluindo seq2seq, modelos mascarados, modelos NER e modelos multifuncionais com várias cabeças de saída. Principais recursos da tabela:
Ferramenta |
Breve descrição |
Atenção |
Visualização do mecanismo de atenção por camadas de atenção e cabeças de atenção em combinação. |
Matriz de confusão |
, , . |
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 preenche lacunas no texto
Gerando texto em T5
A capacidade de estimar a probabilidade de tokens e ver alternativas ao gerar texto no último exemplo parece muito útil. Ainda não experimentei esse modelo localmente, mas não posso deixar de compartilhar uma captura de tela da demonstração:
Sinceramente, desejo a todos os experimentos interessantes com LIT e alguma paciência no processo!
Links
Publicação da Ferramenta de Interpretabilidade de Linguagem: Extensível, Visualizações Interativas e Análise para Modelos de PNL para EMNLP 2020
Fórum no github com discussão de problemas e erros no LIT