はじめに
大規模なAIの学習には、多くの計算と時間が必要です。一方、小さなモデルなら手元のPCで学習できる場合もあります。ここではニューラルネットワークを中心に、学習が重くなる理由と、負荷を左右する条件を整理します。
学習と推論は何が違う?
学習は、データと目的に合わせてモデルのパラメータを調整する工程です。推論は、学習済みのモデルを使って予測や出力を得る工程です。通常の推論ではパラメータを更新しませんが、入力を処理する計算そのものは必要です。
学習では何を繰り返す?
一般的な学習では、入力から出力を計算し、目標とのずれを損失という数値で評価します。その後、逆伝播でパラメータに対する勾配を計算し、最適化手法で更新します。これをデータの小分けのまとまりごとに繰り返します。
教師あり学習では正解ラベルを使い、言語モデルの事前学習では文章の続きなどを学習対象にします。更新回数、使うデータ数、処理するトークン数は別の量です。「数百万〜数十億回の更新が普通」と一律にはいえません。
計算量は指数的に増える?
モデル規模、データ量、入力の長さ、構造などで増え方が変わります。同じ構造・幅の層を追加する場合、層数に対しておおむね比例して計算が増える部分があります。通常のAttentionには入力長の二乗に関係する処理もありますが、すべてが指数的に増えるわけではありません。
また、学習では出力計算に加え、勾配や最適化用の情報を扱うため、推論より多くの計算・メモリが必要になるのが一般的です。ただし正確な費用は、モデルと学習方法を決めて測定する必要があります。
なぜ複数のGPUを使う?
計算を分担して時間を短くするため、また、一台のメモリに収まらないモデルやデータを分けて扱うためです。GPUを増やせば必ず台数に比例して速くなるわけではなく、装置間の通信や同期も負荷になります。小規模な学習では一台のGPUやCPUで十分な場合もあります。
電力は何で決まる?
消費エネルギーは、使用電力と稼働時間の積み重ねで決まります。演算装置だけでなく、メモリ、通信、冷却なども関係します。機器の定格電力と実測の使用電力は同じではなく、常に全装置が最大負荷で動くとも限りません。
同じ性能を少ない計算で得る効率化は有効ですが、利用回数が増えれば総消費量が増えることもあります。環境負荷を比較するときは、何をどれだけ処理したのか、測定範囲はどこまでかを合わせる必要があります。
個人でも学習できる?
大規模な基盤モデルを最初から作るには大きな設備が必要です。一方、小型モデルの学習、公開モデルの追加学習、更新するパラメータを絞る方法などは、個人や小規模な開発でも選択肢になります。「AIの学習は大手だけに可能」というわけではありません。
推論なら軽い?
同じモデルの一回の処理では、通常の推論は勾配計算や更新を行わない分だけ学習より負荷を抑えられます。しかし、大きなモデル、長い入力や出力、多数の同時利用、繰り返す推論では大きな負荷になります。サービス全体では、長期間の推論が学習を上回る費用や電力を使う場合もあります。
参考資料
PyTorch:モデルの学習と評価の入門
Training Compute-Optimal Large Language Models
関連記事
AIの「学習」と「推論」は何が違うのか?|AIが解説するテクノロジーの裏側
なぜGPU不足が起きるのか|AIが解説するテクノロジーの裏側
AIはどこで計算されているのか?|AIが解説するテクノロジーの裏側
まとめ
学習の負荷は、モデルとデータの規模、入力長、学習方法、機器と通信によって変わります。大規模な学習は重い一方、小規模な学習も可能です。推論も無視できる負荷ではなく、一回の計算とサービス全体の運用を分けて考えることが大切です。


コメント