元のリンク: DLion (acm.org)
ABS
スマートフォンの普及により、エッジデバイスはますます多くのユーザーデータを取得しますが、分散トレーニングのためにすべてのユーザーデータをデータセンターに収集することは非現実的であり、これは主にユーザーのプライバシーに関係します。
同時に、収集されたデータがユーザーのコンピューター上でローカルに直接計算される場合、モデルが大きすぎると、エッジ デバイスのパフォーマンスによりトレーニングが不十分になります。
上記 2 つの理由により、著者はマイクロクラウド コンピューティングに基づく分散アーキテクチャを提案したいと考えています。
1 イントロ
エッジ デバイスの普及により大量のデータが生成され、従来の方法でデータ センターを構築すると、次の 2 つの問題に直面します。
- 移動する必要があるデータが多すぎると、それを実現するのが困難になります。
- ユーザーのプライバシー問題に関しては、ユーザーは自分のデータを開示することに消極的です。
プライバシー問題を解決するために提案されたフェデレーテッド ラーニング (Federated Learning) は、エッジ デバイス上で直接トレーニングされます。ただし、モデルが大きすぎると、エッジ デバイスで処理する必要があるデータ量が少なくても、依然として時間がかかります。長い間。(比較的大きなモデルには数百メガバイトのパラメータ サイズが含まれる場合があります。これは、各サンプルに数百メガバイトのメモリが必要であることを意味します。これは、現在のスマートフォンでは 8GB、6GB、8GB、6GB に相当します。8 GB 、6 GBのメモリは非常に難しく、これには携帯電話とコンピュータの計算能力の差は考慮されていません)
マイクロクラウドはエッジデバイスに比べて性能がはるかに優れていると同時に、マイクロクラウドを利用することでローカルエリアのデータしかアップロードできないため、ユーザーのプライバシーもある程度保護されます。
図 1 図\ 1図1 は、マイクロ クラウドを使用した分散コンピューティングの基本アーキテクチャです。
コンピューティングにマイクロ クラウドを使用するには、次の 2 つの大きな課題があります。
- マイクロクラウドのパフォーマンスの違いと動的な変動性: 異なる地域のマイクロクラウドのパフォーマンスは大きく異なる可能性がありますが、同時に、マイクロクラウド内のデバイスは他のサービスを処理するように配置されているため、同じマイクロクラウドのパフォーマンスも異なります。クラウドも時間の経過とともに動的に変化します。
- ネットワークリソースの違いとダイナミクス:同じマイクロクラウド内のLAN LAN通信するにはLANが必要ですが、異なるマイクロ クラウドはWAN WANを経由する必要がありますワンワン_ _ __WANリソースは非常に限られており、同時に、マイクロ クラウド内のノード数が増加するにつれて LAN リソースは希釈され、リソースは動的に変化します。
ほとんどの分散システムはリソースの違いやダイナミクスを考慮していないため、トレーニング時間の増加につながります。
DL イオンこの記事で提案するDLionD Lionは主に、リモートおよび動的な特性を持つ分散システムのコンピューティング問題を解決するように設計されています。
DLイオン DLionD Lion は、上記の問題を解決するために 3 つの主要なテクノロジーを使用します。
- 重み付けされた動的バッチ処理 重み付けされた動的バッチ処理重み付け動的バッチ処理:このテクノロジーは、コンピューティングパフォーマンスの不均一性の問題を解決するために使用 されます。
- リンクごとの優先勾配交換 リンクごとの優先勾配交換あたり_−link p r i or i t i ze d i n t e x chang e :このテクノロジーは、ネットワークの遠隔性の 問題を解決するために使用されます。
- 直接的な知識の伝達 直接的な知識の伝達直接知識伝達: この手法は、 モデルの精度を向上させるために使用されます。
この記事の主な貢献:
- 遠隔性とダイナミクスの問題を解決できる分散システムが提案されています。
- 設計されたシステムは簡潔かつ柔軟で、変更が容易で、さまざまな分散トレーニングに適用できます。
- 環境テンサー フロー TensorFlowCPUをサポートしながらシステムのプロトタイプを確立したTensor FlowCPU和 G P U GPU GPUのバージョン。
2 背景と動機
2.1 分散型深層学習
このセクションでは、勾配降下法を使用した機械学習と、勾配降下法を使用した分散機械学習について紹介します。
機械学習: 勾配を計算してモデルパラメータを更新します。
分散機械学習: 各作業ノードは独自の勾配を計算し、要約後にパラメーターを更新します。
2.2 分散型深層学習システム
TensorFlowなどのパラメータ サーバーを使用した分散機械学習を実装するためのフレームワークTensorFlowテンサーフロー和MXNet MXNet _ _ _MXN e tどちらもPS (パラメータ サーバー) PS (パラメータ\ サーバー)PS (パラメータサーバー)の 実装。_ _ _ _ _ _ _
パラメータサーバーなしで分散コンピューティングを実装する機械学習フレームワーク: A ko 、 H op 、 P rague Ako、Hop、Prague私は、_ホップ、_プラハほか_ _ _ _
図 2 図\ 2図2に、 この 2 つの違いを示します。 ( a ) (a)( a )はパラメータを持つサーバー、(b) (b)( b )はパラメータなしのサーバー (分散型)
これらのフレームワークは、分散機械学習のプロセスを簡素化します。
2.3 マイクロクラウドでの DL 学習
全体的な構造は図 3 のとおりです。 図\ 3図3に示すように、マイクロクラウド内部はLAN で接続され、クラウド間はWANで接続されています。
2.4 課題と動機
ここで紹介するのは第1節第1節です2 つの課題についてはセクション 1 で述べましたが、ここで は繰り返しません。
3 私たちのアプローチ: DLion
3.1 設計目標と概要
このフレームワークは、中央パラメータ サーバーなしで設計されています。
設計目標:
- データの並列性を最大化する: データの並列性を最大化すると、モデルのトレーニングに必要な時間を短縮できますが、同時にトレーニングの精度の損失を最小限に抑える必要があります。
- 通信時間の短縮:ノード間の通信時間を短縮しながら、モデルの精度損失を可能な限り低減する必要があります。
- モデルの精度の向上: ノード間でデータを共有することで悪影響を軽減します。
上記の 3 つの目標は、先に提案された 3 つの重要な技術点に順番に対応しています。図 4 図\ 4図4は、 これら 3 つの主要な技術ポイントの使用時間とワークフロー全体を示しています。
3.2 加重動的バッチ処理
まず 2 つの概念を紹介します。
- LBS LBSL BS:ローカルバッチサイズ ローカル\バッチ\サイズローカルバッチサイズ計算に参加する 各ワーカー ノードのローカルバッチサイズ。
- GBS GBSGBS : 1 ラウンドのトレーニングに対する分散システム全体のグローバル バッチ サイズ。すべてのノードのLBS LBS。L BS合計。
従来の分散システム アーキテクチャでは、各動作ノードが所有するLBS LBSに注意してください。LBSも同様です。
これは通常、 LBS LBSを追加することで実現できます。L BSと増加するノードの数GBS GBSGBS、ここではLBS ごとの LBSGBS GBSを変更するL BSGBSの場合、稼働ノード数はnn固定ん。
GBS GBSを追加GBS には次のような利点と欠点があります。
- メリット: 計算量が増えた分、学習にかかる時間が短縮されます。
- 欠点: GBS GBSの増加GBS は通常、最終的なトレーニングの精度の低下につながります。
GBS GBSを増やすGBS は、精度をあまり失わずにトレーニング時間を可能な限り短縮できる適切な値を見つける必要があります。
以前の記事では、モデルの最終収束精度は必ずしも学習率を制御することで向上させる必要はなく、GBS GBS を定期的に変更することによっても向上させることができると指摘しました。GBSが実装されており、この記事はこれにインスピレーションを受けて、モデルの精度をほとんど失わずに計算時間を短縮できる自動調整可能なコントローラーを設計しました。
各稼働ノードの計算パフォーマンスが同じで変化しない場合、各ノードのLBSL BSはGBS n \frac {GBS}{n}に設定されますnGBS合理的です。しかし、実際には、各稼働ノードのパフォーマンスは同じではなく、各左側ノードのパフォーマンスが変動する可能性があり、この場合でもLBS LBSが使用される場合、L BSが等しいように設定されている場合、最初に完了するノードは最後に完了するノードを待つ必要があるため、モデルの計算に必要な時間が増加します。
加重動的バッチ処理 加重\動的\バッチ処理重み付け動的バッチング 方法には、次の3つのコンポーネントがあります。_
-
GBS コントローラ GBS\ コントローラGBSコントローラー : GBSを自動制御GBS _ _GBSの増加または減少。変更されたコンポーネントの設計のインスピレーションは、次の 2 つの発見から得られました:トレーニングの開始時にGBS GBSGBS は精度の大幅な低下を引き起こすため、GBS GBSGBSによって引き起こされる精度の低下は比較的低く、安定しています (図 5 を参照してください。 図\ 5図5 、横軸はエポックを表しますep oc hincrease GBSGBS _GBS、縦軸は最終モデルの精度を表します)。これら 2 つの発見により、作成者はこのコンポーネントのワークフローを 2 つの段階に分割することになりました。ウォームアップ - ウォームアップワーム_ _ _−up和speed −スピードアップスピード_ _ _−アップ。 _ 第 1 段階:GBS t + 1 = GBS t + C ウォームアップ GBS_{t+1}=GBS_t + C_{warmup}GB St + 1=GB Sた+Cウォームアップ_ _ _ _、合計データ量の1% 1\%に増加すると増加は1%で停止します(増加しすぎると精度が低下するのを防ぐため)。第 2 段階:GBS t + 1 = GBS t × C スピードアップ GBS_{t+1}=GBS_t\times C_{speedup}GB St + 1=GB Sた×Cスピードアップ_ _ _ _、全体のデータ量の10% 10\%に増加すると10%で成長が停止(既存の研究では、GBS GBSGBSが大きすぎます)、パラメータCCCを設定する必要があります。
-
LBS コントローラ LBS\ コントローラL BSコントローラー: GBS GBSの確認_ _ _GBSの後、このコンポーネントは各動作ノードのLBS。LBS 。 LBSLBSLBSの設計コンセプトは非常にシンプルです。LBS LBSは強力なコンピューティング能力を備えたノードです。L BSは大きくなり、データ量は計算能力の割合に基づいて割り当てられます。(これにより、すべてのノードの計算時間が確実に近くなります)、図 6 図\ 6図6は、トレーニングの 進行に伴う各ノードのLBS LBSを示していますL BSの調整LBS LBSL BSの具体的な計算式はRCP RCPRCP代表相対計算能力 相対\ 計算\ 能力相対計算能力(相対計算能力 ): LBS i = GBSRCP i ∑ j = 1 n RCP j LBS_i = GBS \ frac { RCP_i } { \ sum_
{j=1}^{n}RCP_j}LBS _ _私は=GBS∑j = 1んRCP _jRCP _私は -
加重モデル更新モジュール 加重\モデル\更新\モジュールw e i g h t e d mod e l u p d a t e module e :このモジュールはパラメータの集約、ノード jjを担当します。jがこの質問の勾配を計算するとgtj g_t^jgtj、ノードkkk はノードjjj以降の集計プロセスは次のように更新されます。
wt + 1 k = wtk − η 1 n ∑ j = 1 ndbjkgtjdbjk = LBS j LBS kw^k_{t+1}=w^k_t-\eta \frac 1 n\ sum_{j=1}^{n}db^k_jg^j_t\\ db^k_j=\frac {LBS_j}{LBS_k}wt + 1k=wtk−のn1j = 1∑んdb _jkgtjdb _jk=LBS _ _kLBS _ _j
3.3 リンクごとの優先勾配交換
データ品質保証モジュール データ\品質\保証\モジュールデータ品質保証モジュール:このモジュールは、 Max N Max \ Nを使用して、更新する重要な勾配を選択する責任があります。Max a x N アルゴリズム このアルゴリズムは、絶対値が最大絶対値以上である勾配のN % N\%を選択します。N %の勾配が更新されます。
図 7 図\ 7図7 はさまざま なNNを示していますモデルの精度に対するNの影響。
伝送速度保証モジュール 伝送速度保証モジュール伝送検査モジュール:このモジュールは、最大N Max \ Nを自動的に決定するために使用されます。 __M a x N アルゴリズムのNNN._ _ この決定方法は、ネットワーク環境がボトルネックにならずに、NNN、このモジュールではノードiii指向ノードjjjが送信できる勾配サイズは、次の式で評価されます。
BW _ netj I ter _ comi BW _ netj は、2 つのノードの直接利用可能な帯域幅を表します。 I ter _ comi は、ノード i が単位時間あたりに実行できる反復回数を表します。 \ frac {BW\_{net_j}}{Iter\_com_i}\\ BW\_{net_j} は 2 つのノードで直接利用可能な帯域幅を表します \\ Iter\_com_i はノード i が単位時間あたりに実行できる反復回数を表しますイーターコム_ _ _ _私はBW_ネット_ _ _ _jBW_ネット_ _ _ _j2 つのノード間で直接利用可能な帯域幅を表します。イーターコム_ _ _ _私はノードiが単位時間あたりに実行できる反復回数を表します
。上記の式の核心は、計算時間と通信時間を等しくすることです。
図 8 図\ 8図8はノード1 1です1からノード3 33とノード5 55.送信されるグラデーション サイズは、反復回数に応じて自動的に調整されます。
3.4 直接的な知識の伝達
上記で紹介した方法ではパラメータサーバーを使用せず、非同期方式を採用しているため、トレーニングに参加する各ノードが持つパラメータが異なる場合があります。
この部分の方法は、パラメータを定期的に交換することです。つまり、最良のトレーニング効果を持つノードを選択し、他のノードはこのノードからパラメータを取得します。
この方法を採用する場合、いくつかの問題を解決する必要があります。
- トレーニングはいつ行われますか。
- すべてのノードに送信する必要がありますか (これは比較的大きなオーバーヘッドです)。
- 受け取ったパラメータを集計するか、直接置き換えるか、平均するか?
上記3つの疑問を解決するために、著者はいくつかの実験を行った。
図9 図\9図9 に実験 結果を示します。
- (a)異なる時点でのDKT DKTを表します。DK Tトレーニングが完了する (同じ精度に達する) のに必要な時間、初期 DKT 初期\ DKTe a r l y DK T は 初期トレーニング、後期 DKT 後期\ DKTl a t e DK T は トレーニングの後期段階の DKT を表し、著者は初期段階の DKT が DKT であるDK T はより高い精度を達成できます。上記DKT 100iter DKT\ 100iterDK T 100 i terは 、 100 100ごとを表します。100ラウンドに1回実行されますが、これ以上頻繁に実行すると、大量のネットワークリソースが必要となるため、トレーニング時間が増加することがわかります。間隔が長すぎると、収束速度が低下します。適切なパラメーターの相互作用がないため、トレーニングに時間がかかります。
- (b) は、異なるノードに送信した結果を表します。未使用、毎回最も影響の悪いノードに送信、毎回すべてのノードに送信します。最悪のノードに送信するだけで精度が大幅に向上することがわかります。ただし、精度を高めるために、後の実装でもすべてのノードに送信することが選択されています。
- デフォルト値: wlocal = ( 1 − λ ) wlocal + λ wbest w_{local}=(1-\lambda)w_{local}+\lambda w_{best}wl oc a l=( 1−l ) wl oc a l+λw _そうです_、λ \lambdaを使用λが増加すると、最適な重みの割合が増加します。これは、 λ = 0.75 \lambda=0.75でわかります。私=最良の効果は0.75の場合です。
4 実装
ここではDL イオン DLionについて説明します。D Lionはどのように実装されているのでしょうか? 興味があれば、原文を読むことができます。
4.1 主要なコンポーネントと操作
ここでは、いくつかの主要なコンポーネントを紹介しますが、これらについては以前に紹介したため、ここでは繰り返しません。
4.2 汎用かつ柔軟な DLion
DLion DLionについて説明します。DLion はさまざまなアルゴリズムに簡単に適用できます。
5 評価
5.1 方法論
5.1.1 アプリケーションとデータセット
わずかに。
5.1.2 実験用プラットフォーム
わずかに。
表 2 表\ 2表2は、Amazon の異なるリージョン 間の帯域幅のテストです。
5.1.3 パフォーマンス指標
- モデルが特定の時点で達成できる精度。
- 一定の精度を達成するのに必要な時間。
- 収束に必要な時間。
5.1.4 比較システム
以前のいくつかの方法と比較してください。
- ベースライン ベースラインベースではすべての勾配が交換されるわけではなく、最初の非同期SGD SGDSG D (これは非同期SGD SGDであると推定されます)同期の代わりのSG D は、最後の実験の結果に基づいています)。
- 私、私Ako : 過去に出版された論文の精読がご覧いただけます - Ako 論文の精読
- ガイア ガイアガイア; _
- ホップホップホップ; _
5.1.5 実験のセットアップ
表 3 表\ 3表3 は各環境の詳細です。計算内の数字は各ノードのコア数を表し、ネットワーク内の数字は各ノードの帯域幅を表します。
エミュレーションなし画像内のエミュレーションなしエミュレーションがないということは、各 ノードが同じコンピューティング リソースを持っていることを意味する必要があります。
5.2 評価結果
5.2.1 システムの異質性
このセクションでは、異なるネットワーク リソースとコンピューティング リソースを持つノードで構成されるシステム上の状況を評価します。
図 11 図\ 11図11 は、さまざまな構成で 各固定時間メソッドが達成できる精度を示しています。
ヘテロ SYS A ヘテロ\ SYS\ AHe tero S Y S A は、強力なコンピューティング能力と強力なネットワーク リソースを備えたノードであり、 He tero SYS B Hetero\ SYS\ BHe tero S Y S B は、強力なコンピューティング リソースと弱いネットワーク リソースを持つノードです。
5.2.2 異種 GPU クラスターにおけるシステムの堅牢性
この部分で使用されるモデルはより大きく、交換する必要がある生成されるデータの量も多くなります ( GPUではGPUでトレーニングするため、より大きなモデルが選択されました)、つまり、ネットワークが明らかなボトルネックになりました。
図 12 図\ 12図12も、一定のトレーニング時間後に達成され た精度です。
5.2.3 異種コンピューティングリソース
このセクションでは、ネットワーク リソースは同じだがコンピューティング リソースが異なる状況を評価します。
図 13 図\ 13図13 は、各ノードのネットワーク リソースが同じ環境で、固定時刻に 各方法で達成できる精度を示しています。
図 14 図\ 14図14 は、 特定の精度を達成するのに必要な時間です。ここで、 DL ion − no − DBWU DLion-no- DBWUDライオン_ _ _−いや_−D B W U は動的バッチ選択を使用しないことを表します。DL ion − no − WU DLion-no-WUDライオン_ _ _−いや_−W U は加重集計更新がないことを表します。
5.2.4 異種ネットワークリソース
このセクションでは、ネットワーク リソースは異なるが、コンピューティング リソースは同じである状況を評価します。
図 15 図\ 15図15 は、さまざまなシステムで固定時間で 達成できる精度を示しています。
図 16 図\ 16図16は Max− 10 Max - 10マックス_ _−10(即時ベースライン)基本増加M ax − 10Max- 10マックス_ _−10 ) 他の方法との比較 (固定時間):
5.2.5 モデル精度の偏差
図 17 図\ 17図17 は、モデル精度 の標準偏差を示しています。
5.2.6 動的リソースの変更
環境のこの部分のコンピューティング リソースとネットワーク リソースは動的に変化します。
図 18 図\ 18図18は 実験結果です。
図 19 図\ 19図19 は、トレーニング プロセス中の各ノードのローカル バッチ サイズの変更プロセスを示しています。
図 20 図\ 20図20 は、トレーニングプロセス中に更新された勾配サイズ を選択する変更プロセスを示しています。
5.2.7 モデルの精度向上への効果
このセクションでは、モデルの最終的な収束精度と収束時間に焦点を当てます。
図 21 図\ 21図21は、 各手法の最終的な収束精度と収束時間を示しています。
6 関連作品
関連する作業は次のとおりです。
- 分散型深層学習。
- リソースを意識した分散ディープラーニング。
- 連合学習。
- エッジデバイス向けのディープラーニング推論。
- 並列コンピューティング。
- 地理的分布に基づいたデータ分析。
7 結論
マイクロクラウドに適した分散機械学習アーキテクチャを提案する。主に次の 3 つの側面を通じて速度が向上します。
- 重み付けされた動的バッチ処理 重み付けされた動的バッチ処理重み付けされた動的バッチ処理 :データの並列性を最大化します。
- リンクごとの優先勾配交換 リンクごとの優先勾配交換あたり_−リンクプライオリティグレードエクスチェンジ:通信コストを削減します。_ _ _ _ _ _ _ _ _ _ _ _ _ _
- 直接的な知識の伝達 直接的な知識の伝達直接的な知識の伝達 :モデルの精度を向上させます。_ _ _
TensorF low TensorFlowも使用テンサーフロービルドDライオンDライオン_ _Dライオンのプロトタイプ。_ _ 現在のアーキテクチャと比較して、速度と精度が大幅に向上しました。