AI分野におけるNVIDIA NeMoフレームワークの包括的な応用と利点の概要

AI分野におけるNVIDIA NeMoフレームワークの包括的な応用と利点の概要

1. NeMoフレームワークの紹介

NVIDIA NeMo は、PyTorch と PyTorch Lightning をベースにしたオープンソースのトレーニング フレームワークであり、ソース コードは GitHub で完全に公開されています。 NeMo の主な目標は、AI 開発者が会話型 AI モデルを迅速に構築し、関連アプリケーションを開発できるようにすることです。

NeMo ツールキットには、主に ASR、NLP、TTS の 3 つの領域のモデルと機能が含まれています。私たちはこれら 3 つのモジュールの機能を抽出し、PyTorch フレームワークで優れた機能改善を実現し、NeMo のコア部分に統合しました。

  • ネモコア

NeMo Core モジュールは、ASR、NLP、TTS などのアプリケーション向けの汎用的で便利かつ使いやすい構築方法を提供し、AI 開発者がモデルを迅速に構築およびトレーニングできるようにします。モデル構築、分散トレーニング、チェックポイントの保存、トレーニング プロセスに関連するトレーニング パラメータの設定など、すべてが NeMo Core モジュールに統合されています。

  • ネモコレクション

NeMo Core の基本設計に基づいて、会話型 AI の 3 つの方向 (ASR、NLP、TTS) のモデルとトレーニング機能を統合しました。これらのコレクションは NeMo コレクションと呼ばれます。各コレクションには、特定の分野に関連するモジュールとモデルが含まれています。

  • ネモメガトロン

さまざまな分野のコレクションに加えて、NeMo は NLP 分野の大規模モデルのトレーニングも特にサポートしています。以前、NVIDIA には Megatron LM と呼ばれる人気の大規模モデル トレーニング フレームワークがありました。その後、大規模モデルの並列トレーニングに関連するテクノロジを NeMo、つまり NeMo Megatron モジュールに移行しました。これにより、NeMo で大規模なモデル関連のトレーニングを実行するのがより便利になります。

  • GPUの効率的な使用

NeMo は、音声 AI 関連のモデルとトレーニング プロセスをサポートするだけでなく、トレーニング プロセス全体を通じて NVIDIA GPU を最適化します。このように、NeMo をトレーニングに使用すると、NVIDIA GPU 上で効率的にトレーニングを実行できるため、モデル全体のトレーニング時間が大幅に短縮されます。

NeMo はオープンソースのツールキットです。NeMo の開発ドキュメントとコードは GitHub で直接確認できます。以上がNeMoの概要です。次に、NeMoにおけるASRおよびTTSモデルのトレーニングプロセスを紹介します。

2. NeMoを使用してASRとTTSタスクを処理する

1. ASRトレーニング

NeMo の主な開発目標の 1 つは、ASR トレーニングを非常に簡単にすることです。主に3つのステップがあります。

最初のステップはデータセットを準備することです。 ASR トレーニングには通常、大量のオーディオ データが含まれるため、ユーザーは関連するデータセットを準備し、NeMo 形式に準拠したデータセット マニフェスト ファイルを提供するだけで済みます。このマニフェスト ファイルでは、ユーザーは各データのオーディオ ファイル パスと対応するテキストを指定する必要があります。この jsonl 形式のデータセット ファイルを使用すると、ユーザーは NeMo の構成ファイルを通じてトレーニング プロセスで関連する構成パラメータを指定できます。

上図の緑色のボックスは、NeMo で使用される設定ファイルの例を示しています。主に、トレーニング、検証、テスト データ セット、バッチ サイズ、オプティマイザー、GPU の数、トレーニング時間、データ精度などのパラメータと、チェックポイントの保存場所と方法を指定する必要があります。これらは通常、トレーニング中に指定する必要があるパラメーターです。

データセットの jsonl ファイルと対応する設定ファイルを準備したら、NeMo で ASR トレーニングを実行できます。 NeMo のサンプル フォルダーには、音声テキスト変換用の CTC モデル トレーニング スクリプトなどの ASR トレーニング スクリプトが用意されています。コマンドラインからこのスクリプトを実行し、対応する構成ファイルを構成するだけです。

