第6章. モデル・リソース管理テクニック
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
モデルが必要とするコンピュート、ストレージ、およびI/Oシステムは、モデルを本番稼動させ、その全ライフタイムを維持するためにどれだけのコストがかかるかを決定する。この章では、モデルのリソース要件を管理するのに役立つ重要なテクニックを紹介する。伝統的なMLとジェネレーティブAI(GenAI)の両方において、モデルを最適化する主な方法である3つの主要分野に焦点を当てる:
-
次元削減
-
モデルパラメータの量子化とモデルグラフの刈り込み
-
大規模なモデルに含まれる知識を捕捉するための知識抽出
次元削減:性能に対する次元の効果
まず、次元と、それがモデルのパフォーマンスとリソース要件にどのように影響するかについて説明する。
そう遠くない昔、データの生成やある程度のデータ保存は、現在よりもずっとコストがかかっていた。当時は、多くの専門家が、実験や特徴変換を設計する前に、どの特徴や変数を測定するかを慎重に検討していた。その結果、データセットはよく設計され、潜在的に少数の関連する特徴しか含まないことが期待された。
今日のデータ・サイエンスは、あらゆるものを端から端まで統合することを重視する傾向にある。データの生成とストアは、より速く、より簡単に、より低コストで行えるようになっている。そのため、人々は測定できるものはすべて測定し、これまで以上に複雑な特徴変換を含める傾向にある。その結果、データセットはしばしば大規模な次元になり、多数の特徴をコンテナとして持つが、データ分析における各特徴の関連性は必ずしも明確ではない。
深入りする前に、ニューラルネットワークに関するよくある誤解について説明しよう。多くの開発者は、ニューラルネットワークモデルを訓練するとき、モデル自体が訓練プロセスの一部として、重みをゼロまたはゼロに近づけることによって、予測情報を提供しない特徴を無視することを学習すると正しく思い込んでいる。これは正しいが、結果として効率的なモデルにはならない。
予測値を生成するために推論を実行するとき、モデルの多くは "シャットオフ "される。それらはスペースを取り、モデルサーバーが計算グラフをトラバースする際にコンピューティングリソースを消費する。
それらの不要な特徴はまた、データに不要なノイズをもたらし、モデルの性能をしばしば低下させる。実際、高い次元性はオーバーフィッティングを引き起こす可能性さえある。また、モデル自体の外では、追加された特徴ごとに、データを収集し、ストアし、更新を管理するためのシステムとインフラが必要となり、システム全体にコストと複雑さが加わる。これには、データに問題がないか監視することや、問題が発生した場合にそれを修正する労力も含まれる。これらのコストは、デプロイしている製品やサービスの寿命が尽きるまで続く。
重みがゼロかゼロに近いモデルを最適化するテクニックはある。しかし一般化すれば、モデルにすべてを投入し、どの特徴が実際に有用かを判断するのをトレーニングプロセスに依存するべきではない。
MLでは、高次元のデータは共通の課題である。例えば、1人の買い物客につき60の異なるメトリックを追跡すると、60次元のスペースになる。50×50ピクセルのグレースケール画像を分析すると2,500次元、RGB画像は7,500次元になり、各ピクセルのカラーチャンネルが1次元に寄与する。 ...