Weibo ディープラーニング プラットフォームのアーキテクチャと実践

Weibo ディープラーニング プラットフォームのアーキテクチャと実践

人工ニューラル ネットワーク アルゴリズムの成熟と GPU コンピューティング能力の向上により、ディープラーニングは多くの分野で大きな進歩を遂げました。本記事では、Weibo のディープラーニング導入とディープラーニング プラットフォーム構築の経験、特に機械学習ワークフロー、コントロール センター、ディープラーニング モデル トレーニング クラスター、モデル オンライン予測サービスなどのコア部分の設計とアーキテクチャの経験を紹介します。 Weibo のディープラーニング プラットフォームは、ディープラーニング開発の効率とビジネスの反復速度を大幅に向上させ、ディープラーニング モデルの効果とビジネス成果を向上させました。

ディープラーニングプラットフォームの紹介

人工知能とディープラーニング

人工知能は機械に人間の知能を与えます。コンピュータの性能が上がると、反復作業や数学的計算においてすぐに人間を上回るようになりました。しかし、自然言語理解、画像認識、音声認識など、人間が直感ですぐに解決できる問題の中には、長い間コンピューターで解決することが難しいものもありました。人工ニューラル ネットワーク アルゴリズムの成熟と GPU コンピューティング能力の向上により、ディープラーニングもこれらの分野で大きな進歩を遂げ、人間を超えるまでに至っています。ディープラーニングは人工知能の範囲を大きく拡大しました。

ディープラーニングフレームワーク

ディープラーニング フレームワークは、ディープラーニングを実行するためのツールです。簡単に言えば、ディープラーニング フレームワークは一連の構成要素であり、各構成要素はモデルまたはアルゴリズムです。開発者は、簡単な設計と組み立てを通じて独自のソリューションを得ることができます。ディープラーニング フレームワークの出現により、ディープラーニングの敷居は下がりました。開発者は複雑なニューラル ネットワーク コードを書く必要がありません。独自のデータ セットに基づくシンプルな構成で、既存のモデルを使用してパラメータをトレーニングするだけで済みます。

TensorFlow、Caffe、MXNet は、ディープラーニング向けの 3 つの主流のオープンソース フレームワークです。TensorFlow は、最もアクティブなコミュニティと、最も豊富なオープンソース アルゴリズムとモデルを備えているという利点があります。Caffe は、使いやすく、科学研究の分野で重要な位置を占める古典的なグラフィック フレームワークです。MXNet は分散パフォーマンスに優れています。 PaddlePaddle、Kunpeng、Angel は、それぞれ Baidu、Alibaba、Tencent によってリリースされた分散コンピューティング フレームワークです。

2015 年末、Google は TensorFlow ディープラーニング フレームワークをオープンソース化しました。これにより、開発者は CNN、RNN、その他のモジュールを簡単に組み合わせて、複雑なニューラル ネットワーク モデルを実装できるようになります。 TensorFlow は、データフロー グラフを使用した数値計算用のオープン ソース ソフトウェア ライブラリです。

2016 年、Baidu は PaddlePaddle (PArallel Distributed Deep LEarning) ディープラーニング フレームワークをオープンソース化しました。 PaddlePaddle は使いやすく、効率的で、柔軟性と拡張性に優れており、Baidu の多くの社内製品にディープラーニング アルゴリズムのサポートを提供します。

ディープラーニングプラットフォーム

ディープラーニング フレームワークは、主にモデル トレーニング用のニューラル ネットワーク モデルの実装を提供します。モデルのトレーニングは、機械学習とディープラーニングの一部にすぎません。さらに、データ入力、データ処理、モデル予測、ビジネスアプリケーションなど、他の重要なリンクもあります。ディープラーニング プラットフォームは、ディープラーニングのあらゆる側面を統合し、開発者に統合されたサービスを提供するプラットフォームです。ディープラーニング プラットフォームは、ディープラーニングの開発を加速し、反復サイクルを短縮することができます。同時に、ディープラーニング プラットフォームは、コンピューティング能力とモデル開発機能を共有し、開発効率とビジネス成果を向上させ、リソースを合理的に割り当て、リソースの使用率を向上させることもできます。

テンセントディープラーニングプラットフォームDI-X