一般的に、NeMo での ASR トレーニングは非常に簡単です。対応するトレーニング スクリプトは用意されています。データセットと構成ファイルを構成するだけで済みます。

NeMo では、音声に関して、直接使用できる豊富な ASR モデルのトレーニング例が提供されているだけでなく、ASR や音声関連のタスク用の他のトレーニング スクリプトも多数用意されているため、音声事前トレーニング、VAD 検出、音声翻訳、音声分類など、さまざまな音声処理タスクに誰でも簡単に NeMo を使用できます。 ASR トレーニング プロセスと同様に、NeMo サンプル フォルダーで対応する音声処理タスクのトレーニング スクリプトを見つけ、データセットを準備し、構成ファイルを設定するだけで、音声タスクのトレーニングを開始できます。

NeMo は、ASR やその他の音声処理タスク用の既成のトレーニング スクリプトを提供するだけでなく、事前トレーニング済みの ASR モデルのサポートも追加して、ASR やその他の音声タスクの開発をさらに容易にします。

これにより、事前トレーニング済みの ASR モデルを NeMo に直接ロードして、さらに微調整したり、場合によっては推論アプリケーションに使用したりできるようになります。これらの事前トレーニング済みモデルは、NVIDIA GPU Cloud に保存されます。ユーザーは、NVIDIA GPU Cloud Web サイトでアカウントを登録し、NeMo でこれらのモデルをダウンロードして使用することができます。 NVIDIA は、ユーザーに多くの事前トレーニング済みの ASR モデルを提供しています。

  • 英語、フランス語、イタリア語、スペイン語、中国語、ドイツ語など、複数の言語をカバーしています。
  • さまざまなモデル構造: Fastconformer、Squeezeformer、一部の CTC、Transducer、さまざまな損失関数など、業界で一般的なさまざまな ASR モデル構造をカバーします。
  • 事前トレーニング済みの音声タスク: ASR モデルに加えて、NVIDIA は NGC 上の他の音声タスク (音声分類タスク、話者認識タスクなど) 用の事前トレーニング済みのチェックポイントもユーザーに提供しており、ユーザーはこれを直接ダウンロードして使用できます。

NVIDIA が提供するこれらのオープンソース ASR モデルは NeMo で直接使用でき、いずれも優れた音声認識結果を示します。

この写真は、最新の HuggingFace Audio Open ASR Leaderboard の結果を示しています。

この表から、上位の ASR モデルのいくつかは NVIDIA のものであることがわかります。これらのモデルは、Fastconformer、Conformer、CTC、Transducer など、さまざまな構造と損失関数を使用しており、モデルの多様性を表しています。

モデル構造と損失関数に関係なく、これらのモデルは、平均単語エラー率 (WER) とリアルタイム率 (RTF) を含め、リーダーボードで非常に優れたパフォーマンスを実現します。したがって、誰でも NeMo フレームワークを使用し、NVIDIA の NGC からこれらの事前トレーニング済みの ASR モデルをダウンロードし、NeMo でさらに微調整や推論アプリケーションを実行することができます。

NeMo は、一般的な Conformer や最新の Fastconformer、Squeezeformer などのモデル構造など、業界の最新の ASR モデルの一部をサポートしています。NeMo には、ダウンロード可能な既成のモデル構成と対応する事前トレーニング済みのチェックポイントが用意されています。

デコーダーと損失関数に関しては、NeMo は CTC、RNNT、Transduser などの一般的なアルゴリズムを実装し、CTC と RNN トランスデューサーの混合の損失計算も含まれています。さらに、NeMo は従来の CTC のさまざまなバリアント実装を提案しており、その中にはストリーミング音声認識に適しており、認識精度とストリーミング認識効果を向上させることができるものもあります。

NeMo は、NVIDIA の最新の ASR 研究結果もサポートします。最新の研究結果を2つ紹介します。

1 つ目は、マルチブランク トランスデューサ アルゴリズムです。従来のトランスデューサ アルゴリズムと比較して、複数のブランクを表すことができる新しいシンボルが導入されています。このシンボルは、音声の複数のフレーム内のブランク フレームを表すことができます。この表現により、推論中の計算速度が大幅に向上し、複数のテスト セットでの認識精度が向上します。

