DUICUO

EasyNLP オープンソース | 中国語 NLP と大規模モデルの導入: EasyNLP には必要なものがすべて揃っています。

著者 |リン・ザイ、セン・ミン、シオン・シー

I. はじめに

NLP分野におけるBERT、Megatron、GPT-3などの事前学習済みモデルの目覚ましい成果により、ますます多くのチームが超大規模学習に投資しており、学習済みモデルの規模は数億から数千億、さらには数兆へと拡大しています。しかし、これらの超大規模モデルを現実世界のシナリオに適用するには、依然としていくつかの課題があります。第一に、モデルパラメータの数が多すぎるため、学習と推論に時間がかかりすぎ、導入コストが非常に高くなります。第二に、多くの現実世界のシナリオではデータが不足しているため、小規模サンプルのシナリオで大規模モデルを適用することが依然として制限されており、小規模サンプルのシナリオで事前学習済みモデルの一般化能力を向上させることが依然として課題となっています。これらの問題に対処するため、PAIチームは大規模モデルの迅速かつ効率的な導入を促進するEasyNLP中国語NLPアルゴリズムフレームワークを立ち上げました。

EasyNLPの技術フレームワークはどのように設計されているのでしょうか?今後の計画は?今日は詳しく見ていきましょう。

II. EasyNLP入門

EasyNLPは、PAIアルゴリズムチームがPyTorchをベースに開発した、使いやすく機能豊富な中国語NLPアルゴリズムフレームワークです。一般的に使用されている中国語の事前学習済みモデルと大規模モデル展開技術をサポートし、トレーニングから展開までワンストップのNLP開発エクスペリエンスを提供します。EasyNLPは、NLPアプリケーションAppZooや事前学習済みのModelZooなど、ユーザーがNLPモデルを開発するための簡潔なインターフェースを提供するとともに、超大規模な事前学習済みモデルをビジネスアプリケーションに効率的に展開するための技術サポートも提供しています。さらに、PAIチームの通信最適化とリソーススケジューリングに関する豊富な経験を活かし、EasyNLPフレームワークはユーザーに大規模で堅牢なトレーニング機能を提供し、PAI-DLC、PAI-DSW、PAI-Designer、PAI-EASなどのPAI製品とシームレスに統合し、トレーニングから展開まで効率的で包括的なエクスペリエンスを実現します。

EasyNLPは、アリババ内の10以上の事業部門で既にビジネスをサポートしています。また、Alibaba Cloud上でNLPソリューションとModelHubモデルを提供し、ユーザーのビジネス課題解決を支援するとともに、ユーザー定義モデルサービスを通じて自社開発モデルの作成を容易にしています。社内での改良を経て、EasyNLPをオープンソースコミュニティに公開することで、より多くのNLPアルゴリズム開発者や研究者に貢献し、コミュニティと協力してNLP技術、特に中国NLPの急速な発展とビジネス応用を促進したいと考えています。

EasyNLPは包括的で使いやすいNLPツールキットです[1]

