Facebook AI Researchは、ビデオ通話デバイスのPortalやFacebook MessengerのM Suggestionsで使用されている自然言語処理(NLP)モデリングフレームワークであるPyTextをオープンソースとして公開した。
NLPは、人間の言語を解析および処理するためのテクノロジーであり、チャットボットやスマートアシスタントアプリケーションの主要コンポーネントである。NLPアルゴリズムを開発しているエンジニアは、ソリューションを構築するためにFacebookのPyTorchプラットフォームなどのディープラーニングシステムに目を向ける。PyTextはPyTorch上に構築されており、特にNLP用に調整された一連のインタフェースとモデルを提供する。内部的には、Facebookはビデオ通話デバイスのPortalと彼らのMessengerアプリのM Suggestion機能でNLPを供給するためPyTextを使用している。
PyTextはNLPプロジェクトの一般的な問題である、迅速な実験と生産におけるスケーラビリティの間のトレードオフを対処する。研究者はパフォーマンスの目標を達成するためにモデルを素早く微調整しながら新しいアイデアを実験する。この実験段階では、PyTorchやTensorflowのEager Executionなどのフレームワークでモデルが開発される。これらのフレームワークはシンプルなAPIと動的グラフなどの高度な機能を備えており、ネットワークの構造は実行時に変えることが可能である。これとは対照的に、生産負荷の要件を処理するために、エンジニアはTensorFlowやCaffe2などディープラーニングのフレームワークに頼る。これらはハイスループット用に最適化されており、静的計算グラフのみをサポートする。PyTextを使用することで、研究者はPyTorchでモデルを開発し、次にそれらをONNX経由でCaffe2フレームワークにエクスポートしてモバイル機器を含むさまざまなプロダクションプラットフォームに展開できる。
PyTextは分散トレーニングに複数のGPUを利用可能であり、一度に複数のモデルをトレーニングできるため、全体のトレーニング時間を短縮できる。PyTextコードには、テキスト分類、固有表現抽出、チャットボット開発の主役であるjoint intent-determinationやスロットフィリングなど、いくつかの一般的なNLPタスクのための pre-trained models も付属している。しかし、このモデルのセットはFacebookのユースケースに基づいており、AllenNLPなど他のフレームワークで使用可能なマシンの言語理解と同一指示解析を含む多くのNLPモデルは包括されていない。
PyTextのソースコードはGitHubから入手できる。