テンセントのディープラーニングプラットフォームDI-Xは2017年3月にリリースされました。 DI-X は、Tencent Cloud のビッグデータ ストレージと処理機能に基づいて、ワンストップの機械学習およびディープラーニング サービスを提供します。 DI-X は、TensorFlow、Caffe、Torch を含む 3 つの主要なディープラーニング フレームワークをサポートしており、主に Tencent Cloud の GPU コンピューティング プラットフォームをベースにしています。 DI-X の設計コンセプトは、開発、デバッグ、トレーニング、予測、展開を統合したワンストップの機械学習プラットフォームを作成することです。これにより、アルゴリズム サイエンティストとデータ サイエンティストは、機械学習 (特にディープラーニング) の基礎となるエンジニアリングの面倒な詳細やリソースに注意を払う必要がなくなり、モデルとアルゴリズムのチューニングに集中できるようになります。

DI-Xはテンセント社内で1年間使用されており、主にゲーム離脱率予測、ユーザータグ伝播、広告クリック行動予測に使用されています。

Alibaba 機械学習プラットフォーム PAI

アリババの機械学習プラットフォーム PAI1.0 は、データ処理と基本的な回帰、分類、クラスタリング アルゴリズムを含み、2015 年にリリースされました。アリババの機械学習プラットフォームPAI2.0は、より豊富なアルゴリズムライブラリ、より大規模なデータトレーニング、オープンソースと完全に互換性のあるプラットフォーム製品を備え、2017年3月にリリースされました。ディープラーニングは、オープンソースインターフェースと互換性のある TensorFlow、Caffe、MXNet フレームワークをサポートする Alibaba の機械学習プラットフォーム PAI2.0 の重要な機能です。データソースの面では、PAI2.0 は非構造化データソースと構造化データソースを含むさまざまなデータソースをサポートし、コンピューティングリソースの面では、CPU、GPU、FPGA などの異種コンピューティングリソースをサポートし、ワークフローの面では、モデルトレーニングと予測の統合をサポートします。

PAI は Alibaba 内で 2 年間使用されています。このプラットフォームに基づいて、Taobao 検索では、検索結果が商品とユーザーの特性に基づいて並べ替えられます。

Baidu ディープラーニング プラットフォーム

Baidu Deep Learning Platform は、膨大なデータに対応するディープラーニング プラットフォームです。PaddlePaddle および TensorFlow オープン ソース コンピューティング フレームワークをベースとし、GPU コンピューティングをサポートし、ディープラーニング技術の研究開発と応用のための信頼性と拡張性に優れたクラウド ホスティング サービスを提供します。 Baidu のディープラーニング プラットフォームを使用すると、ニューラル ネットワークを簡単にトレーニングして感情分析、機械翻訳、画像認識を実現できるだけでなく、Baidu Cloud のストレージおよび仮想化製品を使用してモデルをアプリケーション環境に直接展開することもできます。

Weibo ディープラーニング プラットフォーム設計

Weiboは、フィードCTR、スパム対策、画像分類、有名人認識、動画推奨、広告などの事業でディープラーニング技術を広く活用しており、TensorFlow、Caffe、Keras、MXNetなどのディープラーニングフレームワークも広く活用しています。さまざまなディープラーニングフレームワークを統合し、CPUとGPUのリソースを効果的に活用し、ビッグデータ、分散ストレージ、分散コンピューティングサービスを最大限に活用するために、WeiboはWeiboディープラーニングプラットフォームを設計・開発しました。

Weibo ディープラーニング プラットフォームは次の機能をサポートしています。

  • 便利で使いやすい: データ入力、データ処理、モデルトレーニング、モデル予測などのワークフローをサポートし、シンプルな構成で複雑な機械学習やディープラーニングのタスクを完了できます。特にディープラーニングの場合、モデルをトレーニングするにはフレームワークの種類とコンピューティング リソースの規模を選択するだけで済みます。
  • 柔軟な拡張: 一般的な機械学習アルゴリズムとモデルだけでなく、ユーザー定義のアルゴリズムとモデルもサポートします。
  • 複数のディープラーニングフレームワーク:現在、TensorFlow、Caffe などの複数の主流のディープラーニングフレームワークをサポートし、ターゲットを絞った最適化を行っています。
  • 異種コンピューティング: モデルトレーニングに GPU と CPU をサポートし、モデルトレーニングの効率を向上します。
  • リソース管理: ユーザー管理、リソース共有、ジョブのスケジュール設定、障害回復などの機能をサポートします。
  • モデル予測: ディープラーニング モデルのオンライン予測サービスのワンクリック展開をサポートします。