もう 1 つは、トークンと期間トランスデューサー アルゴリズムです。これは、従来の RNN トランスデューサーを改良した方法で、各フレームのトークンと期間を同時に予測できます。この方法により、トランスデューサのデコード速度が向上し、追加の継続時間情報を通じてより正確な認識精度が提供されます。

ASR に関するこれら 2 つの新しい NVIDIA 研究成果にご興味がある方は、これら 2 つの成果を詳しくお読みいただけます。また、対応するコード実装も NeMo でご覧いただけます。 NVIDIA のこれら 2 つの最新の ASR 研究結果を NeMo でぜひお試しください。

NeMo は、ASR トレーニング プロセスで使用できるツールもいくつか提供しています。注目すべきツールの 1 つが Speech Data Explorer です。

Speech Data Explorer の主な機能は、ユーザーが音声トレーニング データを分析し、理解できるようにすることです。データ セット全体のテキスト情報を統計的に分析して、オーディオ スペクトルのヒストグラムを生成できます。また、オーディオ データセットは、ビューの形状やスペクトル情報の観察など、詳細に分析することができ、ユーザーがオーディオの実際の音を聞くことができるオーディオ プレーヤーが付属しています。同時にトレーニング結果も分析できます。モデルのトレーニングに NeMo を使用する場合、トレーニング プロセス中にいくつかのテスト結果ファイルが生成されることがあります。これらの結果ファイルは Speech Data Explorer を通じてインポートすることもできるため、ユーザーは認識エラー率の計算、認識結果の表示など、モデル トレーニング プロセスの結果を簡単に分析できます。

2. TTSタスクのサポート

通常、TTS モデルのトレーニングには、上図の右側の図に示すように、テキスト正規化モジュール、G2P モジュール (テキストを発音単位または音素に変換する)、スペクトル生成および波形生成モジュールなど、複数のモジュールが含まれます。

NeMo は、TTS トレーニング パイプライン全体の各モジュールに対して優れたサポートを提供します。

  • モデル: NeMo は、FastPitch、RAD-TTS モデル、Tacotron2 モデルなど、業界で一般的なスペクトル生成モデルをサポートしています。
  • ボコーダー: NeMo は、Hifi-GAIN モデル、UnivNet モデル、WaveGlow モデルをサポートしています。
  • オープンソース モデル: NeMo には、他の開発者によって提供されたオープンソース モデル実装もいくつかあります。その中には、スペクトル生成モデルとボコーダー モデルの共同トレーニングを組み合わせて、より優れたオーディオ生成結果を実現するエンドツーエンド モデル VITS が含まれます。
  • 事前トレーニング済みモデル: NeMo は、NVIDIA の NGC のユーザー向けに事前トレーニング済みのチェックポイントもいくつか用意しています。ユーザーはそれらを NeMo に直接ロードし、推論やさらなる調整に使用できます。

3. NeMoのNLPとLLMのサポート

NeMo は、さまざまな NLP トレーニング タスクと LLM トレーニングをサポートしています。特に、大規模モデルのトレーニングに関する機能は今年大きく改善されました。

サポートされている NLP タスクには、機械翻訳、句読点モデリング、タグ分類、意図とスロットの識別が含まれます。

大規模モデルのトレーニングのサポート: 効率的なモデル並列手法、分散最適化の実装、混合精度などの機能を導入し、GPU での大規模モデルのトレーニングの効率を向上させ、微調整機能をサポートします。

1. 3Dモデルの並列トレーニング

大規模モデルを効率的にトレーニングするために、3D モデル並列アプローチを提供します。

いわゆる 3D は、テンソル並列性、パイプライン並列性、シーケンス並列性という 3 つの異なる次元での並列性を指します。これらのさまざまなモデル並列処理アプローチにより、大規模なモデルを複数の GPU にロードできるようになり、より大規模な LLM トレーニングが可能になります。この効率的で特別に最適化された実装により、NeMo は数百または数千の GPU を使用して大規模なモデルをトレーニングする場合でも、効率的なトレーニング効率を維持できます。

大規模モデルのトレーニングに NeMo を使用すると、トレーニング効率がほぼ線形に並列効率が向上します。

