インスペクター、さらには「インタープリター」であるLITまたはLanguage Interpretability Toolは、NLPモデルを視覚化および解釈するための強力なオープンソースプラットフォームです。このプラットフォームは、2020年11月にGoogleResearchによってEMNLP2020で発表されました。LITはまだ開発中なので、開発者はWindowsプラットフォームでの作業を含め、何も保証しません。しかし、私はそれをしました、私は私の経験を共有します。
LITは、NLPモデルの開発者や研究者向けのインタラクティブで拡張可能なビジュアルツールであり、特に、モデルが対応できないケース、予測がまったく同じである理由、テキスト内のどの単語が結果に影響するかを理解したいと考えています。 、および1つまたは別のトークン、あるいはテキスト全体が発生した場合はどうなりますか。LITはオープンプラットフォームです。独自のメトリックの計算、新しい解釈方法、またはカスタム視覚化ツールを追加できます。モデルのアーキテクチャにより、必要な情報を引き出すことができることが重要です。
プラットフォームは、TensorFlow 1.x、TensorFlow 2.x、PyTorchなど、さまざまな種類のモデルとフレームワークを処理します。LITは、ニューラルネットワークやRPCモデル上でカスタムPythonコードを実行できます。
建築についての2つの言葉。フロントエンドはTypeScriptに基づいています。これは、独立したWebコンポーネントで構成される単一ページのアプリケーションです。バックエンドはWSGIサーバーに基づいています。バックエンドは、モデル、データセット、メトリック、ジェネレーター、解釈コンポーネント、およびモデルとデータの操作を高速化するキャッシュを管理します。これは、大規模なモデルにとって非常に重要です。詳細はこちら。
箱から出して、LITは分類、回帰、seq2seqを含むテキストジェネレーター、マスクされたモデル、NERモデル、および複数の出力ヘッドを備えた多機能モデルをサポートします。表の主な機能:
ウィジェット |
簡単 な説明 |
注意 |
注意層と注意ヘッドの組み合わせによる注意メカニズムの視覚化。 |
混同行列 |
, , . |
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はテキストのギャップを埋めます
T5でテキストを生成する
最後の例でテキストを生成するときにトークンの可能性を推定し、代替案を確認する機能は非常に便利に見えます。私はまだそのようなモデルをローカルで試していませんが、デモのスクリーンショットを共有せずにはいられません。
LITを使った興味深い実験と、その過程での忍耐を心から願っています。
リンク
言語解釈可能性ツールの公開:EMNLP2020のNLPモデルの拡張可能でインタラクティブな視覚化と分析
LITの問題とエラーについて議論するgithubのフォーラム