HPE Swarm Learning v2.1 までのハイライト

Posted on

前回の Swarm Learning の記事からだいぶ日数がたち、 アクティブに開発されている Swarm Learning には新しい機能が入ってきています。 その一部を紹介したいと思います。

管理 GUI ツール SLM-UI

Swarm Learning をインストールや、タスクの実行、実行したタスクのモニタリングができる Web UI が導入されました。

とくに学習中の各拠点でのメトリックの値の推移が見れるようになったり、 一括でログ収集が行えるようになったりと、ユーザー体験が向上されています。

SLM-UI

マージアルゴリズム 追加

Swarm Learning はデフォルトでは、加重平均によりモデルをマージします。

加重平均では、マージ対象のモデルを1つずつ集めることで、モデルサイズの2倍のメモリがあれば、 マージが行える、メモリ効率のよい手法です。

mean

これに、以下の2つが加わりました。

(適切な日本語訳が分からなかったので、そのまま書いていますが、、) なんのこっちゃ、ですよね。?

Weighted Coordinate Median

これは、モデルパラメータごとの中央値を算出します。 外れ値に対してロバストな手法です。

モデルパラメータは多次元配列のため、直接、分位関数を適用することができないため、 変換処理を経て、中央値を算出します。 そのため、モデルマージはよりメモリと実行時間を必要とします。

coordinate median

Weighted Geometric Median

これは、すべてのデータ点からの距離が最小となる値を求めます。 その方法は、確立されておらず、複数のアルゴリズムが存在しますが、 Swarm Learning では、Weiszfeld のアルゴリズムが利用されています。これは反復推定法です。

この手法は初期推定値を必要とし、アルゴリズムは次のラウンドのために新しい推定値を見つけていきます。 このプロセスはN回、または収束に達するまで繰り返されます。 Swarm Learningでは、収束を早めるために、全モデルパラメータの平均値が初期推定値として選択されています。

geometric median

メリット

新しい2つのマージ手法は、以下のようなときに、加重平均より良い結果を出すようです。

より詳しい情報は、こちらのホワイトペーパーをご参照ください。

Blockchain 永続化

Swarm Learning はリリース当初、Blockchain のネットワークを形成するSNノードがすべて落ちると、 学習の履歴などが消える状態でした。 それが、改善され、Docker の volume を SNノードにマウントすることで、 SNノードがすべてダウンしたとしても、Blockchainに記録されたデータを維持できるようになりました。

Reverse Proxy アーキテクチャ

Swarm Learning はコンポーネント間の通信のためにポートを開放する必要がありますが、 セキュリティを向上させるため、開放させるポートを減らすことができるようになりました。

各拠点にて、 Reverse Proxy サーバーをたて、DNSを使って、名前ベースで、トラフィックを 振り分けることで、開放するポートを減らします。 ただし、Blockchainのトラフィックだけは、この仕組みを利用することができません。

結果として、Reverse Proxyのポートと、Blockchainのポートのみを開放すれば、Swarm Learningを 利用できるようになりました。

Reverse Proxy

APLS コンテナ化

Swarm Learningはライセンス管理に APLS (AutoPass License Server)を使用しています。 リリース当初は、このAPLSをOSにインストールして利用する必要があり、 環境によって、APLS用に、OSを準備しないといけない状態でした。

それが、APLSがコンテナで提供されることとなり、Swarm Learningを動かせる環境があれば、 その環境で、APLSも動かせるようになりました。

まとめ

最近の Swarm Learning 目玉機能をご紹介しました。 Swarm Learning は引き続きアクティブな開発が続いていますので、今後のアップデートも乞うご期待です!

今後も Swarm Learning の記事はこちら(に追加されていく予定)です。

参照