EasyNLP の主な機能は次のとおりです。

  • 使いやすくオープンソースとの互換性:EasyNLPは、一般的に使用されている中国語NLPデータとモデルをサポートしており、ユーザーによる中国語NLP技術の評価を容易にします。最先端のNLPアルゴリズムを呼び出すためのシンプルで使いやすいPAIコマンドラインインターフェースを提供するだけでなく、EasyNLPはAppZooやModelZooなどの特定のカスタムモジュールも抽象化することで、NLPアプリケーションの導入障壁を下げています。ModelZooには、一般的な事前学習済みモデルに加え、知識ベースの事前学習済みモデルを含むPAI開発モデルも含まれています。EasyNLPはHuggingface/Transformersモデルとシームレスに統合でき、EasyTransferモデルと互換性があり、フレームワークに組み込まれた分散学習フレームワーク(Torch-Acceratorベース)を活用することで学習効率を向上させることができます。
  • 大規模モデル・スモールショット展開技術:EasyNLPフレームワークは、PETやP-Tuningといった従来のFew-Shot学習アルゴリズムを統合し、大規模モデルに基づくスモールショットデータ最適化を実現することで、大規模モデルと小規模なトレーニングセット間のミスマッチ問題を解決します。さらに、PAIチームは、従来のFew-Shot学習アルゴリズムとContrastive Learningの考え方を組み合わせ、「Contrastive Prompt Tuning」と呼ばれるソリューションを提案しました。このソリューションは、新たなパラメータを追加したり、テンプレートやラベルを手動で設定したりする必要はありません。このソリューションは、FewCLUE Few-Shot学習リーダーボードで1位を獲得し、Finetuneと比較して10%以上の改善を示しました。
  • 大規模モデルの知識蒸留技術:パラメータが大きいため、大規模モデルの導入が困難であることを踏まえ、EasyNLPは知識蒸留機能を提供し、大規模モデルをオンライン導入サービスのニーズを満たす効率的な小規模モデルへと蒸留します。また、EasyNLPはMetaKDアルゴリズムも提供し、メタ知識蒸留をサポートすることで生徒モデルのパフォーマンスを向上させ、多くの領域において教師モデルと同等の結果を実現します。さらに、EasyNLPはデータ拡張をサポートし、事前学習済みモデルを用いて対象領域のデータを拡張することで、知識蒸留のパフォーマンスを効果的に向上させます。

III. EasyNLPフレームワークの特徴

1. 全体的なアーキテクチャ

図に示すように、EasyNLP アーキテクチャは主に次のコア モジュールで構成されています。

  • 基本モジュール: 事前トレーニング済みモデル ライブラリ ModelZoo を提供し、BERT、MacBERT、WOBERT など、一般的に使用される中国の事前トレーニング済みモデルをサポートします。また、ユーザー定義モデルを容易にするために一般的に使用される NN モジュールも提供します。
  • アプリケーション層:AppZooは、テキスト分類やテキストマッチングといった一般的なNLPアプリケーションをサポートしています。EasyNLPは、Few-Shot LearningやKnowledge Distillationといった事前学習済みモデルのデプロイツールをサポートし、大規模モデルの迅速なデプロイを支援します。また、PAIチームが開発した複数のアルゴリズムも統合しています。
  • NLP アプリケーションとソリューション: ユーザーがビジネス上の問題を解決できるように、複数の NLP ソリューションと ModelHub モデルを提供します。
  • ツール層: ローカル サービスの起動、PAI-DLC、PAI-DSW、PAI-Designer、PAI-EAS などの Alibaba Cloud 製品への展開と呼び出しをサポートし、トレーニングから展開まで、ユーザーに効率的な完全なエクスペリエンスを提供します。

2.大規模モデルの知識蒸留技術

BERTのような事前学習済み言語モデルが様々なタスクにおいて最先端(SOTA)性能を達成したことで、大規模な事前学習済みモデルはNLP学習パイプラインの重要な構成要素となっています。しかし、これらのモデルはパラメータ数が過剰で、学習と推論の速度が遅いため、高いQPSが求められるオンラインシナリオに深刻な影響を与え、導入コストも非常に高くなります。EasyNLPフレームワークは、従来のデータ拡張アルゴリズムと知識蒸留アルゴリズムを統合することで、小規模な学習済みモデルでも、対応するタスクにおいて大規模モデルと同等の性能を実現できます。

既存の知識蒸留研究のほとんどは、同一ドメイン内のモデルの蒸留に焦点を当てており、対象となる蒸留タスクにおけるクロスドメインモデルの性能向上については考慮されていませんでした。そこで、PAIチームはメタ知識蒸留アルゴリズムMetaKD(Meta Knowledge Distillation)を提案しました。このアルゴリズムは、転移可能なクロスドメイン知識を学習し、蒸留段階でこの転移可能な知識に対して追加の蒸留処理を行います。MetaKDアルゴリズムは、学習済みの生徒モデルの該当ドメインにおける性能を大幅に向上させ、教師モデルの性能に近づきます。このアルゴリズムのコアフレームワークを以下に示します。

