SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート

並列計算とクラウドによる分散システムが支える機械学習の最先端―ー「最強の計算資源で人間のクリエイティビティを全開に」【July Tech Festa 2018】

  • X ポスト
  • このエントリーをはてなブックマークに追加

ジョブはコンテナとしてスケジューリングされる

 高速性能とマルチユーザーの利便性・柔軟性というニーズに対応するため、MN-1とともに次のような環境を構築した。まず、学習用のデータセットなどのため、分散ファイルシステムの「Hadoop HDFS」と「GlusterFS」を実装したストレージを用意。ジョブ管理ツールは、PFN特有のジョブスタイルや手法をサポートするため、内製した。ジョブのスケジューリングはOSSミドルウェアを利用する。

 内製ジョブ管理ツールは、ユーザー(社内のAIエンジニア)が自分のモデル開発や学習のジョブを記述、制御する。これらのツールセットを利用してジョブに必要なGPUやストレージなどのリソース、データセットなどを定義、指示する。ジョブの定義はYAMLを利用する。記述されたジョブはGitレポジトリからコマンドインターフェースで実行される。与えられたジョブはMesosとKubernetesによってコンテナ群としてスケジューリングされる。実はPFNのクラスタサービスは、ハイブリッドクラウド構成だ。

 MN-1やジョブ管理システムはオンプレミスサーバー上に構築されるが、インターンを含む多くのユーザーの便宜のためAWSとAzureも利用している。AWSにはJenkinsやHarborを実装し、Webインターフェースでのジョブ制御をできるようにしている。AzureはSlackを利用したチャットボットを稼働させている。

 その他、レポジトリとしてGitHub、モニタリングなどのためのDatadog、そして複数のクラウドサービスを利用するためのシングルサインオンシステムなども稼働している。

Preferred Networksの社内クラスタサービス(講演スライドより引用)
Preferred Networksの社内クラスタサービス(講演スライドより引用)

設計構築での工夫とシステムの課題

 この機械学習クラスタを設計、構築するにあたり大村氏が留意した要件がいくつかある。前述のようにPFNのAIエンジニア、クラスタのユーザーのリテラシーレベルはさまざまだ。PythonとGitHubの知識は必要だが、コマンドラインよりブラウザ経由の操作が楽な人もいれば、ITはそもそも専門ではない人もいる。また、PFNの典型的なワークフローである小さく試して大きく回すというポリシーを反映できること。ジョブのトレーサビリティと再現性の確保。学習の可視化などだ。

 クラスタの利用率・運用効率の向上ではさらなる工夫もしたと言う。まず、ジョブごとにどのクラスタを割り当てるか、オンラインビンパッキングは非常に難しい問題だ。一般的にはジョブキューの順に、なるべく隙間なくつめるMost Resource Requested方式がとられるが、より柔軟で効率を高めるため改修する予定だと言う。また、ジョブとノードにラベルをつけることで、ラックごとにまとめるジョブ、GPUのメモリに割り当てるジョブ、InfiniBandスイッチごとに割り当てるジョブといった細かい指定ができるようにもなっている。

 アルゴリズム優先で割り当てを行うと、結果的に特定の人ばかり優先されるような不公平も発生すると言う。また、大き目のジョブがなかなか割り当てられないといった問題に対して、ギャングスケジューリング(必要なコア、リソースをまとめて確保する)が必要なときもある。

ギャングスケジューリング(講演スライドより引用)
ギャングスケジューリング(講演スライドより引用)

 これらの制御には、ジョブのプリエンプションとリエントラント性の保証が重要になる。稼働中のジョブを強制的に中断し、リソースを確保(プリエンプション)したり、中断されたジョブを再開するとき、やり直しではなく中断箇所からの再開を保証したい。現状、学習中のジョブはプリエンプトされると、再開はその学習エポックの最初からになってしまう。

次のページ
改善・改良は日々行う

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

中尾 真二(ナカオ シンジ)

フリーランスのライター、エディター。アスキーの書籍編集から始まり、翻訳や執筆、取材などを紙、ウェブを問わずこなす。IT系が多いが、たまに自動車関連の媒体で執筆することもある。インターネット(とは当時は言わなかったが)はUUCPの頃から使っている。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/11062 2018/09/05 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング