自然言語処理市場は活況を呈しており、最近では多くの新しいツールがエコシステムに登場しています。ここでは、2022年にあなたのプロジェクトでテキスト理解とテキスト生成を統合するために知っておくべきライブラリ、フレームワーク、言語、サービス、アクターを紹介します。
Pythonは長年にわたり、データサイエンスにおけるデファクトスタンダード言語として使用されてきました。もしあなたが自然言語処理のプロジェクトに携わっているのなら、おそらくどこかにPythonのコードがあるはずです。
Pythonは非常に表現力が豊かでシンプルな高級言語であるため、機械学習アプリケーションに完全に適しています。しかし、それ以上に重要なのは、Pythonは、データ科学者の生活を容易にするライブラリとフレームワークの包括的なエコシステムの恩恵を受けていることです。
研究プロジェクトでも生産プロジェクトでも、新しいモデルをトレーニングする場合でも、推論に使う場合でも、ほとんどの場合、Pythonを使わなければなりません。 どうしても他の言語を使う必要がある場合、他の言語でも素晴らしいライブラリが見つかるかもしれませんが、基本的なユースケースに限ります(より高度なユースケースの場合、マイクロサービス戦略を採用し、REST APIを使用することが解決策となるでしょう)。
Hugging Face Hubは、オープンソースの自然言語処理モデルのほとんどを格納する中央リポジトリです。
Hugging Faceでは、新しいAIモデルを発見するだけでなく、自分のモデルをアップロードして共有することも簡単にできます。また、あなたの次のプロジェクトに必要なデータセットを探すのにも最適な場所です。モデルやデータセットは、Transformersフレームワーク(下記参照)を通じて簡単にダウンロードし、使用することができます。
Hugging Faceのビジョンは、自然言語処理を「民主化」し、「機械学習のGithub」となることです。
OpenAIは、これまでで最も高度な言語AIモデル「GPT-3」を開発した企業です。
このモデルの最初の2つのバージョン(GPTとGPT-2)はオープンソースでしたが、OpenAIはGPT-3をオープンソースにしないことを決定しました。GPT-3を利用する場合は、OpenAIのAPIに加入する必要があります。GPT-3のソースコードにアクセスできるのは、独占ライセンスを購入したマイクロソフトのみです。
GPTモデルは、人間のように文章を書くことが得意なテキスト生成AIモデルです。ある文章が本物の人間によって書かれたものか、GPT-3によって書かれたものかを人間が見分けるのは、実はとても難しいのです...。
この新しいAIを設計し、訓練するために、OpenAIは数百万ドルの費用を費やしました。もしあなたがこれを使いたいなら、厳しい検証プロセスを経なければなりません。なぜならOpenAIは、あらゆる種類のアプリケーションに彼らのモデルの使用を許可していないからです。
GPT-JやGPT-NeoXなど、OpenAIに追いつくために新しいオープンソースモデルがリリースされています。
これが私たちだ!
NLPクラウドは、最先端の自然言語処理AIモデルを簡単に実運用で使えるようにするAPIです。
例えば、GPT-JやGPT-NeoXによるテキスト生成、FacebookのBart Large CNNによるコンテンツの要約、Robertaによるテキストの分類、spaCyによるエンティティ抽出、Opus MTによるコンテンツの翻訳...といったことが可能です。
また、NLPクラウドでは、独自のAIの学習や微調整、自社モデルの展開も可能です。例えば、GPT-Jをベースに独自の医療用チャットボットを作りたい場合、業界内の事例で構成されたデータセットをアップロードし、学習プロセスを開始するだけで、APIを通じて最終モデルを本番で使用することができます。
Deepspeedは、Microsoft社によるモデル並列化に特化したオープンソースのフレームワークです。
具体的にはどのようなことですか?
AIモデルはどんどん大きくなっています(GPT-3、GPT-J、GPT-NeoX 20B、T0、Fairseq 13B...を参照ください)。これらの巨大なモデルは、大量の新しいアプリケーションへの扉を開きますが、同時に実行するのが非常に難しくなります。
これらのモデルをトレーニングし、推論のために実運用で確実に実行するには、垂直スケーラビリティ(NVIDIA A100やGoogle TPUなどの巨大GPUを使用)または水平スケーラビリティ(複数の小型GPUを並行して使用)のいずれかを行うことができます。
2番目のアプローチは、より安価で、よりスケーラブルであるため、ますます人気が出てきています。しかし、分散学習や分散推論を行うことは容易ではありません。
Deepspeedはもともと学習タスクを対象としていましたが、使い勝手がよく、Hugging Face Transformers(後述)と統合されていることから、現在は推論に使用されることが多くなってきています。
ビッグサイエンスは、大きな言語モデルを扱う研究者や企業の集合体である。
最初のワークショップでは、人間の指示を理解するのに非常に優れた性能を発揮するAIモデル「T0」を作成しました。
彼らの目標は、GPT-3よりも大規模で高度な多言語AIモデルをオープンソースで作成することです。
SpaCy は Python の自然言語処理フレームワークで、高速かつ簡単に扱えるので、制作に最適です。
これは、Explosion AIというドイツのAI企業が整備しているフレームワークです。
SpaCyは、約50の言語に対応し、固有表現(Nemed Entity Recognition: entity extraction)を得意としています。学習済みのモデルを提供するほか、アノテーションされた例から簡単に独自のモデルを作成することができます。
数年前にハギングフェイスからリリースされたフレームワーク「Transformers」。現在、先進的な自然言語処理モデルのほとんどは、Transformersをベースにしている。
PyTorch、Tensorflow、Jaxをベースにした、学習・推論どちらにも使えるPythonモジュールです。
ハギング・フェイス・トランスフォーマーは、ハギング・フェイス・ハブへのモデルのダウンロードやアップロードを非常に簡単に行うことができます。
Hugging Faceのトークナイザーライブラリは、高度な自然言語処理用トークナイザーのセットで、トランスフォーマーベースのモデルで使用されます。
トークン化とは、入力されたテキストを、AIモデルが符号化・処理できるような小さな単語(サブワード)に分割することです。
トークン化は細かいことのように聞こえるかもしれませんが、そうではありません。実は自然言語処理の重要な部分であり、正しいトークナイザーを使うことで、結果の品質やパフォーマンスに大きな差が出ます。
NLTKとは、Natural Language Toolkitの略で、自然言語ツールキットのことです。古くからあるPythonのフレームワークで、研究・教育に最適です。
NLTKはプロダクション指向のフレームワークではありませんが、自然言語処理を強化しようとするデータサイエンティストには最適です。
2021年、自然言語処理分野はかなり進化しています。現在、言語AIモデルを本番で使いたいと考える企業が増えていますが、2022年にはエコシステムが5年前とほとんど変わらなくなるというのは、これはこれで興味深いことです。
ライブラリやフレームワークはどんどん進化していますし、GPT-3のような大規模な言語モデルの作成は、新しい興味深い課題を提起しています。
2023年はどんな年になるのか、楽しみですね。
Julien Salinas