6章TensorFlowの速度と性能を最大化するチェックリスト

 手持ちのもので最大の成果を得るには、最適化が肝心です。

 多くの資源を得ることは目的ではなく、資源を有効に活用することが重要です。フェラーリの車を買いたいけれども、予算はトヨタ車を買える程度だということはよくあります。しかし、適切なチューニングを行えばトヨタ車でもレース大会でちゃんと走れるほどの力を発揮できます。

 ディープラーニングの世界でも同じことが言えます。例えばGoogleは、ありあまるエンジニアの能力とTPUを投入してImageNetの訓練を30分で完了させるという記録を打ち立てました。しかしわずか数ヶ月後に、3人の研究者(Andrew Shaw、Yaroslav Bulatov、Jeremy Howard)による寄せ集めのチームがパブリッククラウド上で、18分でImageNetの訓練を完了させてしまいました。彼らの所持金は40ドルしかありませんでした。

 この事例から学べるのは、利用できる資源の量よりも資源を最大限に活用する工夫のほうが重要だということです。少ない資源で多くの成果を挙げることが求められます。こうした問題意識の下に、この章では性能の改善につながるチェックリストを用意しました。それぞれの最適化は、ディープラーニングのパイプラインを構成するすべてのステージに適用できます。また、本書全体を通じて役立つ最適化ばかりです。具体的には、データの準備と読み込みそして拡張、訓練、推論を取り上げます。

 まず、常に聞かれるこの言葉について議論を始めましょう。

6.1 GPUの飢餓状態

 AIの実務者はいつも、「訓練が遅いのはなぜだ」と思い悩んでいます。多くの場合、原因はGPUの飢餓状態です。

 GPUはディープラーニングの生命線です。GPUはコンピューターシステムの中で最も高価な部品だということもよくあります。そう考えると、GPUは最大限に活用するべきです。つまり、GPUは処理対象のデータが他のコンポーネントから渡されるのをずっと待つべきではありません。GPUが処理可能な時には、前処理を経たデータが常に用意されているべきです。実際にはCPUやメモリあるいはストレージが性能上のボトルネックになっていることが多く、GPUの最適な利用が妨げられています。これらではなくGPUがボトルネックになっているというのが理想です。 ...

Get ディープラーニング実践ガイド ―クラウド、モバイル、ブラウザ、エッジデバイス向けAIアプリ開発入門 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.