Weibo ディープラーニング プラットフォームのアーキテクチャと実践

Weiboディープラーニングプラットフォームは、Weibo機械学習プラットフォームの重要な部分です。Weibo機械学習プラットフォームの特徴と機能を継承するだけでなく、TensorFlowやCaffeなどの複数の主流のディープラーニングフレームワークをサポートし、GPUなどの高性能コンピューティングクラスターをサポートします。 Weibo ディープラーニング プラットフォームのアーキテクチャを図 1 に示します。

図1 Weiboディープラーニングプラットフォームのアーキテクチャ

以下では、機械学習ワークフロー、コントロールセンター、ディープラーニングモデルトレーニングクラスター、モデルオンライン予測サービスなどの代表的なモジュールを例に、Weiboのディープラーニングプラットフォームの実践を紹介します。

機械学習ワークフロー WeiFlow

Weibo のディープラーニングと機械学習のワークフローでは、生データの収集、データ処理、特徴エンジニアリング、サンプル生成、モデル評価などのプロセスに多くの時間と労力がかかります。エンドツーエンドの効率的なディープラーニングと機械学習の開発を可能にするために、Weibo 機械学習ワークフロー フレームワーク WeiFlow を導入しました。

WeiFlow を設計した当初の意図は、Weibo 機械学習フローの開発を簡素化し、より簡単にすることで、ビジネス開発者を複雑なデータ処理、機能エンジニアリング、モデルエンジニアリングから解放し、貴重な時間とエネルギーをビジネスシナリオの開発と最適化に投資し、ビジネス担当者の生産性を完全に解放し、開発効率を大幅に向上させることでした。

WeiFlow の誕生は、Weibo の機械学習に対するビジネスニーズから生まれました。 Weibo の機械学習ワークフロー (図 2 を参照) では、複数のデータ ストリームがリアルタイムのデータ処理を受け、特徴エンジニアリングに保存され、オフラインの生のサンプルが生成されます。オフライン システムでは、元のサンプルに対してさまざまなデータ処理、機能処理、機能マッピングを実行してトレーニング サンプルを生成します。ビジネス担当者は実際のビジネス シナリオ (ソート、推奨) に応じてさまざまなアルゴリズム モデルを選択し、モデルのトレーニング、予測、テスト、評価を実行します。モデルの反復が要件を満たすと、モデル ファイルとマッピング ルールが自動展開によってオンラインで展開されます。オンラインシステムは、モデルファイルとマッピングルールに基づいて特徴エンジニアリングから関連する特徴を抽出し、マッピングルールに従って前処理を実行し、予測に使用できるサンプル形式を生成し、オンラインでリアルタイム予測を実行し、最終的にオンラインサービスコールの予測結果(Weiboコンテンツに対するユーザーの関心)を出力します。

図2 Weibo機械学習ワークフロー

Weibo の多様なコンピューティング環境に対応するために、WeiFlow は図 3 に示すように 2 層 DAG タスク フロー設計を採用しています。外側の DAG は、異なるノードで構成されています。各ノードは、独立した実行環境、つまり、Spark、TensorFlow、Hive、Storm、Flink などの前述のコンピューティング エンジンを持つ内側の DAG です。

図3 WeiFlow 2層DAGタスクフロー設計

外部 DAG を設計する本来の目的は、コンピューティング エンジン間の依存性とデータ転送の問題を解決しながら、各コンピューティング エンジンの長所を活用することです。内部 DAG は、エンジンの機能と最適化メカニズムを使用して、DAG 内のコンピューティング モジュール間のデータ相互作用のキャリアとしてさまざまな抽象化を実装します。

使用方法に関しては、ビジネス担当者は、事前に合意された仕様と形式に従って、XML 構成ファイルで 2 層 DAG の計算ロジックを定義します。 WeiFlow は、ユーザーが XML で指定した依存関係と処理モジュールに基づいて、DAG タスク フロー ダイアグラムを自動的に生成し、実行時に処理モジュールの実装を呼び出して、ユーザーが指定したタスク フローを完了します。 XML 構成ファイル内の依存関係に従って必要なコンピューティング モジュールを積み重ねることで、構成可能でモジュール化されたパイプライン操作の開発をビルディング ブロック方式で完了できます。