MetaKDアルゴリズムは2つの段階で構成されています。第1段階はメタ教師学習で、アルゴリズムは複数のドメインにまたがるトレーニングデータからメタ教師モデルを協調的に学習します。各ドメインのサンプルのプロトタイプスコアを計算し、ドメイン間の代表性が高いサンプルに大きな重みを与えます。第2段階はメタ蒸留で、メタ教師モデルを特定のドメインの学習タスクに選択的に蒸留します。メタ教師モデルはすべてのドメインで正確な予測を達成できない可能性があるため、ドメイン専門知識の重みを追加で導入します。これにより、メタ教師モデルは最も信頼度の高い知識のみを学生モデルに転送し、学生モデルがメタ教師モデルに過剰適合するのを防ぎます。

下の図は、MNLIの5つのドメインデータセットにおけるMetaKDアルゴリズムのクロスタスク蒸留性能を示しています。この結果は、元のBERTモデルと比較して、MetaKDによって蒸留されたBERT-Smallモデルは、モデル精度の平均低下をわずか1.5%に抑えながら、パラメータ数を87%削減し、導入時の負担を大幅に軽減していることを示しています。

現在、MetaKD アルゴリズムも EasyNLP フレームワークに統合され、オープンソース化されています。

知識蒸留の実践の詳細な説明については[2]を参照してください。

3.大規模モデル少数ショット学習技術

事前学習済み言語モデルの大規模化に伴い、自然言語理解などのタスクにおけるパフォーマンスは継続的に向上しています。しかし、これらのモデルはパラメータ空間が広く、下流タスクで直接微調整するには、良好な汎化を実現するために大量のトレーニングデータが必要です。実世界のビジネスシナリオ、特に垂直分野や特定の業界においては、トレーニングサンプル不足の問題が広く蔓延しており、下流タスクにおけるこれらのモデルの精度に重大な影響を与えています。この問題に対処するため、EasyNLPフレームワークは、PETやP-Tuningなどの従来の少数ショット学習アルゴリズムを統合し、事前学習済み言語モデルに基づく少数ショットデータ最適化を実現することで、大規模モデルと小規模トレーニングセット間のミスマッチを解消します。

さらに、PAIチームは、従来の少数ショット学習アルゴリズムと対照学習原理を組み合わせ、新しいパラメータを追加したり、テンプレートやラベルを手動で設定したりすることなく、対照プロンプトチューニング(CP-Tuning)と呼ばれる手法を提案しました。このアルゴリズムのコアフレームワークを以下に示します。

上図に示すように、CP-Tuningアルゴリズムは、従来のアルゴリズムが「[MASK]」文字に対応する事前学習済みMLMヘッドの予測出力を分類に利用するという手法を放棄しています。代わりに、事前学習済みモデルを通過した後の「[MASK]」文字の連続表現を特徴量として使用する対照学習アプローチを採用しています。Few-shotタスクの学習フェーズでは、類似サンプルの特徴量のグループ内距離を最小化し、類似しないサンプルの特徴量のグループ間距離を最大化することを学習目標としています。図中の「[OMSK]」は分類に使用される「[MASK]」文字であり、その最適化された特徴量表現は「[EMB]」です。したがって、CP-Tuningアルゴリズムでは分類ラベルを定義する必要はありません。入力側では、入力テキストと「[OMSK]」に加えて、テンプレート文字「[PRO]」も使用します。従来のアルゴリズムとは異なり、CP-Tuningはテンプレートとラベルの対応関係を学習する必要がないため、「it is」のようなタスクに依存しないテンプレートで「[PRO]」を直接初期化します。モデルのトレーニング中、バックプロパゲーション中に「[PRO]」の表現は自動的に更新されます。さらに、CP-Tuningは入力テキストに[TMSK]と呼ばれるマスクを導入することで、補助的なMLMタスクを最適化し、少量学習シナリオにおけるモデルの汎化能力を向上させます。CP-Tuningアルゴリズムの損失関数は、以下の2つの部分で構成されています。

上図に示すように、2つの部分はそれぞれ、ペアワイズコストセンシティブ対比損失(PCCL)と補助的なMLM損失です。このアルゴリズムは、複数のGLUE Few-Shotデータセットで検証されました。このデータセットでは、トレーニングセットはクラスごとにラベル付きサンプル16個に制限されていました。以下の結果は、CP-Tuningが従来のFew-Shot学習アルゴリズムよりも優れており、標準的なFine-tuningアルゴリズムよりも10%以上精度が高いことを示しています。

