ムーアの法則の終焉にあたり、GPU やその他のハードウェア アクセラレータによってニューラル ネットワークのトレーニングが大幅に加速されました。ただし、ディスクの読み取りと書き込み、データの前処理など、トレーニング プロセスの初期段階はアクセラレータ上で実行されません。アクセラレータが改良され続けるにつれて、これらの初期段階で費やされる時間が徐々にトレーニング速度のボトルネックになるでしょう。 Google Brain チームは、「データ エコー」アルゴリズムを提案しました。これは、トレーニングの初期段階での総計算量を削減し、アクセラレータの上流の計算がトレーニング時間を占める場合にトレーニングを高速化します。 「データエコー」は、トレーニングの初期段階からの中間出力を再利用して、アイドル状態の計算スペースを活用します。著者らは、さまざまなタスク、さまざまなエコー数、さまざまなバッチ サイズでのデータ エコー アルゴリズムのパフォーマンスを調査しました。いずれの場合も、データ エコー アルゴリズムの少なくとも 1 つは、上流の計算を少なくしてモデルのベースライン パフォーマンスを達成できます。場合によっては、データエコーによってトレーニング速度が 4 倍に向上することもあります。 1. はじめに過去 10 年間で、ニューラル ネットワークをトレーニングできる速度は劇的に向上しました。研究者は、より大きなデータセットを使用してより大きなモデルをトレーニングし、新しいアイデアをより迅速に探索できるようになり、モデルのパフォーマンスが大幅に向上しました。ムーアの法則が破綻したことにより、汎用プロセッサの速度は要件を満たすことができなくなりましたが、特定のアクセラレータは特定の操作を最適化することで大幅な高速化を実現できます。たとえば、GPU と TPU は、ニューラル ネットワーク トレーニング アルゴリズムの中核となるコンポーネントである、高度に並列化された行列演算を最適化します。 ただし、ニューラル ネットワークをトレーニングするには、アクセラレータ上で実行される操作以上のものが必要です。トレーニング プログラムでは、トレーニング データを読み取って解凍し、シャッフルしてバッチ処理し、さらには変換や拡張を実行する必要があります。これらの手順では、CPU、ディスク、ネットワーク帯域幅、メモリ帯域幅など、複数のシステム コンポーネントを使用する必要があります。これらの一般的な操作には多くのコンポーネントが関係しており、専用のアクセラレーション ハードウェアを設計するのは現実的ではありません。同時に、アクセラレータの改善は汎用コンピューティングの改善をはるかに上回っており、アクセラレータ上で実行されるコードは全体のトレーニング時間のほんの一部しかかかりません。したがって、ニューラル ネットワークをより高速にトレーニングしたい場合は、(1) 非アクセラレータの動作を高速化する、または (2) 非アクセラレータに必要な作業量を減らすという 2 つの方法があります。オプション(1)では、大規模なエンジニアリング作業や技術的調査が必要になる可能性があり、システムの複雑さが増しすぎる可能性があります。そこで、我々はオプション(2)に焦点を当て、トレーニングの初期段階での作業負荷を軽減する方法を検討します。 ニューラル ネットワークのトレーニング プロセスは、計算のバッファリングとオーバーラップを必要とするデータ フローとして考えることができます。たとえば、図 1 は、ニューラル ネットワークをトレーニングするための標準的なアルゴリズムであるミニバッチ確率的勾配降下法 (SGD) とそのバリエーションの一般的なトレーニング フローを示しています。トレーニング プログラムは、まず入力データを読み取ってデコードし、次にデータをシャッフルし、一連の変換を適用してデータを拡張し、データをバッチに分割します。最後に、ネットワーク パラメータを繰り返し更新することで損失関数が削減されます。この段階は「SGD 更新」と呼ばれます。どのパイプライン ステージの出力もバッファリングできるため、異なるステージでの計算が重複し、最も遅いステージがトレーニング時間の大部分を占めることになります。 図1. 従来のニューラルネットワークトレーニングのフローチャート 図2 データループバック挿入ポイントの上流と下流のカバレッジ計算時間 この論文では、トレーニングの初期部分の時間を短縮することで、ニューラル ネットワークのトレーニングを高速化する方法を検討しています (図 2a)。著者らは、アイドル状態の計算能力を活用するために、トレーニング プロセスの最初の部分の出力を複数の SGD 更新に再利用します。このタイプのアルゴリズムは「データ エコー」と呼ばれ、各中間出力が使用される回数はエコー係数と呼ばれます。 データ エコー アルゴリズムは、トレーニング プロセスのどこか (SGD 更新の前) に繰り返しフェーズを挿入します。上流タスク (繰り返しフェーズ前) にかかる時間が下流タスク (繰り返しフェーズ後) にかかる時間を超える場合、アルゴリズムは下流のアイドル状態の計算能力を再利用し、モデルの SGD 更新レートを上げます (図 2b)。挿入ポイント、エコー係数、シャッフル度を変更することで、さまざまなデータ エコー アルゴリズムを取得できます。 要点
2. データフィードバックここで、tupstream はすべての上流ステージをループバックするのにかかる時間、tdownstream はすべての下流ステージをループバックするのにかかる時間、e はループバック係数です。 tupstream ≥ tdownstream と仮定すると、これがデータ エコーを使用する主な動機となります。 R = tupstream / tdownstream がアップストリームとダウンストリームの処理時間の比率を表す場合、1 つのアップストリーム ステップと e 個のダウンストリーム ステップを完了するのにかかる時間は、e から R までのすべてのループバック ファクターで同じになります。言い換えれば、追加の下流ステップは、アイドル状態の下流コンピューティング能力を使用するため、「無料」です。 データエコーを使用する場合、トレーニング時間の短縮は上流ステップと下流ステップ間の重みに依存します。一方、重複データの値は新しいデータよりも低い可能性があるため、データエコーでは、期待されるパフォーマンスを実現するために、より多くの下流の SGD 更新が必要になる場合があります。一方、下流の各ステップには上流ステップの 1/e (1 ではなく) の時間しかかかりません。下流ステップの数が e 未満だけ増加すると、上流ステップの合計数 (および合計トレーニング時間) が減少します。 R は、データ エコーの最大可能なスピードアップを表します。e=R で、複製データと新しいデータの値が同じ場合、最大のスピードアップを実現できます。 トレーニング中の各操作の実行にはある程度の時間がかかることを考慮すると、SGD の更新前にデータ エコーを適用すると R を最大限に活用できますが、これにより各エポックで同じデータ バッチが複数回使用されることになります。ただし、上流ステップと下流ステップの間でより有利なトレードオフを見つけたい場合は、エコー データを早めに挿入する方がよい方法です。 異なる挿入ポイントでデータがエコーします。 バッチ前またはバッチ後エコー:バッチ前エコーとは、データがバッチ レベルではなくサンプル レベルで繰り返されることを意味します。これにより、隣接するバッチが異なる可能性が高まりますが、バッチ内でサンプルを複製できなくなります。バッチ処理の前にエコーするアルゴリズムを例エコーと呼び、バッチ処理の後にエコーするアルゴリズムをバッチエコーと呼びます。 データ拡張の前または後のエコー:データ拡張の前にエコーすると、重複データを異なる方法で変換できるため、重複データを新しいデータに近づけることができます。 データ エコーのパフォーマンスは、エコー フェーズ後のシャッフルの程度によっても影響を受けます。該当する場合、著者はシャッフルをバッファとして使用します。バッファが大きいほど、シャッフルの度合いが高くなり、トレーニング アルゴリズムはトレーニング セット全体をメモリにロードできるようになります。 3. 実験著者らは、2 つの言語モデリング タスク、2 つの画像分類タスク、および 1 つのオブジェクト検出タスクでデータエコーの有効性を検証しました。言語モデリングタスクでは、著者らは LM1B および Common Crawl データセットで Transformer モデルをトレーニングしました。画像分類タスクでは、著者らは CIFAR-10 データセットで ResNet-32 モデルをトレーニングし、ImageNet データセットで ResNet-50 モデルをトレーニングしました。オブジェクト検出タスクでは、著者らは COCO データセットで SSD モデルをトレーニングしました。 この論文で研究されている主な問題は、データエコーがトレーニングを高速化できるかどうかです。著者らは、トレーニング目標に到達するために必要な「新鮮な」サンプルの数としてトレーニング時間を測定します。新しい例の数はトレーニング プロセスの上流ステップの数に比例するため、新しい例の数はエコー係数が r 以下である実際の時間にも比例します。 表1 タスクの概要 このタスクでは、著者らはデータエコーなしで最初の一連の実験を実行し、実用的な計算予算内で最高のパフォーマンスが得られるようにパラメータを調整しました。著者らは、最初の実験で観察された最良の値よりもわずかに悪い目標値を選択しました。ターゲットの小さな変更は結論に影響しません。表1は実験で使用したモデルと目標値をまとめたものです。 各実験において、著者らは学習率、運動量、および学習率を制御するその他のパラメータを個別に調整しました。著者らは準ランダム検索を使用してメタパラメータを調整しました。最も少ない新しいサンプルを使用して目標値に到達する試行が選択されます。著者らは、各検索空間でこのメタパラメータ検索を 5 回繰り返しました。実験結果のすべてのグラフは、これら 5 つの実験に必要な新しいサンプルの平均数を示しており、エラー バーは最小値と最大値を示しています。 実験では、標準的なニューラル ネットワーク トレーニング プロセスにデータ エコーを追加した場合の効果を評価します。著者らは、データ拡張前のサンプルエコー、拡張後のサンプルエコー、バッチエコーという 3 種類のデータエコーを実験しました。 3.1 データエコーはトレーニングに必要な新しいサンプルの数を減らすことができる 図 3 は、エコー係数が 2 の場合の表 1 のすべてのタスクのデータエコー効果を示しています。 1 つを除くすべてのケースにおいて、データ エコーでは、目標のパフォーマンスを達成するために必要な新しいサンプルが少なくなります。唯一の例外 (ResNet-50 でのバッチ エコー) では、ベースラインと同じ数の新しいサンプルが必要です。これは、データ エコーがメリットをもたらさない一方で、トレーニングに悪影響を及ぼさないことを示唆しています。トレーニングでエコーを挿入する時期が早ければ早いほど、必要な新しい例が少なくなります。例のエコーではバッチ エコーよりも必要な新しい例が少なくなり、データ拡張前のエコーでは拡張後のエコーよりも必要な新しい例が少なくなります。 ResNet-50 または SSD のデータエコーとバッチ正規化の間には、負の相互作用は観察されません。 図 3. エコー係数が 2 の場合、データ エコーによって、目標パフォーマンスを達成するために必要な新しいサンプルの数が減少するか、または変化しません。破線は、繰り返しサンプルが新しいサンプルと同じ値を持つ場合の予想値を示します。 3.2 データエコーはトレーニング時間を短縮できる 図4は、異なるループバック係数eに対応する異なるR値(上流処理時間と下流処理時間の比)のトレーニング時間の変化を示しています。 R = 1 の場合、データエコーによりトレーニング時間が増加するか、予想どおりに大幅に短縮されない可能性があります。 R>1の場合、e≤rの任意の設定でトレーニング時間を短縮でき、e=Rに設定するとトレーニング時間を最も短縮できます。 e>R に設定しても、LM1B データセットでの Transformer のトレーニング時間は改善されませんが、ImageNet での ResNet-50 の速度は向上します。これらの結果は、データエコーにより、特に e≤R の設定で、エコー係数 e=R の最適値付近でトレーニング時間を短縮できることを示唆しています。 図4 異なるR値がトレーニング時間の変化に与える影響 3.3 データエコーはエコー係数の合理的な上限内で有効である 図 5 は、Transformer が LM1B でトレーニングされている場合の、バックフィード係数が最大 16 の場合の影響を示しています。バッチ サイズが 1024 の場合、最大有効エコー係数は 4 ~ 8 です。この値を超えると、必要な新しいサンプルの数は、より小さいエコー係数に必要なサンプルの数よりも多くなります。エコー係数が増加すると、必要な新しいサンプルの数は最終的にベースラインを超えますが、エコー係数が 16 を超える場合でも、必要な新しいサンプルの数はベースラインよりもはるかに少なくなります。バッチ サイズが 4096 の場合、最大有効エコー係数は 16 よりもさらに大きくなり、バッチ サイズが大きいほど、より大きなエコー係数がサポートされることがわかります。 図 5. エコー係数を 16 に制限すると、サンプル エコーによって必要な新しいサンプルの数が削減されます。破線は、繰り返しサンプルが新しいサンプルと同じ値を持つ場合の予想値を示します。 3.4 バッチサイズの増加がデータエコーに与える影響 バッチ サイズが大きい場合、バッチ エコーのパフォーマンスは向上しますが、サンプル エコーではより多くのシャッフル操作が必要になる場合があります。図 6 は、エコー係数が 2 の場合の異なるバッチ サイズの効果を示しています。バッチ サイズが大きくなると、バッチ エコーのパフォーマンスはベースラインと比較して同じか向上します。この効果は、バッチ サイズがトレーニング セットのサイズに近づくにつれて、繰り返されるバッチが新しいバッチに近づくため、制限内でバッチ エコーによってエコー係数に必要な新しい例の数を減らす必要があるため、理にかなっています。一方、図 6 は、バッチ サイズが大きくなるにつれて、サンプル エコーのパフォーマンスがベースラインと比較して同じか低下することを示しています。これは、バッチ サイズが大きくなるにつれて、各バッチ内の繰り返しサンプルの割合も増加するため、実際には、バッチ サイズが大きい場合のサンプル エコーのパフォーマンスは、バッチ サイズが小さい場合のパフォーマンスに近くなる可能性があるためです。バッチ サイズが小さいと、必要な SGD 更新の回数が増える可能性があります。これが、図 6 のサンプル エコーの結果の原因である可能性があります。繰り返しサンプルのシャッフル量を増やすと(メモリの増加を犠牲にして)、各バッチ内の重複サンプルの確率が減り、より大きなバッチ サイズでのサンプル エコーのパフォーマンスが向上します。 図 6. バッチ サイズが大きくなるにつれて、バッチ エコーのパフォーマンスはベースラインと比較して同じか向上しますが、サンプル エコーのパフォーマンスはベースラインと比較して同じか低下します。破線は、繰り返しサンプルが新しいサンプルと同じ値を持つ場合の予想値を示します。 3.5 シャッフルレベルが高いほど、データリターンのパフォーマンスは向上する 図 7 は、データ エコーのシャッフル バッファ サイズを増やした場合の効果を示しています (メモリの増加を犠牲にして)。これまでのバッチエコー実験ではシャッフル操作は行われていませんが、繰り返しバッチをシャッフルするとバッチエコーのパフォーマンスが向上し、シャッフル回数が増えるほどパフォーマンスが向上します。同様に、ベースラインには役立たないにもかかわらず、シャッフル バッファ サイズを増やすとサンプル エコーのパフォーマンスが向上します。これは、セクション 3.4 で説明したように、シャッフルの数が多いほど、各データ バッチ内のサンプルが重複する可能性が低くなるためです。 図7 シャッフル度が高いほど、データリターン効果は向上する 3.6 データエコーはパフォーマンスに影響しない データを再利用すると最終的なパフォーマンスが低下するのではないかと心配する人もいるかもしれませんが、私たちの実験ではそのような動作は観察されませんでした。データエコーがソリューションの品質を低下させないことをさらに実証するために、著者らは LM1B で Transformer、ImageNet で Resnet-50 を使用して実験を行い、固定数の新しいサンプルで達成可能な最高のパフォーマンスを見つけました。図 8 は、データ エコーが各実験のトレーニング プロセスのどの時点でも最高のパフォーマンスを達成することを示しています。すべてのデータエコーバリアントでは、両方のタスクでベースラインと少なくとも同じパフォーマンスが達成されます。 図8: トレーニングにおける独立した試行が最良の結果を達成する 4. 結論データエコーは、ハードウェアの使用率を向上させるシンプルな戦略です。これまでの研究者たちは、重複データに対する SGD 更新は役に立たないか、有害でさえあるのではないかと懸念してきました。しかし、実験の各タスクには、ディスクから読み取る必要があるサンプルの数を減らすことができるデータ エコー方法が少なくとも 1 つあります。 データエコーは、トレーニングプロセスや追加の上流データ処理を最適化するための有効な代替手段です。トレーニングの高速化は、モデル アーキテクチャ、データセット、バッチ サイズ、および繰り返しデータのシャッフルの程度に依存しますが、エコー係数を上流と下流の処理時間の比率に設定すると、潜在的な高速化が最大化され、実験で良好な結果が得られています。 GPU や TPU などの専用アクセラレータの改善が汎用コンピューティングの改善を上回り続けるにつれて、データエコーや同様の戦略は、ニューラルネットワークトレーニングツールキットのますます重要な部分になります。 |
<<: このロボットはアリよりも小さく、電気なしで動くことができる
>>: 求職者の履歴書はどうすればAIやロボットによる審査に合格できるのでしょうか?
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
ダニング=クルーガー効果は重大なバイアスです。これは、能力の低い人が自分の軽率な決断に基づいて誤った...
[51CTO.com クイック翻訳]比較するためのより良い座標系がないため、人間がよく犯す間...
パルクールはエクストリームスポーツであり、複雑な環境におけるさまざまな障害物を素早く克服する必要があ...
1. 世界の人工知能チップ産業の企業概要の分析近年、さまざまな勢力が AIチップに注目しています。参...
[[397103]] 「AIコア技術の躍進は産業の高度化の原動力であり、オープンソースはAI発展の新...
最近、ドリームワークスの創設者ジェフリー・カッツェンバーグ氏は、生成AIの技術がメディアとエンターテ...
翻訳者 |陳俊レビュー | Chonglouご存知のとおり、データセットはおそらく機械学習プロジェク...
インテリジェント オートメーションは、業界がまだビジネスに統合していない、かなり新しい概念です。この...
農業用ロボットは、一般的に、農産物を操作対象とし、ある程度の人間の知覚と行動能力を持ち、さまざまな高...
OpenAI の GPT-4V と Google の最新の Gemini マルチモーダル大規模言語モ...