コントロールセンターWeiCenter

コントロールセンターWeiCenterの目標は、シンプルで便利、そして使いやすく、誰もがWeiboディープラーニングプラットフォームを便利に利用できるようにすることです。ここでは、コントロールセンターのジョブ管理、データ管理、スケジュール管理について紹介します。

ジョブ管理: ディープラーニング、大規模機械学習、リアルタイム処理を行う場合、タスクを完了するためにさまざまなフレームワークを併用する必要があります。たとえば、TensorFlow は高性能学習に適しており、Spark は大規模な数十億次元の特徴トレーニングに適しており、Storm や Flink はリアルタイムの特徴生成やリアルタイムモデル生成に適しています。これらを組み合わせることによってのみ、オフライントレーニングからオンラインリアルタイム予測への移行を完了できます。これまで、開発者はさまざまなフレームワークの複雑な基礎開発を学習する必要がありました。現在では、コントロール センターからさまざまなジョブ タイプを選択するだけで、さまざまな種類のジョブ タスクを簡単に生成できます。ユーザーは、ビジュアル UI でジョブの種類、データ ソース、出力先を選択するか、WeiFlow を使用してプログラミングするだけで、ハイエンドのディープラーニングまたは機械学習ジョブを生成できます。

データ管理: ビッグデータの量が毎日 P レベルで増加し、ユーザー数が毎日数百人に達すると、データ管理が特に重要になります。モデルがトレーニングされるクラスターとデータが配置されるクラスターが同じクラスターでない場合、モデルがトレーニングされるクラスターにデータを効率的に同期することは困難です。モデルのトレーニングが完了すると、トレーニング結果を自動的に評価し、トレーニング データを削除できます。クラスターを使用する開発者の質にばらつきがあるため、削除されていない冗長データが常に大量に存在し、無駄なデータが生成されていることがわかります。このとき、データを削除する際に全員がデータを生成することを制限し、各プラットフォームで長期間アクセスされていないデータを検出し、確認してクリーンアップするための統合データ管理プラットフォームが必要です。

スケジューリング管理: ジョブは複数のカテゴリに分類でき、重要度別 (高、中、低)、占有リソース量別 (高、中、低)、スケジューラ別 (Yarn、Mesos、Kubernetes など) に分類できます。 Spark と Hadoop は、優先度の高いジョブとリソースを大量に消費するジョブ間の競合を解決するために Yarn スケジューリングを使用します。TensorFlow は、成熟した Kubernetes または Mesos を使用して、GPU クラスターのタスク管理のために TensorFlow ノードをスケジュールします。通常のオフライン ジョブとサービスのデプロイメントでは、リソースのスケジュールに Mesos を使用します。コントロール センターは複数のスケジューラを統合し、さまざまな成熟したソリューションを使用してジョブ スケジューリングの問題を簡素化します。

つまり、コントロール センターは、ユーザー権限の制御、ジョブ グラフの依存関係の管理、データの依存関係の管理などを担当し、スケジューリング サービスは、特定のジョブの実行、リソースの抽象化、リソースの管理を担当します。コントロールセンターとディスパッチサービスを図 4 に示します。

図4 コントロールセンターとディスパッチサービス

ディープラーニングモデルトレーニングクラスター

Weibo のディープラーニング トレーニング クラスターは従来の HPC クラスターとは大きく異なり、コンピューティング サーバー、分散トレーニング、ネットワーク機器、ストレージ システム、ジョブ スケジューリング システムの選択に反映されています。

単一マシンのマルチ GPU カード: ディープラーニング モデルのトレーニングは、主に単一マシンで実行され、ほぼ完全に GPU に依存します。したがって、単一マシンの計算能力を最大化するには、2/4/8 個の GPU を搭載できるサーバーを選択します。