現在、EasyNLP フレームワークには、独自に開発した CP-Tuning アルゴリズムに加えて、PET や P-tuning などのさまざまな従来の少数ショット学習アルゴリズムが統合されています。

小規模サンプル学習の実践の詳細については[3]を参照してください。

4.大規模モデルの実用化

以下に、小規模サンプルのシナリオに大規模な事前学習済みモデル(HFL/Macbert-Large-Zh)を展開し、パラメータを1/100に削減した小規模モデルに抽出する例を示します。図に示すように、小規模サンプルのシナリオにおける大規模モデル(3億パラメータ)の元の精度は83.8%ですが、小規模サンプル学習によって7%向上して90.6%になります。一方、同じシナリオでより小さなモデル(300万パラメータ)を実行した場合、精度はわずか54.4%ですが、71%(約17%の向上)まで向上します。推論時間は大規模モデルよりも10倍高速で、モデルパラメータの数は元の1/100になります。


モデル

パラメータ

開発セットメトリック(精度)

バッチ推論時間

標準微調整

hfl/macbert-large-zh

3億2500万

0.8375

0.54秒

標準微調整

アリババパイ/パイバートタイニーZH

300万

0.54375

0.06秒

知識の蒸留微調整

アリババパイ/パイバートタイニーZH

300万

0.7125

0.06秒

小さなサンプルの微調整

hfl/macbert-large-zh

3億2500万

0.90625

0.53秒

コードについては[4]を参照してください。

IV. 適用事例

EasyNLPは、アリババグループ内の10の事業部門にまたがる20以上の事業をサポートしています。PAI-DLC、PAI-DSW、PAI Designer、PAI-EASなどのPAI製品を通じて、トレーニングから導入まで、グループユーザーに効率的で包括的なエクスペリエンスを提供します。また、クラウド顧客のモデルのカスタマイズやビジネス問題の解決ニーズにも対応しています。パブリッククラウドユーザーの場合、初心者でもPAI-Designerコンポーネントを使用して簡単なパラメータ調整でNLPモデルを簡単にトレーニングできます。上級開発者はAppZooを使用してNLPモデルをトレーニングしたり、ModelZooを使用して事前トレーニング済みモデルを微調整したりできます。経験豊富な開発者向けには、豊富なAPIインターフェイスを提供し、フレームワークを使用してカスタマイズされたアルゴリズムを開発するユーザーをサポートします。ユーザーは、組み込みのトレーナーを使用してトレーニング効率を向上させたり、独自の新しいトレーナーを定義したりすることができます。

以下に典型的な例をいくつか挙げます。

  • PAIチームとDAMOアカデミーNLPチーム[5]は協力して、超大規模事前学習モデル(数千億パラメータ)の構築と展開を行い、独自開発の少数ショット学習アルゴリズムCP-TuningとモデルスパースアルゴリズムCAPを発表しました。その中で、独自開発のCP-TuningアルゴリズムはAliceMindプラットフォームに統合され、超大規模事前学習モデルの少数ショット学習を実現しました。少数ショットシナリオの場合、標準的なFine-tuneと比較して精度が10%以上向上しました。
  • PAIチームはDAMO Academyと協力し、FewCLUEのFew-shot Learningリーダーボードで1位を獲得しました。これは、Few-shot Learningタスクにおいて人間の精度を凌駕するものでした。一方、Alibabaの事業部門は、ToBカスタマーサービスシナリオのビジネスデータを用いて、EasyNLPフレームワーク内でFew-shot Learningアルゴリズムを学習し、ベースラインと比較してエンティティ認識精度を2%以上、属性認識精度を5%以上向上させました。
  • パブリッククラウドのお客様からテキスト分類に求められる高いQPS(1秒あたりのクエリ数)要件に対応するため、EasyNLPフレームワークの知識蒸留機能を活用しました。教師モデルとして事前学習済みモデル(3億パラメータ)を、生徒モデルとしてPAI-BERT中国語事前学習済みモデル(400万パラメータ)を使用し、元のモデルのパラメータの約1%で精度低下が10%未満の小規模モデルを蒸留して展開しました。これを基に、知識蒸留機能を統合することで、実際のビジネスシナリオにおいてより大規模なモデルを展開しやすくしました。
  • リスク管理シナリオでは、約1億件の中国語事前学習済みデータを収集し、EasyNLPに基づくPAI-BERT中国語モデルを事前学習しました。リスク管理データにおいて非常に良好な結果が得られ、精度と再現率が10%以上向上しました。これに基づき、パブリッククラウド上でテキストリスク管理ソリューション[6]もリリースしました。これは複数の顧客シナリオに導入され、良好な結果を達成しています。
  • UGCなどのユーザー生成コンテンツの継続的な出現に伴い、テキストからタグを抽出してきめ細かな分析を行う需要が絶えず高まっています。EasyNLP事前トレーニングに基づく中国語モデルを使用することで、ニュースデータの300以上のカテゴリのテキストタグ予測精度が80%を超えました。これに基づいて、テキストタグ予測、キーワード抽出、エンティティワード抽出機能を統合し、パブリッククラウド[7]上で一般的なテキストタグ付けソリューションを立ち上げ、複数の典型的な顧客シナリオに実装して、インテリジェントな推奨などのアプリケーションシナリオに役立てることに成功しました。

