比較分析:Ravenプロトコルと従来の方法

Raven Protocolが他のディープラーニング配信方法およびフレームワークとどのように差別化されているか。

Raven Protocolは、周囲の限られたリソースの可用性、あらゆるタイプのビジネスモデルのアクセス可能な持続可能なアーキテクチャの構築を認識して構築されました。具体的には、人工知能と機械学習の力を活用したい個人や企業向けです。要点を説明すると、ディープラーニングは最も高度でまだほとんど未知の形式のマシンラーニングであり、多くの人が適用することに不安を抱いています。

ディープニューラルネットワークは、画像認識、自然言語処理、音声認識、コンピュータービジョンの新しいゲートウェイを開きました。ディープラーニングは、大量のデータで「存続」し、それらのデータから100万個のパラメーターを抽出して、構造とパターンを識別します。言うまでもなく、これは計算集約的なプロセスになります。計算のパフォーマンスを最適化し、DNNのトレーニングプロセスを高速化するために、さまざまな実験が行われています。そして、これらの実験では、分散トレーニングとネットワークの並列化という2つの顕著な最適化が行われました。これにより、モデルのトレーニングに要する時間が大幅に(約40倍)短縮されます。さらに、社内のCPU-GPU計算能力が利用できるため、これまでのところ驚くべき結果が得られています。

しかし、GPUの可用性のように、または複数のGPUを必要とする非常に巨大な要件のように、満たすのが難しい非可用性または計算要求を考慮してください。これには、DLトレーニングを最適化する革新的な方法が必要です。

従来の方法には、分散システムを使用して、その要求を部分的に解消するデータおよびモデルの並列処理が含まれます。

データ並列処理

図1.0従来の分散方法におけるデータ並列性

単一のマシンにデータを含めることはできず、より高速なトレーニングを実現するために、分散トレーニングではデータ並列化が求められています。したがって、データは小さなチャンクに分割され、異なるマシンで利用されます(図1.0を参照)。このため、モデルはそれらのシステムで複製されます。これらのモデルレプリカは、データシャード(Bn)を使用して個別にトレーニングされ、その後、重みがパラメーター(/マスター)サーバーで照合されて、最終モデルが取得されます。この方法では、実行全体に多くの遅延が含まれることが証明されました。

モデルの並列化

研究者は、イントラネット上でモデルアーキテクチャを分割することにより、データ並列性の制限を克服するためのさらに別の方法を考え出していました。この分散方法はモデル並列化と呼ばれ、データセットがシステムまたはストレージに保持され、アーキテクチャ分割がトレーニングされる準備が整っているマシン間でアクセスできます。

図1.1。従来の分布法におけるモデル並列性

ただし、この方法を使用しても、トレーニングに参加する各システムには、高度なGPUなどの高度なコンピューティングリソースを装備する必要があります。そのため、スケーラビリティの面で独自の制限があり、これがボトルネックとなり、ネットワークに遅延が発生します(図1.1を参照)。

Ravenの分散トレーニング

Raven Protocolは、ブロックチェーン環境内で、Compute Powerの共有ネットワークを使用した深層学習モデルの分散トレーニングを使用します。個人や企業がリソースを集中的に使用するDLトレーニングを実行するための十分な計算能力の経済的な供給が不足しているため、喜んで一般の人々から計算リソースを収集するという概念が生まれました。

Ravenは、データとモデルの両方の並列化アプローチを採用して、異なる分散モデルを形成します

これは、基本的には、ポケットに入れたスマートフォンや机の上のPCのような低いソースからの計算能力のクラウドソーシングです。これはブロックチェーン上に設定されるため、追加のセキュリティと匿名性を提供すると同時に、トレーニングをインターネット経由で複数のデバイスに分散します。また、これは貢献者、およびこのようなDLトレーニングからの一定の収入源の形でエコシステムを前進させ成長させているパートナーに新しい収益機会をもたらします。

したがって、Ravenプロトコルの当初の目的に忠実であり、DNNのトレーニングを最適化および高速化することが議題に含まれていました。そして、私たちはこの問題に対する代替ソリューションを考え出しました。

動的グラフ計算

すべてのフレームワークはテンソル上で動作し、有向非循環グラフとして計算グラフ上に構築されます。 Tensorflow(Eager Execution以前)を含む現在および人気のあるディープラーニングフレームワークのほとんどでは、計算グラフは本質的に静的です。ただし、PyTorchのようなフレームワークは動的であり、研究者や開発者が創造性と想像力をいじるより多くのオプションを提供します。

静的計算グラフと動的計算グラフの主な違いは、前者ではモデルの最適化が事前設定されており、データがプレースホルダーのテンソルに置き換わることです。一方、後者では、ネットワーク内のノードはプレースホルダーテンソルを必要とせずに実行されます。動的計算は、トレーニング中にテンソルの形状が変化する言語モデリングのような場合に非常に際立った利点を保持します。動的グラフの利点は同時実行性であり、貢献者の追加または削除を処理するのに十分堅牢であり、Ravenトレーニング全体を持続可能にします。

したがって、Ravenは、両方のアプローチで、レイテンシとスケーラビリティの問題を排除できます。したがって、モデルレプリケーションへの追加の依存関係を取り除くことで、より深いニューラルネットワークとそれらのより大きなデータセットのトレーニングを配布します。データも小さなスニペットに分割されます。

実際、モデルはマスターノードでそのままであり、負担の大きい部分は、貢献者のネットワーク上でデータサブセットの最も小さなスニペットに分散されます。ノード/コントリビューターで発生する計算が終了した後、結果の勾配はマスターノードに送り返されます。

複雑なモデルの複数のレプリカを作成するよりも、計算がマシンからマシンへ簡単に渡されるため、これにより大きな違いが生じます。

AIをすべての人にとって簡単でアクセスしやすいものにするために、AIコミュニティの小さなセクションが直面している大規模な闘争を、群衆の大多数は未だに忘れています。これは、AIがここにあり、まだ推測できないような形で私たちの生活の一部になるという認識から生じています。通常のAI企業またはAIをシステムに実装しようとしている企業は、AIで生活を改善するための新しい方法を提供しようと努力していますが、自分のアイデアを完全に探求するために足踏み状態に陥っています。 Ravenは、こうした個人や企業のセットがAIの可能性を経済的に完全に活用することを支援することを目指しています。