分散トレーニング: トレーニング時間が長い場合やサンプル サイズが大きく、単一サーバーの容量を超える場合は、分散トレーニングが必要です。以下は、図 5 に示す TensorFlow の分散操作の例です。 TensorFlow 分散プログラムは、ワーカー ノードとパラメーター サーバーで構成される抽象クラスターに対応します。ワーカーノードは、行列の乗算やベクトルの加算などの特定の計算タスクを担当し、対応するパラメータ(重みとバイアス)を計算し、パラメータをパラメータサーバーにまとめます。パラメータサーバーは、多数のワーカーノードから収集されたパラメータをまとめ、計算し、対応するワーカーノードに渡します。ワーカーノードは次の計算ラウンドを実行し、このサイクルが繰り返されます。

図5 TensorFlow分散アーキテクチャ

10 ギガビット イーサネット: パラメータ更新プロセス中は、通信の粒度が大きく、非同期通信が許可され、遅延に関する厳しい要件はありません。そのため、トレーニング クラスターでは、HPC クラスターに必要な InfiniBand または Omini-Path の低遅延ネットワーク デバイスではなく、通常のイーサネット デバイスを使用しました。

HDFS 分散ファイルシステム: TensorFlow 分散ワーカーノードがトレーニング サンプル ファイルを読み取る場合、異なるワーカーノードによって読み取られたデータ セグメントは交差せず、トレーニング プロセス中にサンプル データは交換されません。モデル ファイルの書き込みを担当するのは 1 つの作業ノードのみであり、作業ノード間のデータ交換は行われません。したがって、ディープラーニングのトレーニング ジョブでは、すべてのワーカー ノードが同時にアクセスできるファイル システムであれば、HPC クラスターで一般的に見られる並列ファイル システムは必要ありません。実際、Weibo のディープラーニング プラットフォームは HDFS を使用しており、要件を満たすだけでなく、他の企業とのデータ共有も容易になります。

カスタマイズされたジョブ スケジューリング システム: TensorFlow 分散パラメータ サーバー プロセスは自動的に終了しないため、手動で強制終了する必要がありますが、HPC アプリケーションの MPI プロセスは同時に開始および終了します。すべての作業ノードの実行が終了した後にパラメータ サーバー プロセスが自動的に終了されるように、ジョブ スケジューリング ソリューションを設計するときには、この機能を考慮する必要があります。

モデルオンライン予測サービス WeiServing

モデルオンライン予測サービスは、ディープラーニング プラットフォームの重要な機能です。 Weibo ビジネス シナリオの要件により、モデルのオンライン予測サービスには大量の同時実行量があり、レイテンシと可用性に対する要件が非常に高くなります。これらのビジネス要件と、将来的なサービス自体の高いスケーラビリティを考慮して、Weibo 分散モデルオンライン予測サービス WeiServing のアーキテクチャを図 6 に示します。

図6 WeiServing - Weibo分散モデルオンライン予測サービスアーキテクチャ

多様な特徴処理: モデルオンライン予測サービスが解決する必要がある最初の問題は、オンラインの生の特徴データをモデルが処理できるデータ形式にマッピングすることです。 Weibo の機械学習ワークフロー フレームワーク WeiFlow は、大量のビジネス モデルの実践とチューニングに基づいて、一連の機能処理機能を抽象化し、開発効率とビジネス成果を向上させます。 WeiServing と WeiFlow は特徴処理において一貫性があり、正規化、離散化、ID 化、結合などの特徴処理を実行する、piecewise、pickcat、descartes、combinehash などのマッピング関数を含む一連の特徴処理関数をサポートしています。

マルチモデルとマルチバージョンのサポート: Weibo のビジネス シナリオは多様であるため、ビジネス シナリオごとにモデルと機能の要件が異なります。WeiServing は、同じクラスターをサポートして複数のビジネスにサービスを提供し、リソースの分離と負荷分散に docker+k8s を使用します。同じ特徴条件下では、処理に異なるモデル アルゴリズムを選択できます。さらに、WeiServing は同一モデルに対して、オンラインアップグレードと複数バージョンの同時オンラインサポートを提供し、業務のグレースケールテストを実施できます。すべての差異は構成ファイルにマッピングされ、簡単な構成でオンライン モデル変換が完了します。

分散サービスのサポート:大規模なモデルサービスとオンライン機械学習に対応するために、WeiServingは一般的なパラメータサーバーソリューションを参考にして、WeiParam分散サービスアーキテクチャを実装しています。WeiParamは、従来のPS機能のサポートに加えて、分散スケジューリングシステムを通じてマルチコピー、高可用性、高性能のシステムメカニズムを提供し、オンラインサービスのニーズを満たします。