大規模なモデルをトレーニングする場合、トレーニングに必要な時間は使用される GPU の数に反比例します。より小さな 5B モデルをトレーニングする場合でも、最大の 175B モデルをトレーニングする場合でも、数百の GPU でのモデル並列処理効率は非常に高く、トレーニング時間は基本的に使用される GPU の数に反比例します。つまり、GPU の数が 2 倍になると、NeMo はトレーニング時間を半分に短縮できます。これは、大規模モデルをトレーニングするための NeMo の効率的なアルゴリズムと実装を示しています。

2. NeMoで事前学習された大規模モデル

NeMo では、事前トレーニング済みの大規模モデルが提供されており、ユーザーはいくつかのシナリオでこれらの事前トレーニング済みの大規模モデルのチェックポイントをさらに使用したり、微調整したりすることができます。

現在、NeMo では、Nemotron 8B モデルのさまざまなバージョンを含む、さまざまな段階のトレーニング方法で生成された一連の 8B 大規模モデルがオープンソース化されています。これらのバージョンには、事前トレーニングから派生した基本モデル、指示に従って微調整された SFT モデル、強化学習を使用して人間の好みに合わせたバージョンが含まれます。さらに、NVIDIA が提案する SteerLM アライメント方式を使用してアライメントされたバージョンもあります。追加の最適化のためにモデルの QA バージョンも提供しています。

この一連の 80 億個のチェックポイントは、約 3.5T トークンを含む大規模データでトレーニングされています。トレーニング データは、約 53 の人間の言語と約 37 のプログラミング言語をカバーしています。これらの 8B モデルは、NVIDIA の NGC Web サイトまたは HuggingFace からダウンロードできます。

NeMo には、「Llama2-70B-SteerLM-Chat」と呼ばれるオープンソース モデルも提供されています。このモデルはオープンソースの Llama2-70B モデルをベースにしており、その上で NVIDIA が提案した SteerLM アライメント手法を採用し、さらに人間からのフィードバックに基づいて微調整されています。

SteerLM のアライメントを微調整することで、元の Llama2-70B CHAT モデルよりも高いスコアを達成し、MT-Bench リーダーボードで優れたパフォーマンスを発揮することがわかりました。このモデルもオープンソース化されており、HuggingFace で入手できます。ここからダウンロードして NeMo にロードして使用したり、NVIDIA の AI Playground Web サイトで直接オンラインで試したりすることができます。

SteerLM アライメント アルゴリズムの詳細については、対応する論文を参照してください。 SteerLM は強化学習よりもシンプルで使いやすいアライメント手法です。

3. NeMo の微調整方法

NeMo には、大規模なモデルを微調整するための多くの方法も用意されています。現在、業界では、大規模モデルを微調整する方法は、単純なものから複雑なものまで、おおまかに次の 4 つのカテゴリに分類できます。

  • 最も簡単なのは、少数ショットまたはシステム メッセージ プロンプト エンジニアリングを直接実行することです。
  • さらに先には、プロンプトで追加の学習を実行するプロンプト チューニングまたは PTuning という方法があります。
  • より複雑な方法は、モデルに追加された重みのごく一部だけを微調整するパラメータ効率的な微調整法です。さまざまなアダプタ メソッドや LoRA は、このタイプの微調整に属します。
  • さらに、より良い結果を得るために、SFT、強化学習など、モデル全体のすべてのパラメータが微調整されます。

単純なものから複雑なものまで、これらの大規模モデルの微調整方法は、現在 NeMo で十分にサポートされています。NeMo にオープンソースの事前トレーニング済みチェックポイントをロードし、特定のシナリオに基づいてさらに微調整を行うことができます。

4. NeMoアライナー

上記は、NeMo で直接実行できる比較的単純な微調整方法ですが、より複雑な大規模モデルの微調整方法については、NeMo で追加のサポートが提供され、NeMo Aligner に統合されています。

NeMo Aligner では、強化学習を含む、より複雑なフルパラメータモデルの微調整方法が実装されています。 NeMo Aligner を使用して、数百または数千の GPU 上で比較的効率的な微調整計算効率を確保できる、効率的だがやや複雑なトレーニング モデルを設計しました。テンソル並列処理やパイプライン並列処理など、事前トレーニング中に試したいくつかのモデル並列処理方法と組み合わせて、NeMo Aligner を通じてこれらの方法を適切にサポートします。

