Skip to Content
マシンラーニング本番システム
book

マシンラーニング本番システム

by Robert Crowe, Hannes Hapke, Emily Caveness, Di Zhu
March 2025
Beginner to intermediate
474 pages
7h 11m
Japanese
O'Reilly Media, Inc.
Book available
Content preview from マシンラーニング本番システム

第7章. 高性能モデリング

この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com

実稼働シナリオでは、モデルから可能な限り最高のパフォーマンスを引き出すことが、少ないリソース要件で、高速な応答時間と低コストを実現するために重要である。高性能モデリングは、大規模モデルや大規模データセットを扱う場合など、コンピューティングリソース要件が大きく、推論の遅延やコスト要件が厳しい場合に特に重要になる。

この章では、データ並列とモデル並列を使用して、モデルをどのように高速化できるかについて説明する。また、分散戦略などの高性能モデリングテクニックや、TF Dataのような高性能インジェストパイプラインについても見ていく。最後に、巨大ニューラルネットの台頭と、その結果生じる効率的でスケーラブルなインフラの必要性に対処するためのアプローチについて考察する。

分散トレーニング

プロトタイピングを始めるとき、モデルのトレーニングは、特に小さなデータセットを扱っている場合は、迅速で簡単な作業かもしれない。しかし、モデルの完全なトレーニングは非常に時間がかかる。多くのドメインのデータセットとモデルアーキテクチャは、ますます大きくなっている。トレーニング用データセットとモデルのサイズが大きくなるにつれ、モデルのトレーニングにはますます時間がかかるようになる。また、各エポックの学習時間だけでなく、モデルのエポック数も結果として増加することが多い。この種の問題を解決するには、通常、分散学習が必要になる。分散トレーニングでは、より多くのコンピューティングリソースを活用することでトレーニングを高速化しながら、巨大なモデルをトレーニングすることができる。

高度なレベルでは、分散学習には主に2つの方法がある:データ並列とモデル並列だ。データ並列では、データをパーティション分割し、モデル全体をすべてのワーカーにコピーする。各ワーカーはデータの異なるパーティション分割を演算し、モデルの更新はワーカー間で同期される。このタイプの並列処理はモデルに依存せず、どのようなニューラルネットワークアーキテクチャにも適用できる。通常、データ並列の規模はバッチサイズに対応する。

モデル並列では、モデルを異なる部分に分割し、異なるワーカーで同時に学習させる。各ワーカーは同じデータで学習し、共有パラメータを同期させるだけでよい。通常、フォワードまたはバックプロパゲーションのステップごとに1回だけ同期させる。一般的にモデル並列化は、GPUやTPU(Tensor Processing Unit)などのアクセラレーターのメモリに収まらないような大きなモデルがある場合に使用する。モデル並列の実装は、データ並列に比べて比較的高度である。したがって、分散トレーニングテクニックについては、データ並列性に焦点を当てる。

データ並列性

前述したように、データの並列処理では、データはパーティション分割され、パーティション数は通常、計算クラスタで利用可能なワーカーの合計数となる。図7-1に示すように、モデルを各ワーカーノードにコピーし、各ワーカーがそれぞれのデータのサブセットで学習する。この場合、各ワーカーにはモデル全体をロードするのに十分なメモリが必要となり、大規模なモデルでは問題となることがある。

図7-1. ワーカーノード間でデータを分割する

各ワーカーは独立して、学習サンプルとラベル付けされたデータに対する予測間のエラーを計算し、そのエラーに基づいてモデルを更新するためにバックプロパゲーションを実行し、他のワーカーがモデルを更新できるように、すべての変更を他のワーカーに伝える。つまり、ワーカーは各バッチの終了時に勾配を同期させ、一貫したモデルを学習する必要がある。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

ベタープログラマ ―優れたプログラマになるための38の考え方とテクニック

Pete Goodliffe, 柴田 芳樹
DeFiを理解する

DeFiを理解する

Alexandra Damsker
インタフェースの設計 第3版

インタフェースの設計 第3版

Jenifer Tidwell, Charles Brewer, Aynne Valencia

Publisher Resources

ISBN: 9798341633643Supplemental Content