V. ロードマップ

  • 中国語CLUE/FewCLUEなどのEasyNLPに基づくベンチマーク
  • 知識事前トレーニング技術: 事前トレーニング済みモデルの常識と知識コンテンツの向上に特化した一連の知識事前トレーニング済みモデルがリリースされました。
  • 中国語の事前トレーニング済みモデル: 中国語の最先端 (SOTA) 事前トレーニング済みモデルをリリースし、中国語の事前トレーニングに対する技術的な障壁を下げます。
  • マルチモーダル事前トレーニング: 中国語向けのマルチモーダル事前トレーニング済みモデルのリリース。
  • 中国語データ収集および API インターフェース: 一般的に使用される中国語データを収集し、前処理およびトレーニング インターフェースを提供します。
  • 垂直ビジネス シナリオ向けの最先端 (SOTA) 中国モデル統合: 垂直ビジネス シナリオに最適な統合効果を持つ中国モデル。
  • リリースソリューションとPAIコンポーネント

プロジェクトのオープンソースアドレス: https://github.com/alibaba/EasyNLP

参考文献

[AAAI 22] DKPLM: 自然言語理解のための分解可能な知識強化型事前学習済み言語モデル。https://arxiv.org/abs/2112.01047

[ACL 2021] Meta-KD:ドメイン間の言語モデル圧縮のためのメタ知識蒸留フレームワーク。https://arxiv.org/abs/2012.01266

[arXiv] 対照的なプロンプトチューニングを用いたエンドツーエンドの少数ショット学習器による事前学習済み言語モデルの作成: https://arxiv.org/pdf/2204.00166

[AAAI 22] 密から疎へ: 事前学習済み言語モデルの圧縮を向上させるための対照的剪定。https://arxiv.org/abs/2112.07198

[EMNLP 2021] TransPrompt:少量テキスト分類のための自動転送可能なプロンプトフレームワークに向けて。https://aclanthology.org/2021.emnlp-main.221/

[CIKM 2021] EasyTransfer - NLPアプリケーション向けのシンプルでスケーラブルなディープラーニングプラットフォーム。https://github.com/alibaba/EasyTransfer

[1]https://github.com/alibaba/EasyNLP

[2]https://github.com/alibaba/EasyNLP/tree/master/examples/knowledge_distillation[3]https://github.com/alibaba/EasyNLP/tree/master/examples/ fewshot_learning[4]https://github.com/alibaba/EasyNLP/tree/master/examples/landing_large_ptms[5]ダルマアカデミーNLPチーム: https://github.com/alibaba/AliceMind

[6] テキストベースのリスク管理ソリューション: https://help.aliyun.com/document_detail/311210.html [7] 一般的なテキストタグ付けソリューション: https://help.aliyun.com/document_detail/403700.html