マルチソースのサポート: 通常のオフライン学習では、モデルはファイルにエクスポートされます。WeiServing は ModelManager モジュールを通じてモデルの読み込みを管理し、ローカル ストレージと分散ストレージをサポートします。同時に、WeiServing はオンライン機械学習をサポートするためにリアルタイムストリーミングインターフェースドッキングを提供します。オンライントレーニングのモデルパラメータをリアルタイムで WeiParam にプッシュして、オンラインサービスを提供できます。

要約する

この記事では、ディープラーニング フレームワークとプラットフォームの概念と機能を紹介し、Weibo ディープラーニング プラットフォームに基づくディープラーニング プラットフォームの設計思考と技術アーキテクチャについて説明します。機械学習ワークフローとコントロール センターは、機械学習ワークフローを標準化するための当社の設計成果です。体系的な標準プロセスにより、機械学習開発の効率とビジネスの反復速度が大幅に向上します。ディープラーニングモデルトレーニングクラスタとモデルオンライン予測サービスは、クラスタリングとサービス指向のディープラーニングモデルトレーニングとモデル予測における当社のシステム出力であり、モデルとビジネス効果を保証するための基礎です。上記の紹介が、皆さんに何らかの考えや助けをもたらすことができれば幸いです。

<<:  iPhoneで初めての機械学習モデルを構築する方法

>>:  これから「顔認証」の時代がやって来ますが、あなたの顔は安全でしょうか?

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

臨床研究における人工知能と機械学習の活用の機会をいかに捉えるか

製薬業界の専門家は、人工知能(AI)が2021年に業界で最も破壊的な技術になると考えています。臨床開...

教師あり学習の一般的なアルゴリズムは何ですか?どのように適用されますか?

教師あり学習とは何ですか?教師あり学習は機械学習のサブセットであり、機械学習モデルの入力データにラベ...

...

スマート音声アシスタントの未来

人工知能は、スマート音声アシスタントが私たちの日常生活でどのように使用されるかを真に変えましたが、私...

ナレッジグラフは複雑ではありません。整理するお手伝いをさせてください。

[51CTO.com からのオリジナル記事] インターネットビジネスの発展に伴い、大量のデータが生...

Cloudera は研究から実稼働までエンタープライズ機械学習を加速します

クラウド向けに最適化された機械学習および分析のための最新プラットフォームを提供する Cloudera...

AIがDotAのトッププレイヤーに勝利したのは画期的なことでしょうか? OpenAIが詳細を発表

[[200484]]週末、OpenAI は世界最高峰の DotA 2 イベント TI7 (The I...

ビッグニュース!人工知能における新たなブレークスルー! Google ストリートビューを使って住民の投票傾向を調べてみましょう。

研究者は、新たに開発された人工知能技術の助けを借りて、大量の画像を分析し、分類およびマイニング可能な...

脳コンピューター知能はますます熱を帯びており、AIは将来重要な役割を果たす可能性がある

アメリカのSF大作では、脳の記憶を読んだり、脳を通じて他人をコントロールしたりすることがよく行われて...

ディープ ニューラル ネットワークを構築するための 20 の「未熟な」ヒント

当社の機械学習ラボでは、数多くの高性能マシンで何万時間ものトレーニングを行って豊富な経験を蓄積してき...

将来、人工知能に置き換えられない仕事が最も収益性が高くなるでしょう。それがどれか見てみましょう。

誰もが知っているように、昔は銀行に行って業務を処理するには長い列に並ばなければなりませんでした。業務...

最新レポート: 従業員の 25% が ChatGPT などの AI ツールに機密データをアップロードしている

新たな調査によると、従業員の15%がChatGPTに会社のデータを頻繁にアップロードしており、そのデ...

AmazonのAI研究開発はファッショントレンドをリードするために異なるアプローチを採用しています

テクノロジーサイトEngadgetが北京時間8月25日に報じたところによると、人工知能は現在、ほとん...

AIベースでデータプラットフォームの実装を加速

[51CTO.comより引用]データミドルプラットフォームが確立される以前、企業はデータによっても...