AllenNLP は大きな成功を収めていますが、この分野は急速に進歩しているため、新しい取り組みに焦点を当てる時期が来ています。私たちは AI2 Tango が研究コードベースを整理するための最良の方法となるよう懸命に取り組んでいます。 AllenNLP のアクティブ ユーザーの場合は、次のような代替案が推奨されます。
modules
とnn
パッケージが気に入った場合は、delmaksym/allennlp-light をチェックしてください。 AI2 Tango とも互換性があります。モデル開発に AllenNLP を使用することに興味がある場合は、AllenNLP ガイドでライブラリの完全な紹介を確認し、その後 GitHub ディスカッションでより高度なガイドを確認することをお勧めします。
プロジェクトを開始する準備ができたら、出発点として使用できるいくつかのテンプレート リポジトリを作成しました。
allennlp train
および config ファイルを使用して実験を指定する場合は、このテンプレートを使用します。このアプローチをお勧めします。さらに、外部チュートリアルもあります。
その他は AI2 AllenNLP ブログにあります。
AllenNLP は、「プラグイン」の動的ロードをサポートしています。プラグインは、カスタム登録クラスまたは追加のallennlp
サブコマンドを提供する単なる Python パッケージです。
オープンソース プラグインのエコシステムがあり、その一部はここ AI2 の AllenNLP チームによって維持されており、また一部はより広範なコミュニティによって維持されています。
プラグイン | メンテナー | CLI | 説明 |
アレンLPモデル | AI2 | いいえ | 最先端のモデルのコレクション |
アレンルプ・センパース | AI2 | いいえ | セマンティックパーサーを構築するためのフレームワーク |
アレンLPサーバー | AI2 | はい | モデルを提供するためのシンプルなデモ サーバー |
アレンLP-オプチュナ | 平松真琴 | はい | Optuna の統合によるハイパーパラメーターの最適化 |
AllenNLP は、ユーザーがインストールした AI2 管理の公式プラグインを自動的に検索しますが、AllenNLP がインストールした個人用またはサードパーティのプラグインを検索するには、実行ディレクトリに.allennlp_plugins
という名前のローカル プラグイン ファイルを作成する必要もあります。 allennlp
コマンド、または~/.allennlp/plugins
にあるグローバル プラグイン ファイル。このファイルには、ロードするプラグイン モジュールが 1 行に 1 つずつリストされている必要があります。
AllenNLP によってプラグインが検出およびインポートできることをテストするには、 allennlp test-install
コマンドを実行できます。検出された各プラグインはターミナルに記録されます。
プラグインの詳細については、プラグイン API ドキュメントを参照してください。また、プラグインとして配布するカスタム サブコマンドを作成する方法については、サブコマンド API ドキュメントを参照してください。
アレンルプ | PyTorch 上に構築されたオープンソースの NLP 研究ライブラリ |
allennlp.commands | CLIの機能 |
allennlp.common | ライブラリ全体で使用されるユーティリティ モジュール |
アレンLP.データ | データセットをロードし、行列で表現するために文字列を整数としてエンコードするためのデータ処理モジュール |
アレンルプ・フェアネス | バイアス軽減と公平性のアルゴリズムとメトリクスのモジュール |
allennlp.modules | テキストで使用するための PyTorch モジュールのコレクション |
アレンルプ.nn | Tensor ユーティリティ関数 (イニシャライザやアクティベーション関数など) |
アレンルプトレーニング | モデルをトレーニングするための機能 |
AllenNLP には、Python 3.6.1 以降と PyTorch が必要です。
Mac および Linux 環境で AllenNLP をサポートします。現在 Windows はサポートしていませんが、貢献は歓迎しています。
AllenNLP をインストールする最も簡単な方法は、conda を使用することです (別の Python バージョンを選択できます)。
conda install -c conda-forge python=3.8 allennlp
checklist
などのオプションのパッケージをインストールするには、次を使用します。
conda install -c conda-forge allennlp-checklist
または単にallennlp-all
直接インストールします。上記のプラグインも同様にインストール可能です。
conda install -c conda-forge allennlp-models allennlp-semparse allennlp-server allennlp-optuna
AllenNLP をインストールする前に、 pytorch.org の手順に従って PyTorch エコシステムをインストールすることをお勧めします。
その後、 pip install allennlp
実行するだけです。
️ Python 3.7 以降を使用している場合は、特定のプラットフォームで問題が発生する可能性があるため、上記のコマンドを実行した後に PyPI バージョンのdataclasses
がインストールされていないことを確認する必要があります。pip freeze | grep dataclasses
実行すると、これをすぐに確認できます。pip freeze | grep dataclasses
。出力にdataclasses=0.6
のようなものが表示された場合は、pip uninstall -y dataclasses
を実行してください。
適切な Python 環境をセットアップするためのヒントが必要な場合、または別の方法を使用して AllenNLP をインストールしたい場合は、以下を参照してください。
Conda を使用して、AllenNLP に必要な Python のバージョンで仮想環境をセットアップできます。使用したい Python 3 環境がすでにある場合は、「pip によるインストール」セクションに進んでください。
Conda をダウンロードしてインストールします。
Python 3.8 を使用して Conda 環境を作成します (3.7 または 3.9 でも機能します)。
conda create -n allennlp_env python=3.8
Conda 環境をアクティブ化します。 AllenNLP を使用する各ターミナルで Conda 環境をアクティブ化する必要があります。
conda activate allennlp_env
ライブラリと依存関係のインストールは、 pip
使用することで簡単に行えます。
pip install allennlp
checklist
などのオプションの依存関係をインストールするには、次を実行します。
pip install allennlp[checklist]
または、 pip install allennlp[all]
を使用して、オプションの依存関係をすべてインストールすることもできます。
最先端の機能をお探しですか?夜間リリースを pypi から直接インストールできます
AllenNLP は、Python パッケージをインストールするときにスクリプトをインストールするため、ターミナルにallennlp
と入力するだけで allennlp コマンドを実行できます。たとえば、 allennlp test-install
使用してインストールをテストできるようになりました。
また、 allennlp-models
インストールすることもできます。これには、公式にサポートされているモデルをトレーニングおよび実行するための NLP 構造が含まれており、その多くは https://demo.allennlp.org でホストされています。
pip install allennlp-models
Docker は、GPU を利用するか、CPU 上で実行するかに関係なく、AllenNLP を実行するためのすべてのセットアップを備えた仮想マシンを提供します。 Docker を使用すると、分離性と一貫性が向上し、環境をコンピューティング クラスターに簡単に分散できるようになります。
AllenNLP は、ライブラリとそのすべての依存関係がインストールされた公式 Docker イメージを提供します。
Docker をインストールしたら、GPU を使用できる場合は、NVIDIA Container Toolkit もインストールする必要があります。
次に、次のコマンドを実行して、GPU で実行される環境を取得します。
mkdir -p $HOME /.allennlp/
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest
Docker 環境をテストするには、
docker run --rm --gpus all -v $HOME /.allennlp:/root/.allennlp allennlp/allennlp:latest test-install
利用可能な GPU がない場合は、 --gpus all
フラグを省略してください。
別のバージョンの PyTorch が必要な場合など、さまざまな理由により、独自の AllenNLP Docker イメージを作成する必要がある場合があります。これを行うには、AllenNLP のローカル クローンのルートからmake docker-image
実行するだけです。
デフォルトでは、これによりallennlp/allennlp
タグを持つイメージが構築されますが、 make
呼び出すときにDOCKER_IMAGE_NAME
フラグを設定することで、これを任意の値に変更できます。たとえば、 make docker-image DOCKER_IMAGE_NAME=my-allennlp
。
別のバージョンの Python または PyTorch を使用する場合は、フラグDOCKER_PYTHON_VERSION
およびDOCKER_TORCH_VERSION
それぞれ3.9
および1.9.0-cuda10.2
などに設定します。これらのフラグを組み合わせて、使用されるベース イメージが決定されます。有効な組み合わせのリストは、GitHub Container Registry: github.com/allenai/docker-images/pkgs/container/pytorch で確認できます。
イメージを構築した後、 docker images allennlp
実行すると、そのイメージが一覧表示されるはずです。
REPOSITORY TAG IMAGE ID CREATED SIZE
allennlp/allennlp latest b66aee6cb593 5 minutes ago 2.38GB
Git リポジトリのクローンを作成して AllenNLP をインストールすることもできます。
git clone https://github.com/allenai/allennlp.git
Python 3.7 または 3.8 仮想環境を作成し、以下を実行して AllenNLP をeditable
モードでインストールします。
pip install -U pip setuptools wheel
pip install --editable .[dev,all]
これにより、システム上でallennlp
使用可能になりますが、ソース リポジトリから作成したローカル クローンのソースが使用されます。
allennlp test-install
を使用してインストールをテストできます。ソースからallennlp-models
インストールする手順については、https://github.com/allenai/allennlp-models を参照してください。
AllenNLP をインストールしたら、 allennlp
コマンドを使用してコマンド ライン インターフェイスを実行できます ( pip
からインストールした場合でも、ソースからインストールした場合でも)。 allennlp
は、 train
、 evaluate
、 predict
などのさまざまなサブコマンドがあります。完全な使用法情報を表示するには、 allennlp --help
を実行します。
allennlp test-install
実行して、インストールをテストできます。
機能リクエスト、バグレポート、一般的な質問など、誰でも問題を報告することができます。私たちは独自の内部目標を持った小さなチームなので、迅速な修正が私たちのロードマップに適合しない場合は貢献を求めることがあります。物事を整理するために、解決済みと思われる問題はしばしば閉じられますが、さらに議論が必要な場合は、ためらわずにフォローアップしてください。
AI2 の AllenNLP チーム (@allenai) は、コミュニティからの貢献を歓迎します。初めて貢献する場合は、まず COTRIBUTING.md ガイドを読むことをお勧めします。次に、 Good First Issue
タグが付いた問題を見てください。
より大きな機能に貢献したい場合は、まず議論のために提案されたデザインを含む問題を作成することをお勧めします。これにより、誰かが早い段階で指摘した可能性のある技術的な制限がある実装に多大な時間を費やすことがなくなります。少額の貢献はプル リクエストで直接行うことができます。
プル リクエスト (PR) には、マージする前に 1 つの承認レビューがあり、変更が要求されていない必要があります。 AllenNLP は主に AI2 によって推進されているため、当社は、追加が適切ではないと思われる貢献を拒否または取り消しする権利を留保します。
研究で AllenNLP を使用する場合は、AllenNLP: ディープ セマンティック自然言語処理プラットフォームを引用してください。
@inproceedings { Gardner2017AllenNLP ,
title = { AllenNLP: A Deep Semantic Natural Language Processing Platform } ,
author = { Matt Gardner and Joel Grus and Mark Neumann and Oyvind Tafjord
and Pradeep Dasigi and Nelson F. Liu and Matthew Peters and
Michael Schmitz and Luke S. Zettlemoyer } ,
year = { 2017 } ,
Eprint = { arXiv:1803.07640 } ,
}
AllenNLP は、Allen Institute for Artificial Intelligence (AI2) が支援するオープンソース プロジェクトです。 AI2 は、インパクトの大きい AI 研究とエンジニアリングを通じて人類に貢献することを使命とする非営利機関です。このコードベースに具体的に誰が貢献したかについて詳しくは、貢献者のページをご覧ください。