現在、NeMo Aligner はまだ初期バージョンであり、微調整機能は引き続き追加されます。大規模なモデルを微調整するための、より高度で複雑な方法を試すには、NeMo Aligner GitHub リポジトリにアクセスしてください。

5. エンドツーエンドの大規模モデル開発 - NeMo フレームワーク

前述の NeMo と NeMo Aligner はどちらも、大規模なモデルのトレーニングのサポートに重点を置いています。さらによく考えてみると、トレーニング プロセス全体には、データ処理、モデル推論の監視など、いくつかの前処理と後処理の手順が実際に含まれています。 NVIDIA は、大規模なモデルをエンドツーエンドで開発するのに役立つツールを提供します。これらの機能は現在、NeMo フレームワークに統合されています。

NeMo フレームワークには、モデルのトレーニングだけでなく、事前トレーニング中のデータ処理、トレーニング後の推論の高速化、デプロイメント中のモデル出力の監視なども含まれます。 NeMo と比較すると、NeMo Framework は、大規模モデル開発のプロセス全体に対して、より包括的かつ完全なサポートを提供します。試用版を申し込むには、NeMo Framework の Web サイトにアクセスしてください。 NeMo フレームワークには、大規模モデルのサポートに加えて、Stable Diffusion、Vision Transformer などの一般的なマルチモーダル モデルのサポートも含まれています。現在、マルチモーダル性のサポートはまだ早期アクセス段階です。

IV. 結論

NVIDIA の NeMo フレームワークについて簡単にまとめてみましょう。

NVIDIA NeMo は、音声 AI と大規模モデルのトレーニングに重点を置いた PyTorch ベースのオープンソース フレームワークです。 NeMo フレームワークは、ユーザーが会話型 AI モデルを迅速に構築、トレーニング、微調整できるようにするための複数の機能を提供します。 NeMo では、自動音声認識 (ASR) とテキスト音声合成 (TTS) 向けに、複数の一般的なモデルと対応するアルゴリズムのサポートが提供されています。さらに、ユーザーがダウンロードして直接使用できるように、事前にトレーニングされたチェックポイントが多数提供されています。

NeMo フレームワークは、大規模モデルの大規模なトレーニングのサポートに重点を置いています。 NeMo Megatron を使用すると、数百または数千の GPU でも大規模モデルのトレーニング プロセスを効率的に実行できます。さらに、NVIDIA は 8B のサイズの大規模なモデル シリーズをオープンソース化しました。同時に、オープンソースの Llama2-70B モデル用の追加の調整バージョンが提供されており、ユーザーはこれを NVIDIA GPU Cloud (NGC) または HuggingFace からダウンロードして試すことができます。さらに、NeMo Aligner ツールキットとエンドツーエンドの大規模モデルトレーニングフレームワーク NeMo Framework も提供されます。

以上が今回のシェアの内容です、皆様ありがとうございました。

5. 質疑応答

Q1: デバイスとエポックのサイズをより適切に設定するにはどうすればよいですか?

A1: デバイスは主に、トレーニング中に使用される GPU の数を設定するために使用されます。通常、トレーニング プロセスを高速化するには、利用可能なすべての GPU を活用します。エポックの選択は、データセットのサイズとモデルの規模によって大きく左右される可能性があります。通常、最初に大きなエポック値を設定し、トレーニング中にトレーニング損失または検証精度を監視して調整します。モデルのトレーニングが収束する傾向がある場合、トレーニングを早期に終了できます。

Q2: NeMo をインストールして使用する方法は何ですか?

A2: NeMoは現在GitHub上でオープンソースとして公開されているので、GitHub上で直接ソースコードをダウンロードして使用することができます。さらに、Python パッケージも提供されており、pip install NeMo を実行して NeMo パッケージを直接インストールできます。さらに、NVIDIA は、NGC から直接ダウンロードできる、事前構成された Docker イメージもいくつか提供しており、より便利に使用できます。

Q3: コンピュータの構成要件は何ですか?

