コンパイルとは
COMPILE
読み: コンパイル
コンパイルとは、AI開発においてモデルの計算手順を最適化し、実行に向けて準備を整えるプロセス
読み: コンパイル
Keras/TensorFlowでは学習条件の設定、PyTorch 2.0では計算グラフの高速化、推論環境ではハードウェア専用フォーマットへの変換を指す。
Keras/TensorFlowでの学習条件設定
初心者が最初に出会うコンパイル。model.compile()メソッドで「どうやって学習を進めるか」のルールをモデルに紐付ける。設定する項目は3つ。オプティマイザ(AdamやSGDなど)、損失関数(予測のズレの計算方法)、評価指標(正解率など)。
この工程を経ないと学習を開始できない。設計図を描いただけでは家は建たない。
PyTorch 2.0のtorch.compileと推論最適化
PyTorch 2.0で導入されたtorch.compile()は別次元の話。Pythonで書かれた計算グラフを、GPUが最速で処理できる機械語レベルに最適化する。複数の細かな計算を1つの処理にまとめるオペレーション・フュージョンにより、学習・推論速度が数倍になるケースもある。
推論環境向けにはNVIDIAのTensorRT、IntelのOpenVINO、AppleのCoreMLなど、ハードウェア専用のコンパイラが存在する。無駄な計算を省き、データサイズを圧縮して、限られたメモリと電力でモデルを動かす。