A3: NeMo は主に Pytorch と Pytorch Lightning の上位レベルのカプセル化の基盤フレームワークに基づいているため、一般的な NVIDIA GPU でサポートできます。他に過度な要求はありません。

Q4: ASR フレームワークと TTS フレームワークはどちらも新しいデータで微調整できますが、モデル フレームワークを変更することはできますか?

A4: ASR でも TTS でも、NVIDIA が提供する事前トレーニング済みのモデルを使用して、新しいデータで微調整することができます。さらに、モデル フレームワークに変更を加えたい場合もサポートされていますが、プロセスが少し複雑になる可能性があります。モデル フレームワークを変更するには、コード レベルでモデル構造を手動で変更する必要がある場合があります。

Q5: NeMo は現在、すべての言語の NLP モデルに適用できますか? おおよそのカバー率はどのくらいですか?

A5: パーセンテージを正確に計算するのは簡単ではないかもしれませんが、NeMo フレームワークは業界の主要なクラウド モデルをサポートしています。音声分野では、さまざまな Conformer モデルと、CTC やトランスデューサーなどのさまざまな損失関数がサポートされています。自然言語処理 (NLP) の場合、NeMo フレームワークは、音声翻訳、BERT、Transformer などの従来の NLP モデルにも優れたサポートを提供します。

Q6: LLM モデルトレーニングにおけるベースライン実験用のパイプラインはありますか?

A6: NeMo フレームワークを参照できます。これには、データ処理からその後のトレーニングまでの大規模モデル用の比較的完全なベースライン パイプラインが含まれており、達成された損失、トレーニング効率などはすべて NeMo フレームワークで取得できます。

<<:  誰もがエンドツーエンドに取り組んでいますが、エンドツーエンドの自動運転の基礎は何でしょうか?

>>:  Java 開発者のための機械学習の事例

ブログ    
ブログ    
ブログ    

推薦する

...

変化が起こっています!機械学習は人類をどこへ導くのでしょうか?

[[187530]]人工知能 (AI) がどのように未来を予測し、職場を変え、さらには雇用を生み出...

機械学習とHPCの火花は少し異なる

従来、高性能コンピューティング (HPC) は、数値解析を利用して物理方程式を解き、素粒子から銀河に...

重力波検出からRNAシークエンシングまで、AIが科学的発見を加速させる方法

[[433235]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...

CCTV、春節に初めてバーチャル司会者サ・ベイニン氏を迎える

AIブロックチェーン企業の技術が中国の重要な国家夜会で正式に使用された。 2019年のオンライン春節...

AIデコードと同じくらい魔法的? AIによるカラーリングはブラックテクノロジーなのか、それとも単なるジョークなのか?

画像処理の分野では、AIブラシがますます目立つようになってきています。以前、AIロスレス画像拡大、A...

AIはすでにLeetCodeを実行できる

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

自動運転ブームがAIチップ戦争に火をつけ、爆発したのはテスラだけではない

以前から大きく騒がれ、メディアもその信憑性を証明する手がかりを繰り返し探していた「テスラの自社開発A...

人工知能は今や人間の感情を認識できるほど賢くなった

AIに「感情」を与える時が来たのかもしれない[[236486]]今後のビジネスモデルはますます「感情...

...

人工知能、機械学習、ディープラーニングをどのように区別するのでしょうか?

この記事は、LDV Partners のパートナーであるシリコンバレーの投資家レイク・ダイ氏によるも...

2019年のAI開発の7つの分野

[[257419]] 2018 年は人工知能 (AI) の主流採用をさらに促進し、より多くの機能の提...

脳コンピューターインターフェースにおける重要な進歩!国内チームが「フルスペクトル中国語解読」に成功:トップ3の正解率は100%に迫る

今年8月、ネイチャー誌に立て続けに掲載された2つの論文は、脳コンピューターインターフェースが言語回復...

AIGC時代のビデオ普及モデル、復旦チームらが分野初のレビューを発表

AI 生成コンテンツは、現在の人工知能分野で最もホットなトピックの 1 つとなっており、この分野の最...

自動運転車は歩行者に意図を伝えることができるか?

広い道路を安全に横断するかどうかを判断するには、歩行者と運転者の間の社会的合図とコミュニケーションが...